Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Загрузка из таблицы в ComboBox
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Загрузка из таблицы в ComboBox

Страниц (1): [1]
 

1. korefey - 19 Июня, 2007 - 10:01:30 - перейти к сообщению
Ув. программисты - помогите решить проблему. Недавно начал изучать PHP. Нужно из таблицы подгрузить данные в Комбобокс - начитавшись книг сваял код, но он не работает. Подскажите как это сделать правильно и еще мож кто знает какой отладчик пошаговый для PHP. Заранее благодарен за помощь.

Вот код(этот код прописан в HTML файле):
<?php
$db=mysql_connect("localhost","root","1");
mysql_select_db("KRM_SVODKA",$db);
$result=mysql_query("SELECT * FROM T_USERS",$db);
$i=0;
while ($doc = mysql_fetch_row($result))
{
echo "<option value='".$i."'>".$doc[1]."</option>";
$i++;
}

mysql_close($db);
?>
2. San4ezzz - 19 Июня, 2007 - 10:37:42 - перейти к сообщению
korefey пишет:
Ув. программисты - помогите решить проблему. Недавно начал изучать PHP. Нужно из таблицы подгрузить данные в Комбобокс - начитавшись книг сваял код, но он не работает. Подскажите как это сделать правильно и еще мож кто знает какой отладчик пошаговый для PHP. Заранее благодарен за помощь.

Вот код(этот код прописан в HTML файле):
<?php
$db=mysql_connect("localhost","root","1");
mysql_select_db("KRM_SVODKA",$db);
$result=mysql_query("SELECT * FROM T_USERS",$db);
$i=0;
while ($doc = mysql_fetch_row($result))
{
echo "<option value='".$i."'>".$doc[1]."</option>";
$i++;
}

mysql_close($db);
?>

Перед циклом while вставь тег <select>
3. korefey - 19 Июня, 2007 - 12:55:41 - перейти к сообщению
я тег <select> прописал до PHP вставки
4. valenok - 19 Июня, 2007 - 14:06:59 - перейти к сообщению
отладчиком будешь работать сегодня ты.
Каждую строчку что она выполняет, что за параметры куда ты передаёшь, что она должна была бы выполнять, и

http://phpfaq[dot]ru/debug
5. korefey - 19 Июня, 2007 - 16:41:39 - перейти к сообщению
если тег select надо указывать в коде PHP то как правильно его прописать?
6. UserID - 19 Июня, 2007 - 17:25:26 - перейти к сообщению
korefey
PHP:
скопировать код в буфер обмена
  1.  
  2. <select name="sol">
  3. <?PHP
  4. $db=mysql_connect("localhost","root","1");
  5. mysql_select_db("KRM_SVODKA",$db);
  6. $result=mysql_query("SELECT * FROM T_USERS",$db);
  7. $i=0;
  8. while ($doc = mysql_fetch_row($result))
  9. {
  10. echo "<option value='".$i."'>".$doc[1]."</option>";
  11. $i++;
  12. }
  13.  
  14. ?>
  15. </ select>
  16.  
