|
|
|
| Мы все прекрасно знаем что при помощи WHERE можно уточнить в какой именно ячейке. Как мне добавить не одно условие а несколько. Например WHERE id=1 и name=Alex . Пробовал после запятой вставить еще одно уточнение и без запятой. Не получается =( помогите решить эту задачу.
С уважением! | |
|
|
|
|
|
|
|
для: AlexDIXI
(20.04.2008 в 01:44)
| | Связывайте уcловия логикой, которая вам требуется - AND, OR ... | |
|
|
|
|
|
|
|
для: AlexDIXI
(20.04.2008 в 01:44)
| | да, и запятую в этом случае ставить ненадо
"... where a=b or a=c" | |
|
|
|
|
|
|
|
для: Zilog
(20.04.2008 в 01:58)
| | Мне 'or' не подходит. Так как те и те условия должны совподать.
Не работает мой код
$result = mysql_query ("UPDATE user SET status='OFF' WHERE status=on and date < now()",$db);
if($result == true)
{
echo "Изменения выполнены";
}
else
{
echo "Изменений нет! ";
echo mysql_error();
}
|
В данном случаи, ответ приходит Изменений нет! You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'on AND date < now()' at line 1 | |
|
|
|
|
|
|
|
для: AlexDIXI
(20.04.2008 в 02:26)
| | кавычки забыли
status='OFF'
и тут же пишите
status=on
зы.вы разделом ошиблись) | |
|
|
|
|
|
|
|
для: btrfly
(20.04.2008 в 02:36)
| | Все верно :)
Мне выше сказали кавычки не нужно ставить. Я их и не поставил.
А насчет разделов, я их правильно указал.
Моя логика звучит так. Выполнять изменения где (WHERE) в поле статус стоит запись on (status=on) и (AND) дата меньше сегодняшней (date < now()) И если эти условия совпадают изменить (UPDATE) в поле статус, OFF (status='OFF').
Но когда я ему пишу "... WHERE status=on AND date < now()" он выводит ошибку. Я для on ставил кавычки ошибка также.. | |
|
|
|
|
|
|
|
для: AlexDIXI
(20.04.2008 в 02:52)
| | Раздел в том плане,что
это Форум РНР,а вам надо в MySql
и вам сказали не ставить запятые,а не кавычки)) | |
|
|
|
|
|
|
|
для: btrfly
(20.04.2008 в 02:36)
| | Мистика какаята:
Задал UPDATE'у условия где id='16' Он всеровно вывел true.
Вопрос, почему выводим true, если в таблице user id=16 не существует? Кому он успешно сделал UPDATE :)?
Вот код:
require_once ('config.php');
$result = mysql_query ("UPDATE user SET status='OFF' WHERE id='16'",$db);
if($result == true)
{
echo "Изменения выполнены";
echo mysql_error();
}
else
{
echo "Изменений нет! ";
echo mysql_error();
}
|
| |
|
|
|
|
|
|
|
для: AlexDIXI
(20.04.2008 в 02:59)
| | никому. UPDATE'у глубоко до лампочки, сущ-т указанная запись или нет. поэтому mysql_query() вернула true | |
|
|
|
|
|
|
|
для: denok
(20.04.2008 в 03:14)
| | >никому. UPDATE'у глубоко до лампочки, сущ-т указанная запись или нет. поэтому mysql_query() вернула true
Не подскажете каким атрибутом уточнить, If'у условия. Выполнено замена или нет.. ? | |
|
|
|
|
|
|
|
для: AlexDIXI
(20.04.2008 в 03:24)
| | тут надо mysql_affected_rows() использовать. она вернет кол-во строк, измененных запросом.
что-нить типа этого:
require_once ('config.php');
$result = mysql_query ("UPDATE user SET status='OFF' WHERE id='16'",$db);
if( mysql_affected_rows( $db ) > 0 ) {
echo "Изменения выполнены";
}
else {
echo "Изменений нет! ";
}
|
| |
|
|
|
|
|
|
|
для: denok
(20.04.2008 в 03:38)
| | Спасибо!
Зашел в справочник чтоб посмотреть подробнее о mysql_affected_rows. И в примечаниях прочитал следующее "При использовании UPDATE, MySQL не обновит столбцы, где новое значение - такое же, как и старое." А я же этот топик создал, чтоб не нагружать базу, уточнять какие именно изменения мне необходимы :).
В общем тема закрыта спасибо ВСЕМ!
С уважением... | |
|
|
|