За последние 24 часа нас посетили 20719 программистов и 1134 робота. Сейчас ищут 355 программистов ...

Вывод данных

Тема в разделе "PHP для новичков", создана пользователем Kirillde1, 26 мар 2013.

  1. Kirillde1

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

    С нами с:
    16 мар 2013
    Сообщения:
    77
    Симпатии:
    0
    Подскажите в чём проблема, почему нету вывода данных ?
    Код (Text):
    1. <? foreach ($articles as $article): ?>
    2.  
    3. <?=$article['id']?>
    4.  
    5. <? endforeach?>
     
  2. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Код (PHP):
    1. <? foreach ($articles as $article): ?>
    2. <?php print_r($article);?>
    3. <?=$article['id']?>
    4.  
    5. <? endforeach?>
    Наверно данных нет
     
  3. Kirillde1

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

    С нами с:
    16 мар 2013
    Сообщения:
    77
    Симпатии:
    0
    всё есть
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    <?php var_dump(articles);?>
    делай и смотри что будет
     
  5. Kirillde1

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

    С нами с:
    16 мар 2013
    Сообщения:
    77
    Симпатии:
    0
    Если так
    Код (Text):
    1. var_dump(articles())
    то выводит все данные
    Если так
    Код (Text):
    1. var_dump(articles)
    то ошибка, "string 'articles' (length=8)"

    Добавлено спустя 1 минуту 51 секунду:
    Так выводятся данные
    Код (Text):
    1. function articles()
    2. {
    3.     $mysql="SELECT * FROM news ORDER BY id DESC";
    4.     $result=mysql_query($mysql);
    5.    
    6.         if(!$result)
    7.         {
    8.             die(mysql_error());
    9.         }
    10.        
    11.         //извлечение из БД
    12.         $n=mysql_num_rows($result);
    13.         $articles=array();
    14.        
    15.             for($i=0; $i<$n; $i++)
    16.             {
    17.                 $row=mysql_fetch_assoc($result);
    18.                 $articles[]=$row;
    19.                
    20.             }
    21.            
    22.             return $articles;
    23. }
    Потом
    Код (Text):
    1. $articles=articles();
    Потом
    Код (Text):
    1. <?foreach ($articles as $article): ?>
    2.  
    3. <?= $article['id'] ?>
    4.  
    5. <? endforeach ?>
     
  6. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.068
    Симпатии:
    1.231
    Адрес:
    там-сям
    ты чертовски невнимателен!
    во втором случае пропустил "$". переменные начинаются со знака доллар. если его нет, PHP в некоторых случаях предполагает, что это строковая константа у которой забыли поставить кавычки -- в твоем случае так и произошло.

    включи вывод ошибок, возможно до вывода твоих articles просто не доходит.

    в начале скрипта:
    Код (PHP):
    1. <?php
    2. ini_set('display_errors', 'on');
    3.  
    незачем гадать, PHP сам тебе подскажет
     
  7. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    А не канает в <? делать в данном варианте...

    <?php
     
  8. iliavlad

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

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    http://php.ru/manual/language.basic-syntax.instruction-separation.html
     
  9. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    iliavlad, чтобы не возникло недоразумений советуют закрывать.
    Не работает:
    Код (PHP):
    1. <? 
    2. $a=array(1,2,3,4,5); 
    3. foreach($a as $k): 
    4.     echo $k; 
    5. endforeach;
    6. ?>
    Работает:
    Код (PHP):
    1. <?php
    2. $a=array(1,2,3,4,5); 
    3. foreach($a as $k): 
    4.     echo $k; 
    5. endforeach;
    6. ?>
    Хз что...
    Но вот проверяю не хочет)))

    Только не надо мне говорить, то, что этот тег отключен...
    У меня последняя версия php где он уже встроен и включен по умолчанию.

    Косяккккккк Он его за комментарий посчитал, :D.
     
  10. iliavlad

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

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    а что не работает в первом варианте?
     
  11. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    <матное слово>
    ОМГ!
    У меня тег в коммент оборачивается в исходнике видно... :D
    Работает:
    Код (PHP):
    1. <?='String'?>
    Работает:
    Код (PHP):
    1. <?php echo'String';?>
    Не работает:
    Код (PHP):
    1. <? echo'String'; ?>
     
  12. iliavlad

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

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    http://php.ru/manual/language.basic-syntax.htmlmode.php
    т.е. <? не всегда распознаётся (для пхп 5.4)
     
  13. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    No input file specified.
    :D
    Я им не пользуюсь, по этому используйте <?php
     
  14. iliavlad

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

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    только сейчас заметил какую крутую тему на форуме сделали. даёшь ссылку на пхп.нет/мануал/ру , а её переделывает на пхп.ру/мануал.

    Your, в твоих примерах по ходу и не работает из-за использования короткого тега.
     
  15. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.068
    Симпатии:
    1.231
    Адрес:
    там-сям
    просто адская фишка! иногда забываю, потом громко ругаюсь и плююсь.

    Добавлено спустя 4 минуты 21 секунду:
    будут ли работать короткие теги, зависит от настроек. в принципе этот код хоть и коряво оформлен, но работать может:
    Код (PHP):
    1. <?foreach ($articles as $article): ?>
    2.  
    3. <?= $article['id'] ?>
    4.  
    5. <? endforeach ?>
    ошибка у автора где-то в другом месте (гусары молчать!)
     
  16. Kirillde1

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

    С нами с:
    16 мар 2013
    Сообщения:
    77
    Симпатии:
    0
    artoodetoo, да я заметил ошибку. Теперь в обоих случаях выводит содержимое массива.
    Только проблема не решена. По прежнему не выводит данные
    мне кажется что то с этим связано, эту настройку можно посмотреть в php.ini ?
     
  17. Kirillde1

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

    С нами с:
    16 мар 2013
    Сообщения:
    77
    Симпатии:
    0
    HELP ME PLEAS!!!!
     
  18. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    это я опечатался.
    <?php var_dump($articles);?>

    это прекрасно. меняй код вывода
    Код (Text):
    1. <? foreach ($articles as $article): ?>
    2. <?=$article['id']?>
    3. <? endforeach?>
    навот чо
    Код (Text):
    1.  
    2. <?php
    3. foreach ($articles as $article) {
    4. echo $article['id'];
    5. }
    6. ?>
     
  19. Kirillde1

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

    С нами с:
    16 мар 2013
    Сообщения:
    77
    Симпатии:
    0
    Это я знал, а почему 1-ый вариант не подходит?

    Добавлено спустя 2 минуты 15 секунд:
    так же удобней потом будет при вёрстке и т.д.
     
  20. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    ну должен работать.

    пробуй тогда так:
    Код (Text):
    1. <?php foreach ($articles as $article): ?>
    2. <?php echo $article['id']?>
    3. <?php endforeach?>
    если работает - значит надо включить шорттаги
     
  21. Kirillde1

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

    С нами с:
    16 мар 2013
    Сообщения:
    77
    Симпатии:
    0
    Появились цифры "504948414039".
     
  22. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    шорттаги надо включить чтобы работало в сокращенном виде
    <?=$article['id']?>
    а иначе только
    <?php echo...
     
  23. Kirillde1

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

    С нами с:
    16 мар 2013
    Сообщения:
    77
    Симпатии:
    0
    Код (Text):
    1. ; short_open_tag
    2. ;   Default Value: On
    3. ;   Development Value: on
    4. ;   Production Value: on
    Так?
     
  24. iliavlad

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

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    я бы посоветовал так: "чтобы работало - не используй короткие теги".

    хотя бы потому, что решение данной проблемы растянулось на пару суток. а ведь её вообще не могло бы быть.
     
  25. Kirillde1

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

    С нами с:
    16 мар 2013
    Сообщения:
    77
    Симпатии:
    0
    Ну мне хочется знать и пользоваться различными методами вывода данных,хотя бы для того, чтобы быть квалифицированней.