<?php
// Устанавливаем соединение с базой данных
require_once("config.php");
// Начало HTML-формы
echo "<form method=post>";
// Формируем первый выпадающий список
$query = "SELECT * FROM catalogs";
$cat = mysql_query($query);
if(!$cat) exit(mysql_error());
// Если имеется хотя бы одна запись
// формируем выпадающий список
if(mysql_num_rows($cat) > 0)
{
echo "<select name=id_catalog onchange='this.form.submit()'>";
echo "<option value=0>Не имеет значения</option>";
while($catalog = mysql_fetch_array($cat))
{
if($catalog['id_catalog'] == $catalog['id_catalog']) $selected = "selected";
else $selected = "";
echo "<option value=$catalog[id_catalog] $selected>$catalog[name]</option>";
}
echo "</select>";
}
// Проверяем является ли параметр id_catalog числом
if(preg_match("|^[\d]+$|",$_POST['id_catalog']));
{
// Формируем второй выпадающий список
$query = "SELECT * FROM products
WHERE id_catalog = $catalog[id_catalog]";
// ORDER BY name";
$prd = mysql_query($query);
if(!$prd) exit(mysql_error());
// Если в текущем каталоге имеется хотя бы
// одна товарная позиция формируем выпадающий список
if(mysql_num_rows($prd) > 0)
{
echo "<select name=id_product onchange='this.form.submit()'>";
while($product = mysql_fetch_array($prd))
{
echo "<option value=$product[id_product]>$product[name]</option>";
}
echo "</select>";
}
}
// Конец HTML-формы
echo "</form>";
?>
Форум → Программирование → PHP для идиотов → проблема с выпадающими списками из запроса в таблицы
проблема с выпадающими списками из запроса в таблицы
-
У меня вопрос, перерыл инфу по работе с выпадающими списками. В основном с использованием скриптов. В общем код такой:
-
-
28 января 2008 г. 10:28, спустя 21 час 50 минут 33 секунды
Ошибка:
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 2
понятно, что ошибку дает где то здесь
$query = "SELECT * FROM products
WHERE id_catalog =$catalog[id_catalog]
if(preg_match("|^[\d]+$|",$_POST['id_catalog']));
проверяет является ли параметр id_catalog числом
я пробовал так везде вместо $catalog[id_catalog] ставил $_POST['id_catalog']
и наоборот.
то есть вместо запроса
$query = "SELECT * FROM products
WHERE id_catalog =$catalog[id_catalog]
ставил
$query = "SELECT * FROM products
WHERE id_catalog =$_POST['id_catalog']
тогда он ругается на синтаксис, блин.
я к вечеру вывешу структуру таблицы
попробуйте кто-нибудь прогнать этот код. А то я вроде бы попробовал много разных вариантов. И кажется в конец запутался. -
28 января 2008 г. 10:43, спустя 14 минут 35 секунд
Так выведите этот синтаксис и посмотрите, что там получилось:$query = "SELECT * FROM products WHERE id_catalog =$catalog[id_catalog]";
print $query; -
28 января 2008 г. 11:00, спустя 17 минут 13 секунд
Ну уж если на то пошло то наверное писать надо такWHERE id_catalog =".$_POST['id_catalog']."
from TRIAL with LOVE -
28 января 2008 г. 13:09, спустя 2 часа 8 минут 48 секунд
"SELECT * FROM products WHERE id_catalog={$catalog[id_catalog]}"
-
28 января 2008 г. 13:11, спустя 1 минуту 58 секунд
А не надо пробовать. Надо выучить правила работы со строками, а не пытаться решить задачу методом тыка.Тогда все распутается …
А то я вроде бы попробовал много разных вариантов. И кажется в конец запутался. -
28 января 2008 г. 13:35, спустя 24 минуты 8 секунд
"SELECT * FROM products WHERE id_catalog={$catalog[id_catalog]}"
не забывайте ключи в кавычки заключать:"SELECT * FROM products WHERE id_catalog={$catalog['id_catalog']}"
https://smappi.org/ - платформа по созданию API на все случаи жизни
Пожалуйста, авторизуйтесь, чтобы написать комментарий!