PDA

Показать полную графическую версию : Поиск одинаковых значений в одной таблице MySQL


blackmane
29-03-2012, 20:59
Никак не могу разобраться (((
Есть таблица:
id (A_I)
id_slave (NULL)
link
title

Таблица должна выводить меню по разделам:
Фрукты:
Яблоко
Апельсин
...
Овощи:
Свекла
Морковь
...

Для дочерних ссылок поле id_slave и существует, оно равно родительскому id, т.о.:

id id_slave title
1 0 Фрукты
2 1 Яблоко
3 1 Апельсин
4 1 .....
5 0 Овощи
6 5 Свекла
7 5 Морковь
8 5 ...


Вроде как получилось сделать:

$res_sel_ul = mysql_query("SELECT * FROM link");
$arr_sel_ul = mysql_fetch_array($res_sel_ul);
echo $td."<select name='".$name_input[$x]."'style='width:auto;' size=16 id='id_slave'>";
do{
$res_sel_group = mysql_query ("SELECT * FROM link WHERE id_slave='".$arr_sel_ul['id']."'");
$arr_sel_group=mysql_fetch_array ($res_sel_group);
if ($arr_sel_group) {printf ("<option value='%s'>%s</option>",
$arr_sel_ul['id'], $arr_sel_ul['title']);

do {printf ("<option value='%s'>>>>>%s</option>",$arr_sel_group['id'], $arr_sel_group['title']);}
while ($arr_sel_group=mysql_fetch_array ($res_sel_group));
}
else
{

printf ("<option value='%s'>%s</option>",
$arr_sel_ul['id'], $arr_sel_ul['title']);}//else
} //do
while ($arr_sel_ul = mysql_fetch_array($res_sel_ul));
echo "</select>".$td_e;


Но осталась одна небольшая проблема, которую я не знаю как решить.
Он выдает вот так:
<select name="id_slave" style="width:auto;" size="16" id="id_slave">
<option value="1">Фрукты</option>
<option value="5">>>>>Яблоко</option>
<option value="2">>>>>Апельсины</option>
<option value="3">Овощи</option>
<option value="6">>>>>Свекла</option>
<option value="7">>>>>Морковь</option>
<option value="5">Яблоко</option>
<option value="2">Апельсины</option>
..............................
</select>
А должно быть:
<select name="id_slave" style="width:auto;" size="16" id="id_slave">
<option value="1">Фрукты</option>
<option value="5">>>>>Яблоко</option>
<option value="2">>>>>Апельсины</option>
<option value="3">Овощи</option>
<option value="6">>>>>Свекла</option>
<option value="7">>>>>Морковь</option>
</select>
Как сделать так чтобы он не выводил уже "выведенное"????

Хочу сделать без использования дополнительной таблицы.

blackmane
01-04-2012, 14:27
Ответ прост, вместо:
$res_sel_ul = mysql_query("SELECT * FROM link");
Надо было ввести:
$res_sel_ul = mysql_query("SELECT * FROM link WHERE id_slave='0'");




© OSzone.net 2001-2012