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
Форумы портала PHP.SU :: Версия для печати :: Передача из форм в MySQL
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Передача из форм в MySQL

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

1. Holon - 26 Октября, 2007 - 14:10:22 - перейти к сообщению
Существует связка HTML-PHP-MySql, опишу результаты работы этой связки,
при вводе в форму с полем:

Customer: 'Ivan'
Number: 1111
Date_Ex: '2007-10-26'

Все работает отлично, данные заносятся в таблицу "БД" и в продолжении скрипта отображаются на экране броузера без проблем, теперь второй вариант, Я незаключаю
имя Ivan в кавычки,

Customer: Ivan
Number: 1111
Date_Ex: '2007-10-26'

результат следующий:

Unknown column 'Ivan' in 'field list'

Теперь третий вариант заполнения формы

Customer: 1234
Number: 1111
Date_Ex: '2007-10-26'

Заметим, что 1234 сейчас без кавычек, и опять все работает нормально,
я пробовал включать волшебные кавычки в файле php.ini, это непомогло,
ниже привожу пример скрипта и html формы
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. Error_Reporting(E_ALL & ~E_NOTICE);
  4. $host = "localhost";
  5. $user = "vldsa";
  6. $password = "12345";
  7. $db =  "client";
  8. if (!mysql_connect($host, $user, $password))
  9. {
  10. echo "<h2>MySQL Error!</h2>";
  11. }
  12. mysql_query("set character_set_client='hebrew'");
  13. mysql_query("set character_set_connection='hebrew'");
  14. mysql_query("set character_set_database='hebrew'");
  15. mysql_query("set character_set_results='hebrew'");
  16. mysql_query("set character_set_server='hebrew'");
  17.  
  18. $query = "INSERT INTO `Info` ( `NPP` , `CURDATE` , `DATE` ,
  19. `CUSTOMER` , `MAN_NO` , `ORD_NO` , `CUST_NO` , `DATE_EX` )
  20. VALUES ('6', CURDATE( ) , '2007-10-16', ".$_POST['text1'].",".$_POST['text2'].",
  21. '24555', '214456',".$_POST['text3'].")";
  22.  
  23. mysql_query($query) or die(mysql_error());
  24. echo "<table border="1" width="100%"  lang="he">";
  25. echo "<tr><td>CUSTOMER</td><td>MAN_NO</td><td>DATE_EX</td></tr>";
  26. ("SELECT
  27. CUSTOMER, MAN_NO, DATE_EX, (DATE_EX)- (CURRENT_DATE)
  28. - (RIGHT(CURRENT_DATE,5)<RIGHT(DATE_EX,5))
  29. AS result
  30. FROM INFO ORDER BY DATE_EX");
  31. for ($c=0; $c<mysql_num_rows($q); $c++)
  32. {
  33. if($f[result]==0) $color= "#CD5C5C";
  34. if($f[result]<0) $color= "#FF4040";
  35. if($f[result]>0) $color= "#8B864E";
  36.  
  37. echo "<tr lang="he" bgcolor="$color"><td>$f[CUSTOMER]</td>";
  38. echo "<td>$f[MAN_NO]</td><td>$f[DATE_EX]</td></tr>";
  39. }
  40. echo "</table>";
  41.  
  42. ?>
  43.  


это сама форма:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=hebrew">
<title>Title</title>
</head>
<body>
<h3>test form</h3>
<form name="form1" method="post" action="put_to_db.php">

<p><span>Customer: </span>
<input type="text" name="text1">
</p>

<p><span> Number: </span>
<input type="text" name="text2">
</p>

<p><span> Date_Ex: </span>
<input type="text" name="text3">
</p>

<p>
<input type="submit" value="Send">
<input type="reset" value="Reset">
</p>
</form>
</body>
</html>

Что надо сделат, что бы связка HTML-PHP-MySql, работала адекватно,
при внесении имени Ivan без кавычек.

2. evgenijj - 26 Октября, 2007 - 16:46:02 - перейти к сообщению
Customer - строка, ее надо заключать в кавычки.
PHP:
скопировать код в буфер обмена
  1.  
  2.  $query = "INSERT INTO `Info` ( `NPP` , `CURDATE` , `DATE` ,  
  3.  `CUSTOMER` , `MAN_NO` , `ORD_NO` , `CUST_NO` , `DATE_EX` )  
  4. VALUES ('6', CURDATE( ) , '2007-10-16', '".$_POST['text1']."', ".$_POST['text2'].",  
  5.  '24555', '214456',".$_POST['text3'].")";
  6.  
3. Holon - 26 Октября, 2007 - 17:47:42 - перейти к сообщению
Все заработало, большее спасибо.
4. valenok - 26 Октября, 2007 - 18:22:32 - перейти к сообщению
Для значений используйте одинарные кавычки а не апострофы.
( кавычка ' , апостроф `)
5. Holon - 27 Октября, 2007 - 01:05:22 - перейти к сообщению
Вот опять с кавычками запутолся, вот эта строка работает нормально:
PHP:
скопировать код в буфер обмена
  1. $query = ("DELETE FROM `Info` WHERE `MAN_NO` IN (9001)");

а эта выдает ошибку:
PHP:
скопировать код в буфер обмена
  1. $query = ("DELETE FROM `Info` WHERE `MAN_NO` IN" (.$_POST['text4'].));

как во втором случае правильно расставить кавычки?
6. evgenijj - 27 Октября, 2007 - 06:21:03 - перейти к сообщению
А давай ты зайдешь на Yandex или Google и наберешь в адресной строке
"PHP конкатенация строк"
Потом внимательно изучишь материал, и сам ответишь на свой вопрос.

Я ответить затрудняюсь, потому что вот это
PHP:
скопировать код в буфер обмена
  1.  
  2. $query = ("DELETE FROM `Info` WHERE `MAN_NO` IN" (.$_POST['text4'].));
  3.  

полная фигня.

Пример:
PHP:
скопировать код в буфер обмена
  1.  
  2. // я объявляю целочисленную переменную myInt
  3. $myInt = 1000;
  4. // я объявляю строковую переменную "Терминатор T-"
  5. $myString =  "Терминатор T-";
  6. // путем неявного приведения типов я привожу целочисленную переменную 1000
  7. // к строковому типу и "склеиваю" строки "Терминатор T-" и "1000"
  8. $str = $myString.$myInt;
  9. // получаю на выходе строку "Терминатор T-1000"
  10. echo $str;
  11.  
7. Holon - 27 Октября, 2007 - 10:56:59 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $post = $_POST['text4'];
  2. $query = "DELETE FROM info WHERE MAN_NO IN ('$post')";
  3.  
8. valenok - 27 Октября, 2007 - 13:55:41 - перейти к сообщению
А как звучит в переводе с Английского слово IN ?
И куда вы дели апострофы вокруг названия таблицы и названия поля?- Их оставьте\n\n(Добавление)
Слушайте, это не вы с канали дискавери эксперимент устраиваете пытаясь прочитать книжку с конца на начало?

$query = ("DELETE FROM `Info` WHERE `MAN_NO` IN" (.$_POST['text4'].));

Вроде mysql а со строками работать не умеете. С присваиванием еле справляетесь. Да и запрос сложнее чем то что вам нужно.
9. Holon - 27 Октября, 2007 - 14:33:56 - перейти к сообщению
http://phpclub[dot]ru/talk/showthrea[dot][dot][dot]03658&rand=6
10. valenok - 27 Октября, 2007 - 16:07:32 - перейти к сообщению
Спасибо, почитаю. Может эта ссылка поможет мне решить порблему ...\n\n(Добавление)
Ну и что ?
Думаете я могу несогласится хоть с одним не вашим сообщением там ?
Вам сказали что делать. Пойти учится сразу в десятый класс нельзя.

А вообще, не хотите учиться, не хотите думать
вот вам форум: http://softtime[dot]ru/forum/
Там для вас всё разжуют и на блюдечке с золотой каёмочкой.

 

Powered by ExBB FM 1.0 RC1