Я не понимаю.
Я использовал цикл foreach для массива данных.
где я использовал sqlsrv_query (), затем возвращает действительный ресурс оператора и всегда возвращает одну запись,
но некоторые записи, что sqlsrv_has_rows () возвращает false, некоторые записи возвращают true (большинство), несмотря на тот факт, что там в том же цикле.
Мой код:
foreach ($namedDataArray as $val) {
$c++;
$category = $val[$hcat];
$mfg = $val[$hmfg];
$sga = $val[$hsga];
$grandtotal = $val[$hgt];
$cat = trim($category,'1234567890. ');
$values = "'$year', '$pe', '$month', '$cat', $mfg, $sga, $grandtotal, '$name', getdate()";
$valuesedit = "years='$year', period='$pe', months='$month', category='$cat', mfg=$mfg, sga=$sga, gtt=$grandtotal, databy='$name', timein=getdate()";
$res = getData($conn,'*','MScost',"years = '$year' and months='$month' and category='$cat'");
$rows = sqlsrv_has_rows( $res );
if ($rows === true){
//$rp = editData($conn, "MScost", $valuesedit,"years = '$year' and months='$month' and category='$cat'");
echo "EditData </br>";
}else {
//$rp = addData($conn, "MScost", $values);
echo "InsertData <br/>";
}
}
Моя функция getData:
function getData($conn,$field,$table,$condi){
if($condi!=="") {
$sql = "SELECT $field FROM $table WHERE $condi";
$result = sqlsrv_query($conn, $sql);
return $result;
}else{
$sql = "SELECT $field FROM $table";
$result = sqlsrv_query($conn, $sql);
return $result;
}
}
Пример ресурса, который возвращает:
EditData
EditData
InsertData
EditData
EditData
EditData
InsertData
EditData
EditData
EditData
Пожалуйста, кто-нибудь, кто поможет мне без сомнения и решить эту проблему. Спасибо.