Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не работает динамический SELECT-запрос
 
 автор: lukanuga   (08.10.2011 в 15:16)   письмо автору
 
 

Добрый день!
Запрос вернее работает, ошибок нет.
Записи в таблице есть, а выполнятся условие ELSE.
Где ошибка?
$result11 = mysql_query("SELECT * from univ WHERE id_university='$id_university'", $db);
if (!$result11)
{
echo "<p>Запрос на выборку данных из базы не прошел.<br> <strong>Код ошибки:</strong></p>";
}

if (mysql_num_rows($result11) > 0){
echo "Cпециальности:<font color='#FF0000'>есть</font><br>";}
else 
{
echo "Cпециальности: <font color='#FF0000'><strong>NO</strong></font></p>";
}

  Ответить  
 
 автор: Yuriev   (08.10.2011 в 15:31)   письмо автору
 
   для: lukanuga   (08.10.2011 в 15:16)
 

Надо проверить перед запросом содержимое $id_university.
Скорей всего там ничего нет.

  Ответить  
 
 автор: lukanuga   (08.10.2011 в 15:41)   письмо автору
 
   для: Yuriev   (08.10.2011 в 15:31)
 

$id_university существует. проверил.

  Ответить  
 
 автор: cheops   (08.10.2011 в 16:31)   письмо автору
 
   для: lukanuga   (08.10.2011 в 15:41)
 

Может данных с таким значением нет в базе данных? Попробуйте вывести запрос при помощи echo и выполнить в phpMyAdmin - результаты различаются?

  Ответить  
 
 автор: pavluxa09   (08.10.2011 в 22:06)   письмо автору
 
   для: cheops   (08.10.2011 в 16:31)
 

$result11 = mysql_fetch_assoc(mysql_query("SELECT * from univ WHERE id_university='$id_university'", $db));
if (!$result11)
{
echo "<p>Запрос на выборку данных из базы не прошел.<br> <strong>Код ошибки:</strong></p>";
}

if (count($result11) > 0){
echo "Cпециальности:<font color='#FF0000'>есть</font><br>";}
else
{
echo "Cпециальности: <font color='#FF0000'><strong>NO</strong></font></p>";
}

  Ответить  
 
 автор: lukanuga   (09.10.2011 в 00:00)   письмо автору
 
   для: pavluxa09   (08.10.2011 в 22:06)
 

выдает ошибку.
Запрос на выборку данных из базы не прошел.
Код ошибки:
Cпециальности:есть

  Ответить  
 
 автор: cheops   (09.10.2011 в 11:42)   письмо автору
 
   для: lukanuga   (09.10.2011 в 00:00)
 

Выведите SQL-запрос, а также уточните ошибку при помощи функции mysql_error().

  Ответить  
 
 автор: cheops   (09.10.2011 в 11:47)   письмо автору
 
   для: pavluxa09   (08.10.2011 в 22:06)
 

Вообще так лучше запросы не обратаывать - горя хлебнете с таким подходом. Ошибки, возникающие в MySQL не выводятся автоматически PHP. Поэтому лучше всгда обрабатывать их явно. Т.е. приведенный выше скрипт лучше оформлять так
<?php
  $query 
"SELECT * from univ 
            WHERE id_university='
$id_university'";
  
$unv mysql_query($query$db);
  if(!
$unv)
  {
    echo 
"<p>Запрос на выборку данных из базы не прошел.<br>";
    echo 
"<strong>Код ошибки: ".mysql_error()."</strong></p>";
  }
  
$result11 = array();
  if(
mysql_num_rows($unv))
  {
    echo 
"Cпециальности:<font color='#FF0000'>есть</font><br>";} 
    while(
$result11 mysql_fetch_assoc($unv))
    {
      ...
    }
  }
  else
  {
    echo 
"Cпециальности: <font color='#FF0000'><strong>NO</strong></font></p>"
  }
?>

  Ответить  
 
 автор: lukanuga   (09.10.2011 в 15:21)   письмо автору
 
   для: cheops   (09.10.2011 в 11:47)
 

<?php 
  $query 
"SELECT * from univ  
            WHERE id_university='
$id_university'"
  
$unv mysql_query($query$db); 
  if(!
$unv
  { 
    echo 
"<p>Запрос на выборку данных из базы не прошел.<br>"
    echo 
"<strong>Код ошибки: ".mysql_error()."</strong></p>"
  } 
  
$result11 = array(); 
  if(
mysql_num_rows($unv)) 
  { 
    echo 
"Cпециальности:<font color='#FF0000'>есть</font><br>";}  
    while(
$result11 mysql_fetch_assoc($unv)) 
    { 
       echo 
"Cпециальности: <font color='#FF0000'><strong>yes</strong></font></p>";  
    } 
  } 
  else 
  { 
    echo 
"Cпециальности: <font color='#FF0000'><strong>NO</strong></font></p>";  
  } 
?>

Ошибка: Parse error: syntax error, unexpected T_ELSE, expecting T_WHILE in

  Ответить  
 
 автор: cheops   (09.10.2011 в 16:16)   письмо автору
 
   для: lukanuga   (09.10.2011 в 15:21)
 

Лишняя фигурная скобка просочилась, исправьте этот вариант на
<?php  
  $query 
"SELECT * from univ   
            WHERE id_university='
$id_university'";  
  
$unv mysql_query($query$db);  
  if(!
$unv)  
  {  
    echo 
"<p>Запрос на выборку данных из базы не прошел.<br>";  
    echo 
"<strong>Код ошибки: ".mysql_error()."</strong></p>";  
  }  
  
$result11 = array();  
  if(
mysql_num_rows($unv))  
  {  
    echo 
"Cпециальности:<font color='#FF0000'>есть</font><br>";
    while(
$result11 mysql_fetch_assoc($unv))  
    {  
       echo 
"Cпециальности: <font color='#FF0000'><strong>yes</strong></font></p>";   
    }  
  }  
  else  
  {  
    echo 
"Cпециальности: <font color='#FF0000'><strong>NO</strong></font></p>";   
  }  
?>

  Ответить  
 
 автор: lukanuga   (09.10.2011 в 16:32)   письмо автору
 
   для: cheops   (09.10.2011 в 16:16)
 

ошибок нет, но выполняется условие
  else   
  {   
    echo "Cпециальности: <font color='#FF0000'><strong>NO</strong></font></p>";    
  }  

хотя записи есть

  Ответить  
 
 автор: cheops   (09.10.2011 в 16:57)   письмо автору
 
   для: lukanuga   (09.10.2011 в 16:32)
 

Так если записи есть, эта надпись по логике не должна выводиться? Она же утверждает обратное?

  Ответить  
 
 автор: lukanuga   (10.10.2011 в 01:46)   письмо автору
 
   для: cheops   (09.10.2011 в 16:57)
 

должно выполняться другое условие потому что записи в БД есть.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования