Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
31 / 45 / 21
Регистрация: 09.10.2012
Сообщений: 818
1

Выпадающий список с циклами

27.11.2013, 09:54. Показов 1301. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток! Народ возникла потребность сделать выпадающий список с данными из БД. Вот код,но он не полностью рабочий. Первый while попадает в <select>,а вот массив со 2ого while попадает только 1 элемент с БД в <select>,а остальные выводятся тупо текстом не попадаю в выпадающий список.(Идея данной задачи такова,
в
HTML5
1
<option value="'.$rowBranch['id_b'].'">'.$rowBranch['branch'].'</option>
выводится текущая должность работника,НО нужно чтобы был и весь список в топ же select'e
для этого сделал другой запрос к БД и вывел
HTML5
1
<option value="'.$rowSelectBranch['id_b'].'">'.$rowSelectBranch['branch'].'</option>
но с него почему то попадает в <select> только 1 элемент из БД.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
    public static function searchEditor()
    {
        $sql = "SELECT `id`,`fio`,`id_b`,`id_p`,`id_t` FROM `users` WHERE `fio` LIKE '%".$_POST['fieldSearch']."%'";
        $query = mysql_query($sql) or die (mysql_error());
        while ($row  = mysql_fetch_array($query)) 
        {
            $sqlTel = " SELECT `telephone`,`id_t` FROM `telephone` WHERE id_t='{$row['id_t']}'";
            $queryTel = mysql_query($sqlTel);
            $rowTel = mysql_fetch_array($queryTel);
            $sqlPost = "SELECT `post`,`id_p` FROM `post` WHERE id_p='{$row['id_p']}'";
            $queryPost = mysql_query($sqlPost);
            $rowPost = mysql_fetch_array($queryPost);
            $sqlBranch = " SELECT `branch`,`id_b` FROM `branch` WHERE id_b='{$row['id_b']}'";
            $queryBranch = mysql_query($sqlBranch);
            $rowBranch = mysql_fetch_array($queryBranch);
            echo'
            <form enctype="application/x-www-form-urlencoded" method="GET" action="edit.php" name="editSelect">
            <input type="text" name="editSelectFioId" size="10" form="editSelect" value="'.$row['id'].'" style="display:none;">
            <input type="text" name="editSelectFio" size="35" form="editSelect" value="'.$row['fio'].'">
            <select name="editSelectBranch" form="editSelect">
            <option value="'.$rowBranch['id_b'].'">'.$rowBranch['branch'].'</option>
            ';
        }
            $sqlSelectBranch = "SELECT `id_b`,`branch` FROM `branch` GROUP BY branch";
            $querySelectBranch= mysql_query($sqlSelectBranch) or die (mysql_error());
             while($rowSelectBranch = mysql_fetch_array($querySelectBranch))
            {
            echo'<option value="'.$rowSelectBranch['id_b'].'">'.$rowSelectBranch['branch'].'</option>';
            echo'</select>';
            echo'</form>';
            }
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.11.2013, 09:54
Ответы с готовыми решениями:

выпадающий список
нужно сделать выпадающий список &lt;?php echo &quot;&lt;select name=year&gt;&quot;; echo &quot;&lt;option value=\&quot;Не...

Выпадающий список
Доброго времени суток. Помогите пожалуйста! Мне бы какой-нибудь пример кода выпадающего списка, где...

Выпадающий список
само задание: нужно создать страницу с selectbox'ом, options которого берутся из базы (таблица из...

Выпадающий список
Добрый день. В выпадающем списке я вывожу фамилию и имя пользователя. Подскажите пожалуйста как...

9
10 / 10 / 1
Регистрация: 08.06.2011
Сообщений: 98
27.11.2013, 10:02 2
Попробуй вот так:
PHP
1
2
3
4
5
6
7
while($rowSelectBranch = mysql_fetch_array($querySelectBranch)) 
{
  echo '<select>';
  echo'<option value="'.$rowSelectBranch['id_b'].'">'.$rowSelectBranch['branch'].'</option>';
  echo'</select>';
  echo'</form>';
}
Потерял тэг <select>
0
31 / 45 / 21
Регистрация: 09.10.2012
Сообщений: 818
27.11.2013, 10:06  [ТС] 3
Уважаемый,вы меня не поняли <select открывается наверху> в нем 2
HTML5
1
<option value="'.$rowBranch['id_b'].'">'.$rowBranch['branch'].'</option>
HTML5
1
<option value="'.$rowSelectBranch['id_b'].'">'.$rowSelectBranch['branch'].'</option>
каждый из которых имеет свой запрос к SQL и свой цикл но они в ОДНОМ <select>
0
10 / 10 / 1
Регистрация: 08.06.2011
Сообщений: 98
27.11.2013, 10:10 4
Вам нужно поместить результаты двух запросов в один селект, так?
0
31 / 45 / 21
Регистрация: 09.10.2012
Сообщений: 818
27.11.2013, 10:13  [ТС] 5
Так,выше объяснил,что в 1 запросе текущая должность,в другом запросе тоже в цикле выводится весь список должностей в одном <select>
0
10 / 10 / 1
Регистрация: 08.06.2011
Сообщений: 98
27.11.2013, 10:24 6
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
        $sql = "SELECT `id`,`fio`,`id_b`,`id_p`,`id_t` FROM `users` WHERE `fio` LIKE '%".$_POST['fieldSearch']."%'";
        $query = mysql_query($sql) or die (mysql_error());
        $sqlSelectBranch = "SELECT `id_b`,`branch` FROM `branch` GROUP BY branch";
        $querySelectBranch= mysql_query($sqlSelectBranch) or die (mysql_error());
        while ($row  = mysql_fetch_array($query)) 
        {
            $sqlTel = " SELECT `telephone`,`id_t` FROM `telephone` WHERE id_t='{$row['id_t']}'";
            $queryTel = mysql_query($sqlTel);
            $rowTel = mysql_fetch_array($queryTel);
            $sqlPost = "SELECT `post`,`id_p` FROM `post` WHERE id_p='{$row['id_p']}'";
            $queryPost = mysql_query($sqlPost);
            $rowPost = mysql_fetch_array($queryPost);
            $sqlBranch = " SELECT `branch`,`id_b` FROM `branch` WHERE id_b='{$row['id_b']}'";
            $queryBranch = mysql_query($sqlBranch);
            $rowBranch = mysql_fetch_array($queryBranch);
            while ($rowSelectBranch = mysql_fetch_array($querySelectBranch)) {
            echo'
            <form enctype="application/x-www-form-urlencoded" method="GET" action="edit.php" name="editSelect">
            <input type="text" name="editSelectFioId" size="10" form="editSelect" value="'.$row['id'].'" style="display:none;">
            <input type="text" name="editSelectFio" size="35" form="editSelect" value="'.$row['fio'].'">
            <select name="editSelectBranch" form="editSelect">
            <option value="'.$rowBranch['id_b'].'">'.$rowBranch['branch'].'</option>
            <option value="'.$rowSelectBranch['id_b'].'">'.$rowSelectBranch['branch'].'</option>
            ';
            }
        }
    }
Делать запросы в цикле, очень не кошерно.
0
127 / 127 / 25
Регистрация: 20.11.2009
Сообщений: 498
27.11.2013, 10:30 7
Попробуйте так
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public static function searchEditor()
    {
        $sql = "SELECT `id`,`fio`,`id_b`,`id_p`,`id_t` FROM `users` WHERE `fio` LIKE '%".$_POST['fieldSearch']."%'";
        $query = mysql_query($sql) or die (mysql_error());
        while ($row  = mysql_fetch_array($query)) 
        {
            $sqlTel = " SELECT `telephone`,`id_t` FROM `telephone` WHERE id_t='{$row['id_t']}'";
            $queryTel = mysql_query($sqlTel);
            $rowTel = mysql_fetch_array($queryTel);
            $sqlPost = "SELECT `post`,`id_p` FROM `post` WHERE id_p='{$row['id_p']}'";
            $queryPost = mysql_query($sqlPost);
            $rowPost = mysql_fetch_array($queryPost);
            $sqlBranch = " SELECT `branch`,`id_b` FROM `branch` WHERE id_b='{$row['id_b']}'";
            $queryBranch = mysql_query($sqlBranch);
            $rowBranch = mysql_fetch_array($queryBranch);
            echo'
            <form enctype="application/x-www-form-urlencoded" method="GET" action="edit.php" name="editSelect">
            <input type="text" name="editSelectFioId" size="10" form="editSelect" value="'.$row['id'].'" style="display:none;">
            <input type="text" name="editSelectFio" size="35" form="editSelect" value="'.$row['fio'].'">
            <select name="editSelectBranch" form="editSelect">
            <option value="'.$rowBranch['id_b'].'">'.$rowBranch['branch'].'</option>
            ';
        }
            $sqlSelectBranch = "SELECT `id_b`,`branch` FROM `branch` GROUP BY branch";
            $querySelectBranch= mysql_query($sqlSelectBranch) or die (mysql_error());
             while($rowSelectBranch = mysql_fetch_array($querySelectBranch))
            {
                echo'<option value="'.$rowSelectBranch['id_b'].'">'.$rowSelectBranch['branch'].'</option>';
            }
            echo'</select>';
            echo'</form>';
    }
P. S. если у вас курсовая по базам данных, то она построена не совсем верно, из-за этого возникает такое количество запросов, тем более в цикле. Если скините задание мы поможем вам правильно построить бд.

Добавлено через 3 минуты
Цитата Сообщение от KPOT_KZ Посмотреть сообщение
Делать запросы в цикле, очень не кошерно.
Выводить каждый раз открывающий селект в цикле тоже
Цитата Сообщение от KPOT_KZ Посмотреть сообщение
while ($rowSelectBranch = mysql_fetch_array($querySelectBranch)) {
* * * * * * echo'
* * * * * *<form enctype="application/x-www-form-urlencoded" method="GET" action="edit.php" name="editSelect">
* * * * * *<input type="text" name="editSelectFioId" size="10" form="editSelect" value="'.$row['id'].'" style="display:none;">
* * * * * *<input type="text" name="editSelectFio" size="35" form="editSelect" value="'.$row['fio'].'">
* * * * * *<select name="editSelectBranch" form="editSelect">
0
31 / 45 / 21
Регистрация: 09.10.2012
Сообщений: 818
27.11.2013, 10:38  [ТС] 8
База телефонного справочника у меня отдельные таблицы с номером,должностью, и таблица users в которой Ф.И.О. и id`шники от других таблиц по которым идет связь при выводе в одной таблице на экран.
0
127 / 127 / 25
Регистрация: 20.11.2009
Сообщений: 498
27.11.2013, 10:50 9
Цитата Сообщение от Inkvizzz Посмотреть сообщение
таблица users в которой Ф.И.О. и id`шники от других таблиц по которым идет связь при выводе в одной таблице на экран.
Правильно иметь одно айди в таблице users, а в дочерних сделать parentID в котором и хранить id родителя (в вашем случае пользователя)
Также с должностями лучше сделать связь многие ко многим, так как должности могут повторяться и хранить их каждый раз отдельной строкой неправильно.
0
31 / 45 / 21
Регистрация: 09.10.2012
Сообщений: 818
27.11.2013, 12:17  [ТС] 10
Ну вот у меня и сделаны они в отдельной таблице без дублей, а как делается parentID? Но тут проблема еще в другом на 1 должность и телефон может быть по 4 юзера...
0
27.11.2013, 12:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.11.2013, 12:17
Помогаю со студенческими работами здесь

Выпадающий список
Здравствуйте. Есть код: &lt;form action=&quot;allnews.php&quot; method=&quot;POST&quot;&gt; Рубрика: &lt;select...

Выпадающий список
Доброго времени дня.... я в php очень слаб.... думаю сможет кто помочь? Вот есть сайт...

Выпадающий список
Здравствуйте, подскажите пожалуйста как реализовать выпадающий список. В базе данных содержаться 3...

Выпадающий список
Пишу такой код: $rol='SELECT * FROM `gorod_role`'; $res=mysqli_query($db_connect, $rol); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru