За последние 24 часа нас посетил 59141 программист и 1812 роботов. Сейчас ищут 780 программистов ...

Выбор количества новостей на странице

Тема в разделе "PHP для новичков", создана пользователем viphost, 18 мар 2012.

  1. viphost

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

    С нами с:
    23 мар 2009
    Сообщения:
    307
    Симпатии:
    0
    Здравствуйте, помогите реализовать сабжик, пробою и не получается.
    Вобще скажем на главной странице я вывожу 10 новостей, при выборе количества новостей к урлу добавляю num=20
    т.е. что то вроде того:
    site.ru/index.php?num=20
    Так вот, не получается у меня сделать привило если num = 0 (или же его нет)
    т.е. site.ru/index.php или site.ru/index.php?num=0
    то выводим по 10 новостей, а если он есть то выводим столько новостей сколько он содержит.
    Делаю так, пишу функцию:
    Код (Text):
    1.  
    2. function number(){
    3. $num = $_GET['num'];
    4. if ($num. '== 0'){
    5. echo $num;
    6. }else{
    7. echo '10';
    8. }
    9. }
    Поправил пост
     
  2. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Потому что

    if ($num. '== 0'){

    исправь на
    if ($num == 0){
     
  3. viphost

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

    С нами с:
    23 мар 2009
    Сообщения:
    307
    Симпатии:
    0
    Переделал, сделал так
    Код (Text):
    1. $num = $_GET['num'];
    2. function number () {
    3. global $num;
    4. if ($num == 0){
    5. echo $num;
    6. }else{
    7. echo '10';
    8. }
    9. }
    Есть функция post которая выводит новости и в ней подключаю так
    Код (Text):
    1. function post() {
    2.     global $nav, $number;
    3.         datebase();
    4.     $sql = mysql_query("
    5.     SELECT * FROM news ORDER BY id DESC LIMIT $nav,$number");
    6.        ......
    Вобще не пашет =(
     
  4. NeoXidant

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

    С нами с:
    8 фев 2010
    Сообщения:
    121
    Симпатии:
    1
    Код (Text):
    1. function number () {
    2.     global $num;
    3.     // Если $_GET['num'] - не целое число или равно 0
    4.     if ( !is_int($_GET['num']) && empty($_GET['num']) ){
    5.         $num = 10;
    6.     }else{ // Приравниваем глобальную переменную $num к $_GET['num']
    7.         $num = $_GET['num'];
    8.     }
    9. }
     
  5. viphost

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

    С нами с:
    23 мар 2009
    Сообщения:
    307
    Симпатии:
    0
    и так не работает =(.
     
  6. NeoXidant

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

    С нами с:
    8 фев 2010
    Сообщения:
    121
    Симпатии:
    1
    код верный, как и где вы используете функцию number? и в вашей функции post я не увидел использования переменной $num
     
  7. viphost

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

    С нами с:
    23 мар 2009
    Сообщения:
    307
    Симпатии:
    0
    все разобрался, теперь работает. Спасибо большое =)
     
  8. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    NeoXidant,
    В $_GET ($_POST, $_COOKIE, ...) всегда строки текста. Даже если там число 7 - это будет не число, а строка текста "7". Соответственно,
    Код (PHP):
    1. is_int($_GET['num']) 
    будет при любом раскладе возвращать false.
     
  9. NeoXidant

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

    С нами с:
    8 фев 2010
    Сообщения:
    121
    Симпатии:
    1
    действительно, тогда так
    Код (Text):
    1. function number() {
    2.     global $num;
    3.     // Если $_GET['num'] - не существует / равно нулю или не является числом
    4.     if ( !isset($_GET['num']) || !is_numeric($_GET['num']) ){
    5.         $num = 10;
    6.     }else{ // Приравниваем глобальную переменную $num к целому значению от $_GET['num']
    7.         $num = (int)$_GET['num'];
    8.     }
    9. }