Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Проблема с чтением данных из БД через поле формы ввода.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
KuPbI4
Отправлено: 15 Августа, 2011 - 21:04:49
Post Id


Частый гость


Покинул форум
Сообщений всего: 171
Дата рег-ции: Авг. 2010  


Помог: 0 раз(а)




Здравствуйте.
Хотел спросить по поводу проблемы чтения из базы данных через поле формы ввода. Что это значит? Это значит, я допустим добавил данные в БД, и хочу редактировать через поля формы ввода.
Вот допустим:
Добавил такие данные:
Цитата:
id 1
model lada calina
money 150000

А теперь хочу редактировать, захожу на страницу редактирования и запрашивает запрос через id методом $_GET, результат таков:
Цитата:

id 1
model lada
money 150000

Собственно, сам код:
PHP:
скопировать код в буфер обмена
  1.         <?
  2.     $id_car = strip_tags(stripslashes(substr($_GET['id_car'], 0, 11)));
  3.  
  4.     $q = "SELECT * FROM cars WHERE id_car='$id_car'";
  5.     $result = mysql_query($q);
  6.     $row = mysql_fetch_assoc($result);
  7.        
  8.         $id_car = strip_tags(stripslashes(substr($row['id_car'],0,11)));
  9.         $model = strip_tags(stripslashes(substr($row['model'],0,255)));
  10.         $year = strip_tags(stripslashes(substr($row['year'],0,11)));
  11.         $mesto = strip_tags(stripslashes(substr($row['mesto'],0,255)));
  12.         $phone = strip_tags(stripslashes(substr($row['phone'],0,32)));
  13.         $probeg = strip_tags(stripslashes(substr($row['probeg'],0,11)));
  14.         $kpp = strip_tags(stripslashes(substr($row['kpp'],0,255)));
  15.         $moschnost = strip_tags(stripslashes(substr($row['moschnost'],0,11)));
  16.         $money = strip_tags(stripslashes(substr($row['money'],0,11)));
  17.        
  18.         echo '<form action="edit.php" method="post" ENCTYPE="multipart/form-data">
  19.         <table width="100%"  height="100%" border="0" cellspacing="0" cellpadding="0" id="table">
  20.         <tr>
  21.    <td height="249" rowspan="16">&nbsp;</td>
  22.    <td align="justify" valign="top" width="16%">ID машины (для чтения): </td>
  23.    <td align="justify" valign="top" width="21%">
  24.    <input type="text" name="id_car" value='.$id_car.' readonly><br>
  25.         </td>
  26.    <td rowspan="16">&nbsp;</td>
  27.    </tr>
  28.         <tr>
  29.    <td align="justify" valign="top">Модель машины: <b><font color="red">*</font></b></td>
  30.    <td align="justify" valign="top">
  31.    <input type="text" name="model" value='.$model.'>
  32.         </td>
  33.    </tr>
  34.         <tr>
  35.    <td align="justify" valign="top">Год выпуска: <b><font color="red">*</font></b></td>
  36.    <td align="justify" valign="top">
  37.    <input type="text" name="year" value='. $year .'> г.
  38.         </td>
  39.    </tr>
  40.         <tr>
  41.    <td height="22" align="justify" valign="top">Место стоянки: <b><font color="red">*</font></b></td>
  42.    <td align="justify" valign="top">
  43.    <input type="text" name="mesto" value='. $mesto .'>
  44.    </td>
  45.    </tr>
  46.         <tr>
  47.    <td align="justify" valign="top">Контактный телефон: <b><font color="red">*</font></b></td>
  48.    <td align="justify" valign="top">
  49.    <input type="text" name="phone" value='. $phone .'>
  50.    </td>
  51.         <tr>
  52.    <td align="justify" valign="top">Пробег: <b><font color="red">*</font></b></td>
  53.    <td align="justify" valign="top">
  54.         <input type="text" name="probeg" value='. $probeg .'> км
  55.         </td>
  56.    </tr>
  57.         <tr>
  58.    <td align="justify" valign="top">КПП (на данный момент): <b><font color="red">*</font></b></td>
  59.    <td align="justify" valign="top">
  60.         <input type="text" value='.$kpp.' readonly>
  61.         </td>
  62.    </tr>
  63.         <tr>
  64.    <td align="justify" valign="top">КПП (для изменения):  <b><font color="red">*</font></b></td>
  65.    <td align="justify" valign="top">
  66.         <select name="kpp" id="kpp" ><option selected value='.$kpp.'></option><option value="Автомат">Автомат</option><option value="Ручная">Ручная</option></select>
  67.         </td>
  68.    </tr>
  69.         <tr>
  70.    <td align="justify" valign="top">Мощность: <b><font color="red">*</font></b></td>
  71.    <td align="justify" valign="top">
  72.         <input type="text" name="moschnost" value='.$moschnost.'> см<sup>3</sup>
  73.         </td>
  74.    </tr>
  75.         <tr>
  76.    <td align="justify" valign="top">Цена: <b><font color="red">*</font></b></td>
  77.    <td align="justify" valign="top">
  78.         <input type="text" name="money" value='.$money.'> руб.
  79.         </td>
  80.    </tr>
  81.         </table>
  82.         <input type="submit" value="Редактировать" name="edit"/>&nbsp;<input type="reset" value="Очистить"/>
  83.         </form>';

