|
|
|
ExtJS + PHP сохранение измененных данных в БД
|
|||
|---|---|---|---|
|
#18+
Столкнулся с распространенной для новичков проблемой - есть Grid с возможностью редактирования загруженных туда данных из БД и сама проблема - при изменении данных и последующем обновлении страницы ничего не обновляется, база остается неизменной. В FireBug проверил, что после изменения данных POST отправляется (в виде JSON-строки, в которой было изменение). Но как правильно эти данные принять, и сделать Update, не могу пока понять( Код HTML: Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Код js: Код: javascript 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. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. Код PHP: Код: php 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. 44. 45. 46. 47. 48. 49. 50. 51. Адресовал вопрос сюда, так как сам не знаю, в какой части кода проблема) Буду признателен за помощь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2013, 18:01 |
|
||
|
ExtJS + PHP сохранение измененных данных в БД
|
|||
|---|---|---|---|
|
#18+
RomaT24В FireBug проверил, что после изменения данных POST отправляется (в виде JSON-строки, в которой было изменение). Но как правильно эти данные принять, и сделать Update, не могу пока понятьрекомендую Вам попросить модератора перекинуть тему в раздел php ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2013, 18:14 |
|
||
|
ExtJS + PHP сохранение измененных данных в БД
|
|||
|---|---|---|---|
|
#18+
Паганель, уже сделал) но, может, вы можете что-то подсказать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2013, 18:56 |
|
||
|
ExtJS + PHP сохранение измененных данных в БД
|
|||
|---|---|---|---|
|
#18+
автор Код: sql 1. 2. 3. 4. Здесь $fname и $devid - точно оба являются числами? В любом случае, перед использованием принимаемых данных в запросе следует выполнить их проверку на соответствие требованиям. Почему следует? Потому что sql injection (в гугл/яндекс). автор Код: sql 1. Сказав "А", надо бы и "Б" сказать. Раз уж результат выполнения запроса присваиваете какой-то переменной, так используйте ее для контроля за выполнением запроса. Еще mysql_error() никто не отменял. Впрочем, последнее весьма спорно. Уже давно рекомендуют прекратить использование функций mysql_* и заменить их альтернативными (мож лет через несколько и в учебниках об этом и напишут, а пока из PHP 5.5 эти функции уже выкинули). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2013, 21:12 |
|
||
|
ExtJS + PHP сохранение измененных данных в БД
|
|||
|---|---|---|---|
|
#18+
Опс, да в запросе еще и запятая лишняя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2013, 21:16 |
|
||
|
ExtJS + PHP сохранение измененных данных в БД
|
|||
|---|---|---|---|
|
#18+
И еще, mysql_query может обрабатывать только один запрос, а не пачку. Так что, бегин, апдейт и коммит - это три отдельных запроса. И без ";" в конце (смотрите в мануал). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2013, 21:18 |
|
||
|
ExtJS + PHP сохранение измененных данных в БД
|
|||
|---|---|---|---|
|
#18+
vkle, убрал запятую, добавил проверку на ошибки. В результате ошибка 1054 "Unknown column in 'field list' ". Но проблема в том, что в основном на всех сайтах в качестве решения этой проблемы советуют просто добавить этот столбец программно. Допустим, но у меня неизвестен не сам столбец, а лишь значение измененной ячейки из этого столбца, то есть, понятное дело, добавлять эту ячейку нет смысла, так как при последующем изменении он снова ее не увидит. Код PHP после изменений: Код: php 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. 44. 45. 46. 47. 48. 49. 50. 51. И еще, F_name это строка. И если в качестве проверки самого update присвоить полю F_name фиксированное значение, например, 'Ivanov', то все прекрасно обновляется. Очень бесит, что ошибка, скорее всего, проста, но не могу отыскать решение в интернете( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2013, 01:16 |
|
||
|
ExtJS + PHP сохранение измененных данных в БД
|
|||
|---|---|---|---|
|
#18+
RomaT24F_name это строкаНу так и задавайте строку как положено - в одиночных кавычках. Иначе это будет именем поля. RomaT24не могу отыскать решение в интернетеНачните с изучения мануала . Хотя бы, основы. Для начала. Кроме того, не будет лишним привыкнуть писать красиво, структурировано, и при этом соблюдая правила. Как вариант: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Читаемость кода от этого только выигрывает, да и банальные ошибки ищутся гораздо легче, не говоря о том, что некоторых можно избежать вовсе (попробуйте дать полю имя, идентичное какому-либо служебному слову). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2013, 01:56 |
|
||
|
ExtJS + PHP сохранение измененных данных в БД
|
|||
|---|---|---|---|
|
#18+
vkle, спасибо огромное, всё заработало) Вся проблема-то в самих кавычках, блин) А мануал уже изучаю) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2013, 15:10 |
|
||
|
ExtJS + PHP сохранение измененных данных в БД
|
|||
|---|---|---|---|
|
#18+
vkle, прошу прощения, еще один вопрос, чтобы тему отдельно не создавать) Если в таблице изменить значения сразу в нескольких ячейках, то обновляется только одно, последнее по порядку изменения, поле, остальные не изменяются. Получается, что в PHP мы принимаем только последний POST? Но как сделать, чтобы обрабатывались все поля? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2013, 17:16 |
|
||
|
ExtJS + PHP сохранение измененных данных в БД
|
|||
|---|---|---|---|
|
#18+
а что говорит Firebug? Запросов один или два? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2013, 17:18 |
|
||
|
ExtJS + PHP сохранение измененных данных в БД
|
|||
|---|---|---|---|
|
#18+
Паганель, при каждом изменении добавляется POST, но и его содержимое увеличивается на одну JSON-строку, где были сделаны изменения. Но посмотрел "Ответ" и там "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 '' at line 6" А в PHP-файле line 6 соответствует Код: php 1. Весь файл: Код: php 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. 44. 45. 46. 47. 48. 49. 50. 51. 52. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2013, 17:37 |
|
||
|
ExtJS + PHP сохранение измененных данных в БД
|
|||
|---|---|---|---|
|
#18+
поставьте уже в своем нетбинсе точку останова и посмотрите что внутри $sql про инъекции промолчу т.к. уже сказали ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2013, 17:50 |
|
||
|
ExtJS + PHP сохранение измененных данных в БД
|
|||
|---|---|---|---|
|
#18+
Паганель, я в Notepad пишу, с ним никак этот вопрос не решить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2013, 18:05 |
|
||
|
ExtJS + PHP сохранение измененных данных в БД
|
|||
|---|---|---|---|
|
#18+
RomaT24Получается, что в PHP мы принимаем только последний POST?var_dump($_POST); для начала. А там уж смотрите, что принимается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2013, 22:01 |
|
||
|
ExtJS + PHP сохранение измененных данных в БД
|
|||
|---|---|---|---|
|
#18+
vkle, уж простите за глупый вопрос, но где этот var_dump вставить?) Если в отдельный php файл, то при его запуске выводит array(0) { } (уже после того, как в основном файле POST отправлен), а в моем коде как его применить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2013, 16:23 |
|
||
|
ExtJS + PHP сохранение измененных данных в БД
|
|||
|---|---|---|---|
|
#18+
RomaT24, В тот файл, где принимаете входные данные. Однако, не пора ли взяться за учебник? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2013, 21:06 |
|
||
|
ExtJS + PHP сохранение измененных данных в БД
|
|||
|---|---|---|---|
|
#18+
vkle, я понимаю, что в файл, но где бы я не размещал в нем эту проверку, не выводится тогда вообще ничего. В учебниках и интернете очень хорошо описываются функции, методы и тд. Просто так, предварительно не поискав решение в интернете, я бы вам такие вопросы не задавал) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2013, 00:42 |
|
||
|
ExtJS + PHP сохранение измененных данных в БД
|
|||
|---|---|---|---|
|
#18+
RomaT24где бы я не размещал в нем эту проверку, не выводится тогда вообще ничего var_dump тем и хороша, что в любом случае что-то выведет, будь то пустая строка или пустой массив, не определенная ранее переменная и т.п. Даже при отключенных сообщениях об ошибках. Если же действительно ничего не выводит, то причин вижу две: не там смотрите или этот кусок кода не выполняется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2013, 11:43 |
|
||
|
ExtJS + PHP сохранение измененных данных в БД
|
|||
|---|---|---|---|
|
#18+
как можно разрабатывать без среды разработки? как можно отлаживать без точек останова? как можно вообще к проекту приступать без нормально подготовленного рабочего места? я не понимаю. изнините за оффтоп ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2013, 09:36 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=38388575&tid=1447902]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
172ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
| others: | 234ms |
| total: | 514ms |

| 0 / 0 |
