[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Заполнение списков из базы данных
junk1114
Пытаюсь заполнить 3 списка записями из БД MySQL, в результате 2 и 3 список получаются с несколькими пустыми значениями=(
<p>Контрагент:</p>
<select
name="sel" id="sel">
<?php

$db = mysql_connect("localhost", "***", "***");
mysql_select_db("***");

$cnt = mysql_query("SELECT count(*) FROM kontragent");
for ($n = 1; $n <= $cnt-1; $n++)
{
$result = mysql_query("SELECT name FROM kontragent WHERE id=$n", $db);
$myrow = mysql_fetch_array($result);
echo "<option value=$n>".$myrow['name']."</option>\n";
}
?>
</select>

<p>
Категория:</p>
<select
name="cat" id="cat">
<?php

$cnt = mysql_query("SELECT count(*) FROM cat");
for ($n = 1; $n <= $cnt-1; $n++)
{
$result = mysql_query("SELECT name FROM cat WHERE id=$n", $db);
$myrow = mysql_fetch_array($result);
echo "<option value=$n>".$myrow['name']."</option>\n";
}
?>
</select>

<p>
Номенклатура:</p>
<select
name="nomenk" id="nomenk">
<?php

$cnt = mysql_query("SELECT count(*) FROM nomenk");
for ($n = 1; $n <= $cnt-1; $n++)
{
$result = mysql_query("SELECT name FROM nomenk WHERE id=$n", $db);
$myrow = mysql_fetch_array($result);
echo "<option value=$n>".$myrow['name']."</option>\n";
}
?>
</select>




Спустя 1 минута, 25 секунд (13.02.2011 - 20:09) Lenarfate написал(а):
пользуй цикл while()

Спустя 12 минут, 12 секунд (13.02.2011 - 20:22) junk1114 написал(а):
Цитата (Lenarfate @ 13.02.2011 - 17:09)
пользуй цикл while()

Результат такой же

Спустя 17 минут, 36 секунд (13.02.2011 - 20:39) Lenarfate написал(а):
покажи, как ты делаешь

Спустя 22 минуты, 59 секунд (13.02.2011 - 21:02) junk1114 написал(а):
Цитата (Lenarfate @ 13.02.2011 - 17:39)
покажи, как ты делаешь

Вот с while
<form action = "process.php" method = "post"> 

<p>
Контрагент:</p>
<select
name="sel" id="sel">
<?php

$db = mysql_connect("localhost", "***", "***");
mysql_select_db("***");

$cnt = mysql_query("SELECT count(*) FROM kontragent");
$n = 1;
while ($n <= $cnt-1)
{
$result = mysql_query("SELECT name FROM kontragent WHERE id=$n", $db);
$myrow = mysql_fetch_array($result);
echo "<option value=$n>".$myrow['name']."</option>\n";
$n++;
}
?>
</select>

<p>
Категория:</p>
<select
name="cat" id="cat">
<?php

$cnt = mysql_query("SELECT count(*) FROM cat");
$n = 1;
while ($n <= $cnt-1)
{
$result = mysql_query("SELECT name FROM cat WHERE id=$n", $db);
$myrow = mysql_fetch_array($result);
echo "<option value=$n>".$myrow['name']."</option>\n";
$n++;
}
?>
</select>

<p>
Номенклатура:</p>
<select
name="nomenk" id="nomenk">
<?php

$cnt = mysql_query("SELECT count(*) FROM nomenk");
$n = 1;
while ($n <= $cnt-1)
{
$result = mysql_query("SELECT name FROM nomenk WHERE id=$n", $db);
$myrow = mysql_fetch_array($result);
echo "<option value=$n>".$myrow['name']."</option>\n";
$n++;
}
?>
</select>


</form>

Спустя 9 минут, 10 секунд (13.02.2011 - 21:11) Lenarfate написал(а):
смотри. удаляешь все это
Цитата
$cnt = mysql_query("SELECT count(*) FROM nomenk");
$n = 1;
while ($n <= $cnt-1)
{
$result = mysql_query("SELECT name FROM nomenk WHERE id=$n", $db);
$myrow = mysql_fetch_array($result);
echo "<option value=$n>".$myrow['name']."</option>\n";
$n++;
}


и пишешь
$result = mysql_query("SELECT `name` FROM `nomenk` WHERE id=". $n);
while ($myrow = mysql_fetch_array($result))
{
echo "<option value=$n>".$myrow['name']."</option>\n";
}


Спустя 1 минута, 31 секунда (13.02.2011 - 21:13) Lenarfate написал(а):
и так же для другого селекта

Спустя 33 минуты, 38 секунд (13.02.2011 - 21:47) junk1114 написал(а):
эмм... вообще не то, ничего не выводит
 WHERE id=". $n);

$n же в Вашем варианте вообще не определена

Спустя 1 час, 4 минуты, 36 секунд (13.02.2011 - 22:51) inpost написал(а):
junk1114
Там опечатка, просто убери WHERE id= $n...

Спустя 7 часов, 33 минуты, 9 секунд (14.02.2011 - 06:24) Guest написал(а):
Цитата (inpost @ 13.02.2011 - 19:51)
junk1114
Там опечатка, просто убери WHERE id= $n...

без этого вообще выводятся одинаковые значения $n раз

Спустя 8 минут, 38 секунд (14.02.2011 - 06:33) junk1114 написал(а):
<p>Номенклатура:</p>
<select
name="nomenk" id="nomenk">
<?php

$result = mysql_query("SELECT id, name FROM nomenk", $db);
if ($result&&mysql_num_rows($result)){
while($myrow= mysql_fetch_array($result))
{
echo "<option value={$myrow['id']}>{$myrow['name']}</option>\n";
}
}

?>
</select>

Переиграл вот так, теперь все работает. И переменных меньше. По совету Crazyzubr

Спустя 3 часа, 38 минут, 24 секунды (14.02.2011 - 10:11) Snus написал(а):
junk1114
У тебя правда работает вот этот кусок кода?
$cnt = mysql_query("SELECT count(*) FROM cat");

И что же он тебе возвращает? :)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.