7. korefey - 19 Июня, 2007 - 17:44:25 - перейти к сообщению
UserID
Спасибо за помощь - все работает...
8. init01 - 06 Июня, 2011 - 14:41:21 - перейти к сообщению
Товарищи!
А помогите сделать тоже самое, только база у меня не MySQL, а SQLite, поэтому, естественно, никаких mysql_select_db не будет, а будет что-то другое.
Я, в принципе, не программистка и плохо разбираюсь и в PHP и в SQLite, но вот такой скрипт написала некоторое время назад:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. try
  3. {
  4. $db = new PDO('sqlite:pr_size.db');
  5. $result = $db->query("SELECT PROJECT,
  6. sum(case when DIRECTORY='bigsan0' then SIZE end) BIGSAN0,
  7. sum(case when DIRECTORY='bigsan1' then SIZE end) BIGSAN1,
  8. sum(case when DIRECTORY='bigsan2' then SIZE end) BIGSAN2,
  9. sum(case when DIRECTORY='bigsan3' then SIZE end) BIGSAN3,
  10. sum (SIZE) TOTAL, DATA FROM PRSIZE WHERE PROJECT LIKE '".$_POST['proj']."' AND DATA>=".$_POST['dateot']." AND DATA<=".$_POST['datedo']." GROUP BY PROJECT, DATA");
  11. if ($_POST['selectab'])
  12.  {
  13. echo '<table border="1"><tr><td>PROJECT</td><td>BIGSAN0</td><td>BIGSAN1</td><td>BIGSAN2</td><td>BIGSAN3</td><td>TOTAL</td><td>DATE</td></tr>';
  14. foreach ($result as $row)
  15.    {
  16. echo '<tr><td>' . $row['PROJECT'] . '</td><td>' . $row['BIGSAN0'] . '</td><td>' . $row['BIGSAN1'] . '</td><td>' . $row['BIGSAN2'] . '</td><td>' . $row['BIGSAN3'] . '</td><td>' . $row['TOTAL'] .'</td><td>'. $row['DATA'] .'</td></tr>' ;
  17.    }
  18. echo '</table>';
  19.  }
  20. else
  21.  {
  22. ?>
  23.  
  24.  
  25. <form method="post">
  26. Project <input name="proj" type="text" />
  27. Date from  <input id="dateot" name="dateot" type="text" value="20100114" /> to  <input id="datedo" name="datedo" type="text" />
  28. <input type="submit" name="selectab" value="OK">
  29. </form>


В общем, есть куча проектов и они раскиданы по 4 директориям, к примеру:
/bigsan0/ureng
/bigsan1/ureng
/bigsan2/ureng
/bigsan3/ureng
/bigsan0/yamb
/bigsan1/yamb
/bigsan2/yamb
/bigsan3/yamb
Я вывожу таблицу, где каждая строка соответствует одному проекту и разбита на столбцы bigsan0, bigsan1, bigsan2, bigsan3 и сумма.
Но пользователям захотелось большей глубины.
/bigsan*/ureng/line11/3476
/bigsan*/ureng/line12/2254
/bigsan*/ureng/line12/6790
/bigsan*/yamb/second3/4567

Сейчас пользователи тупо в поле забивают название проекта и всё.
А теперь надо надо сделать три поля со списками.
Сначала в 1-ом поле выбираем проект, к примеру ureng.
Потом во 2-ом поле уже прошла выборка и открывается список поддиректорий проекта, выбираем к примеру line12.
Теперь в 3-ем поле открывается только поддиректории /ureng/line12 и выбираем из этого.

Никак не могу врубиться с чего начать.

Скорость не важна, всё работает в локалке.
9. init01 - 09 Июня, 2011 - 14:57:09 - перейти к сообщению
М-да, ребятки, все таки бросились помогать.
В общем, сделала я вот так:

PHP:
скопировать код в буфер обмена
  1. <select name="projects">
  2. <?PHP
  3. try
  4. {
  5. $db = new PDO('sqlite:pr_size.db');
  6. $result = $db->query("SELECT PROJECT FROM PRSIZE GROUP BY PROJECT ORDER BY PROJECT");
  7. foreach ($result as $row)
  8. {
  9. echo "<option value='". $row['PROJECT'] ."'>". $row['PROJECT'] ."</option>";
  10. }
  11. ?>
  12. </select>


НО

Это всего первый combobox.
Как теперь вытащить то название, которое выберет пользователь и организовать следующий combobox с запросом:
PHP:
скопировать код в буфер обмена
  1. SELECT LINE FROM PRSIZE WHERE PROJECT LIKE '".$_POST['вот тут то что он выбрал']."' GROUP BY LINE ORDER BY LINE

?
10. morosit - 09 Июня, 2011 - 15:34:10 - перейти к сообщению
init01 пишет:
, все таки бросились помогать.

в принципе не принято чужие темы(тем более 2007 года) поднимать
по теме извините помочь не могу, но еслибы вы создали свою тему возможно желающих помочь(ответить) было бы больше
11. init01 - 09 Июня, 2011 - 17:01:43 - перейти к сообщению
morosit
Спасибо за объяснение!

Просто привыкла на ixbt. Там, наоборот, если новую тему поднимешь, похожую на старую, то модераторы начинают ныть, что не умеешь поиском пользоваться и всё равно прикрепляют твою тему к старой.
Ладно, поразбираюсь ещё сама, а потом воспользуюсь Вашим советом - заведу новую тему.

 

Powered by ExBB FM 1.0 RC1