НО! Если так:
PHP:
скопировать код в буфер обмена
  1.  
  2. <input type="text" name="money" value="'.$model.'"> руб.
  3.  

то получит ВСЕ данные из БД. Результат будет таков:
Цитата:
id 1
model lada calina
money 150000

Если мы добавим данные, к примеру:
Цитата:

id 1
model lada "calina"
money 150000

То тогда захожу на страницу редактирования и запрашивает запрос через id методом $_GET, результат таков:
Цитата:

id 1
model lada
money 150000


Есть варианты какие-то, как исправить ошибку?!
 
 Top
КЫР
Отправлено: 15 Августа, 2011 - 21:09:07
Post Id



Частый гость


Покинул форум
Сообщений всего: 168
Дата рег-ции: Авг. 2011  
Откуда: Новосибирск


Помог: 2 раз(а)




strip_tags и stripslashes стоит делать перед добавлением в бд, а не после чтения

а по теме - попробуй без mysql_fetch_assoc

PHP:
скопировать код в буфер обмена
  1.  
  2. $id_car = mysql_result($result,0,'id_car');
  3. $model = mysql_result($result,0,'model');
  4. $year = mysql_result($result,0,'year');
  5.  


и т.д.


-----
Fuck you guys, I'll going home
 
 Top
KuPbI4
Отправлено: 15 Августа, 2011 - 21:26:16
Post Id


Частый гость


Покинул форум
Сообщений всего: 171
Дата рег-ции: Авг. 2010  


Помог: 0 раз(а)




КЫР пишет:
strip_tags и stripslashes стоит делать перед добавлением в бд, а не после чтения

а по теме - попробуй без mysql_fetch_assoc

PHP:
скопировать код в буфер обмена
  1.  
  2. $id_car = mysql_result($result,0,'id_car');
  3. $model = mysql_result($result,0,'model');
  4. $year = mysql_result($result,0,'year');
  5.  


и т.д.

Спасибо за подсказку, но не получилось. Выдает те же данные, т.е. добавили:
Цитата:
model lada "calina"

А в редактировании выводит тоже самое:
Цитата:
model lada

и попробовал без mysql_fetch_assoc

(Отредактировано автором: 15 Августа, 2011 - 21:26:56)

 
 Top
КЫР
Отправлено: 15 Августа, 2011 - 21:30:27
Post Id



Частый гость


Покинул форум
Сообщений всего: 168
Дата рег-ции: Авг. 2011  
Откуда: Новосибирск


Помог: 2 раз(а)




а какой тип поля и кодировка бд?


-----
Fuck you guys, I'll going home
 
 Top
KuPbI4
Отправлено: 15 Августа, 2011 - 21:34:48
Post Id


Частый гость


Покинул форум
Сообщений всего: 171
Дата рег-ции: Авг. 2010  


Помог: 0 раз(а)




КЫР пишет:
а какой тип поля и кодировка бд?

тип поля - varchar(255)
кодировка бд - cp1251_general_ci

(Отредактировано автором: 15 Августа, 2011 - 21:36:09)

 
 Top
КЫР
Отправлено: 15 Августа, 2011 - 21:37:29
Post Id



Частый гость


Покинул форум
Сообщений всего: 168
Дата рег-ции: Авг. 2011  
Откуда: Новосибирск


Помог: 2 раз(а)




попробуйте тип поля text сделать


-----
Fuck you guys, I'll going home
 
 Top
KuPbI4
Отправлено: 15 Августа, 2011 - 21:43:49
Post Id


Частый гость


Покинул форум
Сообщений всего: 171
Дата рег-ции: Авг. 2010  


Помог: 0 раз(а)




КЫР пишет:
попробуйте тип поля text сделать

Пробовал, тоже самое, и пробовал даже кодировку сменить на utf8_general_ci, безрезультатно.
 
 Top
КЫР
Отправлено: 15 Августа, 2011 - 21:46:42
Post Id



Частый гость


Покинул форум
Сообщений всего: 168
Дата рег-ции: Авг. 2011  
Откуда: Новосибирск


Помог: 2 раз(а)




а страница со скриптом тоже utf-8?
если да, попробуйте перед выводом значений сделать iconv('windows-1251','utf-8',$string);
если так не поможет, попробуйте поменять местами кодировки при вызове)


-----
Fuck you guys, I'll going home
 
 Top
KuPbI4
Отправлено: 15 Августа, 2011 - 21:55:45
Post Id


Частый гость


Покинул форум
Сообщений всего: 171
Дата рег-ции: Авг. 2010  


Помог: 0 раз(а)




КЫР пишет:
а страница со скриптом тоже utf-8?
если да, попробуйте перед выводом значений сделать iconv('windows-1251','utf-8',$string);
если так не поможет, попробуйте поменять местами кодировки при вызове)

Страница со скриптом - windows-1251
CODE (html):
скопировать код в буфер обмена
  1. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

Попробовал Ваш вариант:

Такой же результат.
Попробовал даже поменять места кодировки при вызове:

Такой же результат.
 
 Top
КЫР
Отправлено: 15 Августа, 2011 - 21:58:42
Post Id



Частый гость


Покинул форум
Сообщений всего: 168
Дата рег-ции: Авг. 2011  
Откуда: Новосибирск


Помог: 2 раз(а)




ну тогда пробуем тяжелую артилерию)
попробуйте заменить кавычки спецсимволами
и пробелы тоже
пОшло конечно, но результат тут знать уже просто интересно)

(Отредактировано автором: 15 Августа, 2011 - 21:59:49)



-----
Fuck you guys, I'll going home
 
 Top
KuPbI4
Отправлено: 15 Августа, 2011 - 22:07:25
Post Id


Частый гость


Покинул форум
Сообщений всего: 171
Дата рег-ции: Авг. 2010  


Помог: 0 раз(а)




КЫР пишет:
ну тогда пробуем тяжелую артилерию)
попробуйте заменить кавычки спецсимволами
и пробелы тоже
пОшло конечно, но результат тут знать уже просто интересно)

Заменял кавычки на спецсимволами типа:
Цитата:
!№;:?*()
Цитата:
!@#$%^&*()
Цитата:
~<>:{}

Они выводятся. Пробелы убирал и добавлял, там в чтении поле формы вводы пробел есть.
Единственное, что не читается это
Цитата:
<>""''

(Отредактировано автором: 15 Августа, 2011 - 22:08:01)

 
 Top
КЫР
Отправлено: 15 Августа, 2011 - 22:08:48
Post Id



Частый гость


Покинул форум
Сообщений всего: 168
Дата рег-ции: Авг. 2011  
Откуда: Новосибирск


Помог: 2 раз(а)




ну тогда попробуйте вместо " &quot;


-----
Fuck you guys, I'll going home
 
 Top
KuPbI4
Отправлено: 15 Августа, 2011 - 22:12:24
Post Id


Частый гость


Покинул форум
Сообщений всего: 171
Дата рег-ции: Авг. 2010  


Помог: 0 раз(а)




КЫР пишет:
ну тогда попробуйте вместо " &quot;

Радость насмешили, выводится в поле ввода формы, но тупым пользователям, которые будут редактировать, не знают ведь, что такое &quot; Радость

(Отредактировано автором: 15 Августа, 2011 - 22:12:51)

 
 Top
КЫР
Отправлено: 15 Августа, 2011 - 22:15:05
Post Id



Частый гость


Покинул форум
Сообщений всего: 168
Дата рег-ции: Авг. 2011  
Откуда: Новосибирск


Помог: 2 раз(а)




ойой, забыл что в инпут выводим
мне тут что подумалось - выводит он только lada, а в исходном коде это поле как выглядит? попробуйте еще это значение вывести не в инпут, а обычным текстом


-----
Fuck you guys, I'll going home
 
 Top
KuPbI4
Отправлено: 15 Августа, 2011 - 22:18:40
Post Id


Частый гость


Покинул форум
Сообщений всего: 171
Дата рег-ции: Авг. 2010  


Помог: 0 раз(а)




КЫР пишет:
ойой, забыл что в инпут выводим
мне тут что подумалось - выводит он только lada, а в исходном коде это поле как выглядит? попробуйте еще это значение вывести не в инпут, а обычным текстом

В исходном коде html:
Цитата:
value="&quot;"

Если так:

то выводит
Цитата:
"

(Отредактировано автором: 15 Августа, 2011 - 22:19:56)

 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« HTTP и PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB