За последние 24 часа нас посетили 34299 программистов и 1711 роботов. Сейчас ищут 867 программистов ...

switch case

Тема в разделе "PHP для новичков", создана пользователем greenzlat, 22 фев 2010.

  1. greenzlat

    greenzlat Активный пользователь

    С нами с:
    27 апр 2008
    Сообщения:
    255
    Симпатии:
    0
    PHP:
    1. <?
    2.  
    3. $result = mysql_query ("SELECT * FROM bd  WHERE kat='$kat' AND kod=1 ORDER BY data DESC LIMIT $start, $num",$db);
    4. switch ($result)
    5. {
    6.          case '1':
    7.          {
    8. if (mysql_num_rows($result)>0)
    9. {
    10.  
    11. while ($myrow = mysql_fetch_array ($result))
    12. {
    13.  $q = "SELECT COUNT(*) FROM `comments`
    14.         WHERE id_video=".$myrow['id'];
    15.   $totalcom = mysql_query($q);
    16.   $f_com = mysql_result($totalcom, 0);
    17.   $total_com_rows = $f_com[0];
    18. ?>
    19.       <table width='100%' border='0' cellpadding='0' cellspacing='0' class='tabl_zag'>
    20.            <tr>
    21.              <td .........................</table>
    22.  <?
    23.   }
    24. }
    25.  
    26. else
    27. {
    28. echo "В базе нет данных";
    29. }
    30.  break;
    31.   }
    32.  } ?>
    При выполнении этого кода не при первом условии не при else ничего не выводит
     
  2. iliavlad

    iliavlad Активный пользователь

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    т.е. у вас $result не будет равен '1'. где вы этот код взяли?
     
  3. greenzlat

    greenzlat Активный пользователь

    С нами с:
    27 апр 2008
    Сообщения:
    255
    Симпатии:
    0
    сам писал. А подскажите как сделать?
    Не совсем понял про не равен 1
     
  4. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    greenzlat
    $result вернёт ссылку на строку в таблице
    $row=mysql_fetch_array($result); // приводим к массиву
    $kat=$row['kat']; // так вытаскиваем переменную из массива
    вот и делай кейс по переменной, результ всегда ссылку возвращает или false
     
  5. greenzlat

    greenzlat Активный пользователь

    С нами с:
    27 апр 2008
    Сообщения:
    255
    Симпатии:
    0
    Это то я понимаю. Но вот я же и привожу к массиву в 11 строке. while ($myrow = mysql_fetch_array ($result))
     
  6. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    И что у тебя означают строки с 4 по 6? ты проверяшеь в switch равен ли $result единице. Я тебе сейчас могу сказать - не равен. Никогда не равен. Значит во все остальные строки скрипт просто не попадает
     
  7. iliavlad

    iliavlad Активный пользователь

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    очень помогает написать по-русски, что делает код.
    например, $result = mysql_query - в этой строке вызывается функция, которая возвращает то или то (смотрите в руководство). результат выполнения заносится в $result. потом я сравниваю полученное значение с ... и так далее.

    так быстрее найдете ошибку)