Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Поиск одинаковых значений в одной таблице MySQL (http://forum.oszone.net/showthread.php?t=231618)

blackmane 29-03-2012 20:59 1889571

Поиск одинаковых значений в одной таблице MySQL
 
Никак не могу разобраться (((
Есть таблица:
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                ...

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

$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

Но осталась одна небольшая проблема, которую я не знаю как решить.
Он выдает вот так:
HTML код:

<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>

А должно быть:
HTML код:

<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 1891283

Ответ прост, вместо:
PHP код:

$res_sel_ul mysql_query("SELECT * FROM link"); 

Надо было ввести:
PHP код:

$res_sel_ul mysql_query("SELECT * FROM link WHERE id_slave='0'"); 



Время: 02:36.

Время: 02:36.
© OSzone.net 2001-