ФорумПрограммированиеPHP для идиотов → Правильный вывод из БД

Правильный вывод из БД

  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 29 сентября 2007 г. 18:47, спустя 6 часов 10 минут 47 секунд

    Как массив тогда должен выглядеть?

    Array
    (
    [2007] => Array
    (
    [0] => Новость 1
    [1] => Новость 2
    [2] => Новость 3
    )

    [2008] => Array
    (
    [0] => Новость 1
    [1] => Новость 2
    [2] => Новость 3
    )

    )


    ?
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 29 сентября 2007 г. 20:18, спустя 1 час 30 минут 44 секунды

    да
    все умрут, а я изумруд
  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 29 сентября 2007 г. 22:45, спустя 2 часа 27 минут 29 секунд

    да

    Эм…попробывал написать сценарий…что то недомог…может подскажет кто?
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 29 сентября 2007 г. 23:35, спустя 49 минут 5 секунд

    не насилуй голову, покажи что делаешь и где останавливаешься, что не можешь
    все умрут, а я изумруд
  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 30 сентября 2007 г. 14:07, спустя 14 часов 32 минуты 57 секунд

                [0] => Новость 1
    [1] => Новость 2
    [2] => Новость 3


    Я незнаю как именно в "дату" вогнать записи которые принадлежат этому году.Не понял как соорудить массив такого вида.
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 30 сентября 2007 г. 16:26, спустя 2 часа 18 минут 52 секунды

    сначала выбираем все даты
    SELECT DISTINCT `date`
    …. это у Гхоста уточнить нада =)
    потом по выбранным датам:
    foreach ($dates as $date)
    {
    // а тут мы будет выбирать новости по дате
    WHERE `date`='{$date}'
    }
    все умрут, а я изумруд
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 30 сентября 2007 г. 17:27, спустя 1 час 1 минуту 1 секунду

    Пипец, я фигею …. какие мля даты, какие вложенные массивы?

    Во первых, если уж на то пошло надо выбрать не даты, а года: DISTINCT DATE_FORMAT(Date, '%Y')

    Во вторых, накой ляд столько запросов в цикле? Че нельзя все извлечь вместе с ORDER BY Date DESC и пройтись по результату циклом, помня при этом какой текущий год и не печатать его пока не сменится?
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 1 октября 2007 г. 11:15, спустя 17 часов 47 минут 48 секунд

    надо выбрать не даты, а года

    да, да, оговорился, именно года

    Че нельзя все извлечь вместе с ORDER BY Date DESC и пройтись по результату циклом, помня при этом какой текущий год и не печатать его пока не сменится?

    да, если пользоваться print'ом
    все умрут, а я изумруд
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 1 октября 2007 г. 12:15, спустя 59 минут 45 секунд


    да, если пользоваться print'ом


    А чем еще?
    Шаблонными движками? Так там вообще - сам бог велел. Их главное приемущество перед простым print/echo - возможность формировать страницу в порядке появления данных и формирования блоков, а не просто сверху вниз.
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 1 октября 2007 г. 12:20, спустя 5 минут 10 секунд

    шаблонный движок работает с данными
    т.о. данные должны быть уже сформированны (тот массив с датами и новостями)
    все умрут, а я изумруд
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 1 октября 2007 г. 12:50, спустя 30 минут 21 секунду

    А есть такой шаблонный движок, который сразу вложенные массивы сопостовляет блокам шаблона? Чего-то не очень представляю как это выглядит …
    Но в любом случае формирование такого массива не отличается принципиально от print.
  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 1 октября 2007 г. 16:36, спустя 3 часа 45 минут 9 секунд

    if(!$db->query("SELECT DISTINCT date FROM projects"))
    {
    die($db->error());
    }
    while($row = $db->fetchAssoc())
    {
    foreach($row as $date)
    {
    if(!$db->query("SELECT * FROM projects WHERE `date` = '".$date."'"))
    {
    die($db->error());
    }
    while($rowA = $db->fetchAssoc())
    {
    print_r ($rowA);
    }
    }
    }


    Получается


    Array
    (
    [id] => 1
    [category] => 1
    [date] => 2007
    [title] => Продажа груш
    [photo] => 15.gif
    [text] => Внимание продажа груш!
    )
    Array
    (
    [id] => 3
    [category] =>
    [date] => 2007
    [title] => Продажа арбузов
    [photo] => 1
    [text] => 2
    )




    Гм…а 2008 год забыт…возможно я не понял.Что не так сделал?
  • Dagdamor

    Сообщения: 47 Репутация: N Группа: Кто попало

    Spritz 2 октября 2007 г. 5:12, спустя 12 часов 36 минут 31 секунду

    У тебя вызывается query, потом fetchAssoc, потом снова query - и результаты первого запроса идут в топку.
  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 2 октября 2007 г. 17:36, спустя 12 часов 24 минуты 20 секунд

    Мне там уже на 1-й селект пох…ибо он вытащил даты…

    пля…че подсказать некому?
  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 2 октября 2007 г. 18:03, спустя 26 минут 53 секунды

    Ыыы… =)

    if(!$db->open())
    {
    die($db->error());
    }
    if(!$db->query("SELECT DISTINCT date FROM projects"))
    {
    die($db->error());
    }
    while($row = $db->fetchAssoc())
    {
    $date[] = $row['date'];
    }
    //print_r ($date);
    foreach($date as $dates)
    {
    if(!$db->query("SELECT * FROM projects WHERE `date` = '".$dates."'"))
    {
    die($db->error());
    }
    while($r = $db->fetchAssoc())
    {
    print_r ($r);
    }
    }

Пожалуйста, авторизуйтесь, чтобы написать комментарий!