phpusershik
Using PHP
Количество рядов, подошедших по условия.
Зделал вот так и получился:
//
$sql2 = "UPDATE kor SET yab='$yablok' WHERE pol='$polka' and date='$date' ";
mysql_query($sql2,$db);
printf ( mysql_affected_rows() );
if ( mysql_affected_rows() == 0 )
{
$sql3 = "INSERT INTO kor (yab) VALUES ('$yablok')";
$result3 = mysql_query($sql3);
$sql1 = "INSERT INTO temp (pole1,date1) VALUES ('$ppp','$date')";
mysql_query($sql1,$db);
}
else
{
$sql4 = "INSERT INTO temp (pole2,date2) VALUES ('$ppp','$date')";
$result4 = mysql_query($sql4);
}
//
- но вот тут столкнулся с одной проблемой:
Из мануала:
-------------------------------
Замечание: При использовании UPDATE, MySQL не обновит колонки, уже содержащие новое значение. Вследствие этого, функция mysql_affected_rows() не всегда возвращает количество рядов, подошедших по условия, только количество рядов, обновлённых запросом.
-----------------------------------------
Значит если в таблице 'kor' в поле 'yab' есть уже значение 'red' с ID = 5 и если передаваемое значение для поля 'yab' один 'yellow' с ID = 6 а другое 'red' с ID = 5 , то когда он будет добавлять 'yellow' ( mysql_affected_rows() == 0 ) а когда 'red' то тоже будет ( mysql_affected_rows() == 0 ) но как зделать что-когда уже есть значение в соответсвующем поле соответсвующее значение он все равно делал Update то есть срабатывал (mysql_affected_rows() == 1) для идентичных значений тоже?
Зделал вот так и получился:
//
$sql2 = "UPDATE kor SET yab='$yablok' WHERE pol='$polka' and date='$date' ";
mysql_query($sql2,$db);
printf ( mysql_affected_rows() );
if ( mysql_affected_rows() == 0 )
{
$sql3 = "INSERT INTO kor (yab) VALUES ('$yablok')";
$result3 = mysql_query($sql3);
$sql1 = "INSERT INTO temp (pole1,date1) VALUES ('$ppp','$date')";
mysql_query($sql1,$db);
}
else
{
$sql4 = "INSERT INTO temp (pole2,date2) VALUES ('$ppp','$date')";
$result4 = mysql_query($sql4);
}
//
- но вот тут столкнулся с одной проблемой:
Из мануала:
-------------------------------
Замечание: При использовании UPDATE, MySQL не обновит колонки, уже содержащие новое значение. Вследствие этого, функция mysql_affected_rows() не всегда возвращает количество рядов, подошедших по условия, только количество рядов, обновлённых запросом.
-----------------------------------------
Значит если в таблице 'kor' в поле 'yab' есть уже значение 'red' с ID = 5 и если передаваемое значение для поля 'yab' один 'yellow' с ID = 6 а другое 'red' с ID = 5 , то когда он будет добавлять 'yellow' ( mysql_affected_rows() == 0 ) а когда 'red' то тоже будет ( mysql_affected_rows() == 0 ) но как зделать что-когда уже есть значение в соответсвующем поле соответсвующее значение он все равно делал Update то есть срабатывал (mysql_affected_rows() == 1) для идентичных значений тоже?
