|
|
|
Не работает инструкция UPDATE с предложением WHERE
|
|||
|---|---|---|---|
|
#18+
Подскажите, пожалуйста, почему в инструкции UPDATE может не работать условие WHERE... у меня почему-то не обрабатывается запрос, в который добавлено предложение WHERE...если его не использую, то запрос работает, но при этом обновляются ВСЕ строки... такая вот штука... Кстати, запрос выглядит вот так: if ($Parent_old != $Parent) { $query = "UPDATE Надомники SET Представитель = '$Parent' WHERE ID_надомника = $row[0]"; $query_result = mysql_query($query);} Сначала идет проверка было ли изменено поле в форме, если да, то должно быть обновление по этому полю. $row[0] - переменная, в которой содержится ID записи. Получает она свое значение вот так: $row = mysql_fetch_array ($query_result, MYSQL_NUM) ПОМОГИТЕ!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2005, 16:36 |
|
||
|
Не работает инструкция UPDATE с предложением WHERE
|
|||
|---|---|---|---|
|
#18+
сделай Код: plaintext ------------------ правильно поставленный вопрос содержит в себе половину ответа ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2005, 16:43 |
|
||
|
Не работает инструкция UPDATE с предложением WHERE
|
|||
|---|---|---|---|
|
#18+
Сообщения об ошибках есть или нет? В MySQL лучше всегда ставить кавычки: ...WHERE name = ' $value ' "; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2005, 17:24 |
|
||
|
Не работает инструкция UPDATE с предложением WHERE
|
|||
|---|---|---|---|
|
#18+
в $query_result лежит вот что: UPDATE Надомники SET 'Представитель' = 'Михно З.Г.' WHERE 'ID_надомника' = то есть те исправления, которые я вношу распознаются, а не воспринимается переменная $row[0]...похоже она совсем не видится :(( а что с этим делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2005, 17:25 |
|
||
|
Не работает инструкция UPDATE с предложением WHERE
|
|||
|---|---|---|---|
|
#18+
Lyaskaв $query_result лежит вот что: UPDATE Надомники SET 'Представитель' = 'Михно З.Г.' WHERE 'ID_надомника' = то есть те исправления, которые я вношу распознаются, а не воспринимается переменная $row[0]...похоже она совсем не видится :(( а что с этим делать? Честно говоря я вообще не понял, что вы хотели этим сказать или это уже конец дня. см. выше правильно поставленный вопрос содержит в себе половину ответа И вообще в $query_result никак не может быть то, что вы пишите. Давай еще раз... "с чувством, с толком, с расстоновкой". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2005, 18:13 |
|
||
|
Не работает инструкция UPDATE с предложением WHERE
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2005, 18:16 |
|
||
|
Не работает инструкция UPDATE с предложением WHERE
|
|||
|---|---|---|---|
|
#18+
ты прав....это конец дня...и тот запрос, что я написала лежит в $query... UPDATE Надомники SET Представитель = 'Михно' WHERE ID_надомника='' вот такой вот запросик....а переменная с id все-таки не видна.... знаете как исправить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2005, 18:25 |
|
||
|
Не работает инструкция UPDATE с предложением WHERE
|
|||
|---|---|---|---|
|
#18+
1. Предлагаю просто вывести переменную $row[0] и посмотреть, что в ней. Если она в порядке, то проблема скорее всего в запросе. 2. Для того, чтобы не гадать, напишите лучше структуру вашей таблицы (команда create table). И несколько операторов insert с тестовыми данными. 3. Еще раз..., четко, что вы хотите сделать. 4. Что должно получиться. 5. Где по-вашему мнению скорее всего "закралась" ошибка. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2005, 21:06 |
|
||
|
Не работает инструкция UPDATE с предложением WHERE
|
|||
|---|---|---|---|
|
#18+
значит так, по пунктам: 1. в переменной $row действительно находится ид_надомника 2.Сделать необходимо следующее - вывод данных из БД на экран с возможностью редактирования. При этом возможны два варианта реализации 1)на 1 странице помещается инфа об одном надомнике (для каждого атрибута имеется свое поле) 2)выводятся все данные из таблицы на экран, есть где-нибудь кнопочка"редактировать", нажимаем, получаем форму для поиска необходимой записи, находим, редактируем, сохраняем 3. Должна получится форма, которая дает наглядное и удобное представление информации 4. Если често, то мне кажется, что ошибка где-то в запросе на обновление, но я не уверена Вот мой скрипт, я пыталась реализовать 2-ой из описанных мой способов. Посмотрите, мож что подскажите. Буду очень благодарна: <html> <head> <title>Найти информацию о надомнике</title> </head> <body bgcolor = #FFD700> <?php require_once("mysql_connect.inc"); if (isset($submit_1)) { if ($Parent_old != $Parent) { $query_1 = "UPDATE Надомники SET Представитель = '$Parent' WHERE ID_надомника = '".$row[0]."'"; $query_result = mysql_query($query_1);} if ($query_result) {echo $row[0]; echo '<b><font>Данные были успешно изменены</font></b>'; echo $query_1; } else {echo $row[0]; echo '<b><font>Данные НЕ были изменены</font></b>'; echo $query; } } if (isset($submit)) { if (strlen($search)>0) { $query = "SELECT * FROM Надомники WHERE (Представитель LIKE'%$search%') || (Ребенок LIKE'%$search%') || (Адрес LIKE'%$search%') || (Телефон LIKE'%$search%')"; $query_result = mysql_query($query); $num_results = mysql_num_rows($query_result); if ($num_results == 0) { echo '<b><font size = 5 color = #000000>Результаты поиска: не найдено ни одной записи.</font></b><br><br> <a href = "nadomniki_main.php">Вернуться на главную страницу</a>';} if ($num_results !=0) { echo '<b><font size = 5>В результате поиска найдено записей:' .$num_results.' <br><br> <form action = "search_main.php" method = "post"> <table border=1 width="100%" >'; while ($row = mysql_fetch_array ($query_result, MYSQL_NUM)) { echo ' <table bgcolor = #DAA520 align = center border = 0> <tr> <td align = centre length = 50> <font size = 4 color = #000000>ID_надомника</font></td> <td> <input type = "text" name = "ID" size = 40 value = "'; print $row[0]; echo'"></td>'; $ID_old = $row[0]; echo ' </tr> <tr> <td align = centre length = 50> <font size = 4 color = #000000>ФИО законного представителя</font></td> <td> <input type = "text" name = "Parent" size = 40 value = "'; print $row[1]; echo'"></td>'; $Parent_old = $row[1]; echo ' </tr> <tr> <td align = centre length = 50> <font size = 4 color = #000000>ФИО ребенка</font></td> <td> <input type = text name = "Child" size = 40 value = "';print $row[2]; echo'"></td>'; $Child_old = $row[2]; echo ' </tr> <tr> <td align = centre length = 50> <font size = 4 color = #000000>Ближайшее метро</font></td> <td> <input type = text name = "Metro" size = 40 value = "';print $row[3]; echo'"></td>'; $Metro_old = $row[3]; echo ' </tr> <tr> <td align = centre length = 50> <font size = 4 color = #000000>Адрес</font></td> <td> <input type = text name = "Address" size = 40 value = "';print $row[4]; echo'"></td>'; $Address_old = $row[4]; echo ' </tr> <tr> <td align = centre length = 50> <font size = 4 color = #000000>Телефон</font></td> <td> <input type = text name = "Phone" size = 40 value = "';print $row[5]; echo'"></td>'; $Phone_old = $row[5]; echo' </tr> <tr> <td length = 40 height = 50> <font size = 4 color = #000000>ФИО пусконаладчика</font></td> <td>'; echo '<select name = "FIO_PNR">'; $query_result = mysql_query ('SELECT * FROM Пусконаладчики ORDER BY ФИО_пусконаладчика'); while ($row = mysql_fetch_array ($query_result, MYSQL_NUM)) { echo "<option value = \"$row[0]\">$row[1]</option>\n>"; } echo '</select></td>'; $FIO_PNR_old = $FIO_PNR; echo ' </tr> <tr> <td length = 40 height = 50> <font size = 4 color = #000000>Данные от МТУ</font></td> <td align = left> <input type = radio name = "Data_MTU" value="Да" checked>'; echo ' Да<br> <input type="radio" name="Data_MTU" value="Нет">'; echo ' Нет<br> '; $Data_MTU_old = $Data_MTU; echo ' </tr> <tr> <td></td> <td align = right> <input type = "submit" name = "submit_1" value = "Сохранить"> </tr> </table> </form>'; } } } } else { echo '<br><br><b><font size = 5 color = #000000 align = center>Поиск информации о надомнике</font></b><br><br><br> <form action = "search_main.php" method = "post"> <table align = center border = 0 bgcolor = #DAA520> <tr> <td align = center length = 50 height = 50> <font size = 4 color = #000000>Введите данные</font></td> <td align = center> <input type = text name = "search" size = 50 maxlength = 50></td> </tr> <tr> <td></td> <td align = right > <input type = "submit" name = "submit" value = "Найти!" /></td> </tr> </table> </form>'; } ?> </body> </html> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2005, 23:02 |
|
||
|
Не работает инструкция UPDATE с предложением WHERE
|
|||
|---|---|---|---|
|
#18+
Увидев это - я испугался!!! А если на самом деле разбираться не стал, но есть у вас такой кусок кода: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Это только беглый взгляд. Разбираться в вашем коде у меня нет времени. Такой код тяжело читается. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2005, 00:34 |
|
||
|
Не работает инструкция UPDATE с предложением WHERE
|
|||
|---|---|---|---|
|
#18+
Lyaskaзначит так, по пунктам: 1. в переменной $row действительно находится ид_надомника действительно ? т.е. echo $row[0] выводит именно то, что ожидается, а не пустую строку? если да и echo "UPDATE Надомники SET Представитель = '$Parent' WHERE ID_надомника = ".($row[0]); всё равно выдаёт г**но, то помогут только танцы с бубном вокруг $row[0] и способов конкатенации строк. маленькое замечание: почему ид окружается кавычками? это строка? или всё-таки число? можно, конечно, понадеяться на умное преобразование типов, но я бы не советовал... ------------------ правильно поставленный вопрос содержит в себе половину ответа ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2005, 13:11 |
|
||
|
Не работает инструкция UPDATE с предложением WHERE
|
|||
|---|---|---|---|
|
#18+
я немного подправила исходник: значение переменной $row[0] запоминается в переменной $ID и передается в запрос UPDATE, значения корректные, запрос стриоится правильно - я все эти данные на экран вывожу...вот кусок кода: if (isset($submit_1)) { $query; $query_result; if ($Parent_old != $Parent) { $query = "UPDATE Надомники SET (Представитель = '$Parent') WHERE (ID_надомника = $ID)"; $number = mysql_affected_rows(); $query_result = mysql_query($query); if ($query_result) {echo $ID; echo $Parent; echo $query; echo $number; echo '<b><font>Данные были успешно изменены</font></b>'; return; } else {echo $ID; echo $Parent; echo $query; echo $number; echo '<b><font>Данные НЕ были изменены</font></b>'; return; } } } только вот mysql_query выдает false...и mysql_effected_rows(); "-1"...может еще что-нить подскажите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2005, 13:01 |
|
||
|
Не работает инструкция UPDATE с предложением WHERE
|
|||
|---|---|---|---|
|
#18+
Во-первых, думаю, что такое код гораздо лучше для восприятия: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. P.S. никому не охото тратить свое время на чтение плохочитаемого кода. Извиняюсь за тафтологию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2005, 13:08 |
|
||
|
Не работает инструкция UPDATE с предложением WHERE
|
|||
|---|---|---|---|
|
#18+
Теперь во-вторых: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2005, 13:20 |
|
||
|
Не работает инструкция UPDATE с предложением WHERE
|
|||
|---|---|---|---|
|
#18+
спасибо за советы - они для меня очень ценны, потому что я совсем недавно начала заниматься программированием :) а теперь о деле: ошибка вот такая - Unknown column 'ID_надомника' in 'where clause' 1054 получается, что не распознается название атрибута...хотя такой есть в моей таблице... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2005, 13:43 |
|
||
|
Не работает инструкция UPDATE с предложением WHERE
|
|||
|---|---|---|---|
|
#18+
Уважаемый Bercut, спасибо большое за помощь! Проблема оказалась в том, что атрибут "ID_надомника" не воспринимался компилятором. Я его переименовала в "ID_nadomnika" и все заработало !!!!!!!!!)))) Спасибо Вам огромное! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2005, 13:56 |
|
||
|
Не работает инструкция UPDATE с предложением WHERE
|
|||
|---|---|---|---|
|
#18+
LyaskaУважаемый Bercut, спасибо большое за помощь! Проблема оказалась в том, что атрибут "ID_надомника" не воспринимался компилятором. Я его переименовала в "ID_nadomnika" и все заработало !!!!!!!!!)))) Спасибо Вам огромное! Lyaska, самое удивительное и в то же время забавное в этом топике то, что я никак даже не мог подумать, что Вы действительно пишите ID_надомника в запросе... Мне казалось, что вы так делаете только лишь для иллюстрации примера на форуме. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2005, 14:28 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=33004754&tid=1854181]: |
0ms |
get settings: |
12ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
166ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 305ms |
| total: | 576ms |

| 0 / 0 |
