Описание:
Если в заказе уже есть такой товар, то его добавить нельзя, если нет - его название добавляется в выпадающий список.
Если в заказ добавили все имеющиеся товары, то список должен содержать 1 значение = Нечего предложить.
Вопрос:
Уже часа полтора всматриваюсь в код и не могу понять: почему, не смотря на то, что все товары добавлены в заказ, в списке присутствуют 2 значения: выше указанное и еще один товар (который уже есть в заказе).
Причем практически такой же код на другой форме все правильно отрабатывает...
Спустя 12 минут, 59 секунд (4.07.2009 - 22:50) DeeKeiD написал(а):
Могу ошибатся но разве не должно быть так:
PHP |
$r = mysql_query("SELECT id_material_serv FROM djo_tipograph_material_serv_in_order WHERE id_order = '".$_GET['id_order']."'"); |
вместо
PHP |
$r = mysql_query("SELECT id_material_serv FROM djo_tipograph_material_serv_in_order WHERE id_order=".$_GET['id_order']); |
Спустя 12 минут, 10 секунд (4.07.2009 - 23:02) jetistyum написал(а):
1. читай про SQL injection
2. эти два страшных запроса и цикла можно объединить в один запрос
3. проговори логику своих вложенных циклов... может сам найдешь ошибку
Спустя 1 день, 12 часов, 41 минута, 35 секунд (6.07.2009 - 11:44) ApuktaChehov написал(а):
Вот так должно работать
PHP |
$r = mysql_query("SELECT id_material_serv FROM djo_tipograph_material_serv_in_order WHERE id_order = '.$_GET['id_order'].'"); |
Спустя 18 минут, 1 секунда (6.07.2009 - 12:02) FElix написал(а):
Немогу найти ошибку . Пошет переменная не определенна . Указывает на строку что выделенна ораньжевым. Что нетак не пойму
PHP |
<?php include ("blocks/bd.php");
if (isset($_POST['author'])) { $author = $_POST['author']; }
if (isset($_POST['text'])) { $text = $_POST['text']; }
if (isset($_POST['prov'])) { $prov = $_POST['prov']; }
if (isset($_POST['sub_com'])) { $sub_com = $_POST['sub_com']; }
if (isset($_POST['id'])) { $id = $_POST['id']; }
if (isset($sub_com)) { if (isset($author)) {trim($author); } else {$author = "";}
if (isset($text)) {trim($text); } else {$text = "";}
if (empty($author) or empty($text)) { exit ("<p>Вы ввели не всю информацию, вернитесь назад и заполните все поля. <br> <input name='back' type='button' value='Вернуться назад' onclick='javascript:self.back();'>"); }
$author = stripslashes($author); $text = stripslashes($text); $author = htmlspecialchars($author); $text = htmlspecialchars($text);
$result = mysql_query ("SELECT sum FROM comments_setting",$db); $myrow = mysql_fetch_array($result);
if ($prov == $myrow["sum"]) {
//aaa
} else { exit ("<p>Вы ввели неверную сумму цифр с картинки на предыдущей странице. <br> <input name='back' type='button' value='Вернуться назад' onclick='javascript:self.back();'>"); } |
Спустя 28 минут, 36 секунд (6.07.2009 - 12:30) glock18 написал(а):
FElix
значит не определена $prov.
ApuktaChehov
PHP |
$r = mysql_query("SELECT id_material_serv FROM djo_tipograph_material_serv_in_order WHERE id_order = '.$_GET['id_order'].'"); |
с кавычками напутал =>
PHP |
$r = mysql_query('SELECT id_material_serv FROM djo_tipograph_material_serv_in_order WHERE id_order = '.intval($_GET['id_order'])); |
Спустя 2 часа, 18 минут, 9 секунд (6.07.2009 - 14:48) Djo написал(а):
Пардон, но чем отличается мой вариант от ващего? (кроме intval разумеется, но здесь он роли не играет)
Спустя 5 минут, 21 секунда (6.07.2009 - 14:54) Djo написал(а):
Кстати про SQL injection очень интересная информация:)
Еще раз попытался проговорить (и даже записать) логику циклов, но к сожалению безуспешно:
первый цикл выбирает id и name (грубо говоря) из таблицы material_services
второй цикл сравнивает выбранный id с теми что находятся в таблице material_serv_in_order. Если находит одинаковые, то первый цикл не добавляет значение в выпадающий цикл.
Спустя 34 секунды (6.07.2009 - 14:54) glock18 написал(а):
Цитата (glock18 @ 6.07.2009 - 09:30) |
с кавычками напутал => |
я же говорю, ты с кавычками напутал:
Цитата |
"SELECT id_material_serv FROM djo_tipograph_material_serv_in_order WHERE id_order = '.$_GET['id_order'].'" |
Спустя 5 минут, 7 секунд (6.07.2009 - 15:00) Djo написал(а):
С ковычками не я напутал)
У меня вообще кавычек нет.. Они разве обязательны?
PHP |
$r = mysql_query("SELECT id_material_serv FROM djo_tipograph_material_serv_in_order WHERE id_order=".$_GET['id_order']); |
Спустя 1 минута, 16 секунд (6.07.2009 - 15:01) glock18 написал(а):
вставь то, что ты дал и проверь уже. я тебе выделил две пары кавычек, а ты говоришь, что у тебя их вообще нет.
Спустя 6 минут, 46 секунд (6.07.2009 - 15:08) Sylex написал(а):
Djo
если поле числовое - не обязательны
Спустя 17 минут, 26 секунд (6.07.2009 - 15:25) Djo написал(а):
![unsure.gif](http://phpforum.ru/html/emoticons/unsure.gif)
Да у меня ж это самое и стояло в самом начале:
мой вариант:
PHP |
//защита от повторного заказа $r = mysql_query("SELECT id_material_serv FROM djo_tipograph_material_serv_in_order WHERE id_order=".$_GET['id_order']); $notrade=0; |
то что ты написал:
PHP |
$r = mysql_query('SELECT id_material_serv FROM djo_tipograph_material_serv_in_order WHERE id_order = '.intval($_GET['id_order'])); |
в общем проблема остается нерешенной...
Спустя 4 минуты, 45 секунд (6.07.2009 - 15:30) glock18 написал(а):
эт... че-т я от темы отошел.
Щас объясню чего эт я себя так плохо веду,
Djo
Пришел
ApuktaChehov и дал код с некорректно расставленными кавычками.
Дальше я поправил его, а ты отнес все на свой счет. Вот и начали...
Спустя 1 минута, 30 секунд (6.07.2009 - 15:31) glock18 написал(а):
понял что ты там хочешь.
читай про JOIN.
Спустя 30 минут, 15 секунд (6.07.2009 - 16:01) Djo написал(а):
Не подскажешь какой-нибудь ресурс где хорошо про JOIN написано?
Пока из того что прочитал не могу понять разницу между JOIN и WHERE.
Спустя 34 минуты, 3 секунды (6.07.2009 - 16:52) Djo написал(а):
Спустя 8 минут, 34 секунды (6.07.2009 - 17:01) Djo написал(а):