|
|
|
|
твуйте, подскажите пожалуйста.
В в ниже преведенном листинге есть
"SELECT * FROM catalogs" и "SELECT * FROM products"
также есть "id_catalog", "id_product"
и $catalog[name], "$product[name]".
Проблема в том что я запутался в в этих catalogs - catalog;
products -product
Если catalogs и products - это названия таблици,
а name - поле таблицы, то что же тогда catalog и product (без "s")
<?php
// Устанавливаем соединение с базой данных
require_once("config.php");
// Начало HTML-формы
echo "<form action=handler.php method=post>";
// Формируем первый выпадающий список
$query = "SELECT * FROM catalogs
ORDER BY name";
$cat = mysql_query($query);
if(!$cat) exit(mysql_error());
// Если имеется хотя бы одна запись,
// формируем выпадающий список
if(mysql_num_rows($cat) > 0)
{
echo "<select name=id_catalog
onchange='show(this.form.id_catalog)'>";
echo "<option value=0>Не имеет значения</option>";
while($catalog = mysql_fetch_array($cat))
{
if($_POST['id_catalog'] == $catalog['id_catalog'])
{
$selected = "selected";
}
else $selected = "";
echo "<option value=$catalog[id_catalog] $selected>
$catalog[name]</option>";
// Формируем массив первичных ключей элементов каталога
$array_catalog[] = $catalog['id_catalog'];
}
echo "</select>";
}
// Формируем второй выпадающий список
$query = "SELECT * FROM catalogs";
$cat = mysql_query($query);
if(!$cat) exit(mysql_error());
// Если имеется хотя бы одна запись,
// формируем выпадающий список
if(mysql_num_rows($cat) > 0)
{
while($catalog = mysql_fetch_array($cat))
{
// Формируем скрытые списки
$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 id=$catalog[id_catalog]
style=\"display:none\" name=product$catalog[id_catalog]>";
while($product = mysql_fetch_array($prd))
{
if($_POST['id_product'] == $product['id_product'])
{
$selected = "selected";
}
else $selected = "";
echo "<option value=$product[id_product] $selected>
$product[name]</option>";
}
echo "</select>";
}
}
}
echo "</br><input type=submit name=send value=Отправить>";
// Конец HTML-формы
echo "</form>";
?>
|
| |
|
|
|
|
|
|
|
для: Dinya_1
(26.03.2009 в 19:10)
| | Странно, даже в коде с книги, может опечатка....?
показывает ошибку
Notice: Undefined index: id_catalog in w:\home\localhost....
You have an error in your SQL syntax near 'ORDER BY name' at line 3
<?
// Формируем скрытые списки
$query = "SELECT * FROM products
WHERE id_catalog = $catalog[id_catalog]
ORDER BY name";
?>
|
| |
|
|
|
|
|
|
|
для: Dinya_1
(28.03.2009 в 21:38)
| | приводите сообщения об ошибках полностью. | |
|
|
|
|
|
|
|
для: Trianon
(28.03.2009 в 21:42)
| | Notice: Undefined index: id_catalog in w:\home\localhost\\www\site\forma1.php on line 214
You have an error in your SQL syntax near 'ORDER BY name' at line 3
На 214 строке начинаетсе :
<?//Формируем скрытые списки
"..WHERE id_catalog = $catalog[id_catalog]
ORDER BY name";
?>
|
Поля в таблице следующие
id
title
name | |
|
|
|
|
|
|
|
для: Dinya_1
(28.03.2009 в 21:48)
| | убедитесь что в строках таблицы catalogs заполнено поле id_catalog | |
|
|
|
|
|
|
|
для: Trianon
(28.03.2009 в 22:11)
| | Теперь такое:
Unknown column 'id_catalog' in 'where clause'
в поле id_catalog у меня стоит № категории соответствующая id таблицы catalogs....
и в поле id_product стоит № соответствующий категории id catalogs
или что должно быть написанно в поле id_catalog ? | |
|
|
|
|
|
|
|
для: Dinya_1
(28.03.2009 в 22:30)
| | что значит "теперь"? | |
|
|
|
|
|
|
|
для: Trianon
(28.03.2009 в 22:31)
| | я переименовал поле title в поле id_catalog
Вопрос прост: Что должно быть написанно в поле id_catalog, цифры или названия буквами?
P/s: не ужели нельзя было в книге перед каждой темой описывать порядок таблицы с названиями полей из которых делается данный SELECT.... | |
|
|
|