[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод данных из mysql, на основе выбора юзера
pavlas
Добрый день. Помогите кому не сложно, в php новичок. Пытаюсь сделать вывод данных из базы данных, на основе выбора пользователя.
Соответственно файл раз:
<form action="one_insert2.php" method="post" name="down">

<select
name="sl">
<option
value="1">1</option>
<option
value="4">4</option>
</select><br>
<input
type="submit"></input>

</form>

и обработчик:

<?
if (isset($_POST['sl']))
{
$sl = $_POST['sl'];
}
$db = mysql_connect ("localhost", "tech", "tech");
mysql_select_db("serial", $db);



$result=mysql_query ("SELECT * FROM serial where id=".$sl);
$myrow = mysql_fetch_array($result);




do
{
printf (" %s<br>%s<br>%s<br>%s<br><br>",$myrow['id'],$myrow['serter'],$myrow['sercomp1'],$myrow['loc']);

}
while ($myrow = mysql_fetch_array($result));


?>

Выдает ошибку:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in X:\home\localhost\www\serial\one_insert2.php on line 33

Подскажите,что не так, если не сложно.



Спустя 19 минут, 13 секунд (1.11.2011 - 18:01) Игорь_Vasinsky написал(а):
Цитата
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given


в качестве первого аргумента должен быть передан ресурс, а передан булеан

видимо совпадений в БД не найдено

перед mysql_fetch_array() - а если ты юзаешь тока ассоциат. массив то лучьше mysql_fetch_assoc() - нужно проверить скока строк вернул запрос

И не надо мудохаться с do-while (г-н Попов до сих пор учит?)

$result=mysql_query ("SELECT * FROM `serial` WHERE  `id`=".(int)$sl);  //int - говорит что должно быть integer - подстраховалисбь малость

if(mysql_num_rows($result)) // Если строка есть хотябы одна, т.е. не false
{
while($row = mysql_fetch_assoc($result))
{
echo $row['id'] ." ".$row['sertre']; //И т.д по аналогии
}
}

else
echo "К сожалению по вашему запросу ни чего не найдено";


Спустя 2 часа, 9 минут, 52 секунды (1.11.2011 - 20:11) imbalance_hero написал(а):
pavlas
Ошибка в запросе. Запрос пиши так:
mysql_query("тут запрос") or die(mysql_error());

Спустя 13 часов, 44 минуты, 38 секунд (2.11.2011 - 09:56) pavlas написал(а):
Не помогло, ошибка та же.

Спустя 2 минуты, 2 секунды (2.11.2011 - 09:58) imbalance_hero написал(а):
pavlas
Показывай код, как ты всё это сделал. И код ошибки, и акцентируй внимание, на какую СТРОЧКУ ругается.

Спустя 22 минуты, 6 секунд (2.11.2011 - 10:20) pavlas написал(а):
<form action="one_insert2.php" method="post" name="down">

<select
name="sl">
<option
value="Офис">Офис</option>
<option
value="Moscow">Moscow</option>
</select><br>
<input
type="submit"></input>

</form>


<?
if (isset($_POST['sl']))
{
$sl = $_POST['sl'];
}
$db = mysql_connect ("localhost", "tech", "tech");
mysql_select_db("serial", $db);



$result=mysql_query ("SELECT * FROM `serial` WHERE `loc`=".(int)$sl);

if(mysql_num_rows($result)) //НА ЭТУ СТРОЧКУ РУГАЕТСЯ
{
while($row = mysql_fetch_assoc($result))
{
echo $row['id'] ." ".$row['sertre'];
}
}

else
echo "К сожалению по вашему запросу ни чего не найдено";


?>


Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in X:\home\localhost\www\serial\one_insert2.php on line 24
К сожалению по вашему запросу ни чего не найдено

Спустя 13 минут, 3 секунды (2.11.2011 - 10:33) imbalance_hero написал(а):
pavlas
где: or die() ??? Я кому выше пример показал?

Спустя 3 минуты, 41 секунда (2.11.2011 - 10:37) pavlas написал(а):
$result=mysql_query ("SELECT * FROM `serial` WHERE  `id`=".(int)$sl) or die(mysql_error());  


Все равно та же ошибка.

Спустя 6 минут, 51 секунда (2.11.2011 - 10:43) imbalance_hero написал(а):
pavlas
Исправь, и покажи полностью. Перед этим запусти и убедись, что ошибка и ругается на эту строчку.

Спустя 1 минута, 12 секунд (2.11.2011 - 10:45) pavlas написал(а):
спасибо большое, все получилось, нашел еще одну ошибку.

Спустя 3 минуты, 32 секунды (2.11.2011 - 10:48) imbalance_hero написал(а):
pavlas
Ругалось на ошибку внутри запроса(!). Выявить ошибку внутри запроса помогает конструкция or die();

Спустя 59 минут, 51 секунда (2.11.2011 - 11:48) pavlas написал(а):
Это я понял, теперь возникла другая проблема.
Из формы передается, например значение office, в обработчике сказано, выбрать из таблицы только те строки, где значение terid=office:
$result=mysql_query ("SELECT * FROM `terms` WHERE  `terid`=".(int)$sl) or die(mysql_error());

А он выводит в итоге строки из таблицы все. Не подскажите как это решить?

Спустя 4 часа, 22 минуты, 45 секунд (2.11.2011 - 16:11) imbalance_hero написал(а):
pavlas
Давай подумаем, что такое (int), и что он делает с строкой?
office записан ли у тебя в переменной sl ?
Быстрый ответ:

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