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

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

  • pasha

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

    Spritz 18 октября 2007 г. 0:54, спустя 26 минут 14 секунд

    Да допустим этот же…
    if(!$db->query("SELECT `id`,`date`,`date` AS `year` FROM `projects` ORDER BY `date` ASC"))
    {
    die($db->error());
    }
    $year = '';
    while ($row = $db->fetchAssoc())
    {
    if ($row['year'] != $year)
    {
    $year = $row['year'];
    print $row['year'].'<br />';
    }
    print $row['id'].'<br />';
    }

  • md5

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

    Spritz 18 октября 2007 г. 2:42, спустя 1 час 47 минут 42 секунды

    ну и что тебе на до <hr> между новостями поставить?
    все умрут, а я изумруд
  • pasha

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

    Spritz 18 октября 2007 г. 3:12, спустя 30 минут 23 секунды


    ну и что тебе на до <hr> между новостями поставить?

    Ты непонял…

    Ты имеешь ввиду так…

    Заголовок 1

    Текст 1
    ____________ /* <hr> */
    Текст 2
    ____________
    Текст 3
    ____________

    А мну так нада

    Заголовок 1

    Текст 1
    ____________
    Текст 2
    ____________
    Текст 3
  • md5

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

    Spritz 18 октября 2007 г. 3:19, спустя 6 минут 30 секунд

    ну значит тебе надо смотреть, если это не первая новость, то до неё <hr /> выводи
    все умрут, а я изумруд
  • pasha

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

    Spritz 21 октября 2007 г. 11:05, спустя 3 дня 7 часов 45 минут

    Не стал создавать новый топик…

    Вообщем хочу такой сделать вывод(см.рисунок)

    Вот код

                if(!$db->query("SELECT *,`category_text` AS `ctext` FROM `handbook_nbase` ORDER BY `category_text` ASC"))
    {
    die($db->error());
    }
    $year = '';
    $td = 0;
    print '<table>';
    while ($row = $db->fetchAssoc())
    {
    $td++;
    if($td == 1)
    {
    print '<tr>';
    }

    if ($row['ctext'] != $year)
    {
    $year = $row['ctext'];
    print '<td><b>'.$row['ctext'].'</b><br />';//Категория

    }
    print $row['id'].'';//Слово
    //

    if ($td == 2)
    {
    print '</tr>';
    $td = 0;
    }
    }
    print '</table>';


    Как должно быть?

    <table><tr><td><b>А</b><br />Архангельск</td><td><b>Б</b><br />Барнаул</td></tr><tr><td><b>В</b><br />Вологда</td></table>


    Если скажем в категории одно слово…то просто закрыть </td>

    Если же 2-а то слово выходит за пределы…
    1. pic.jpg (141)
  • TRIAL

    Сообщения: 988 Репутация: N Группа: Джедаи

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

    Ничего не понял. что и за какие пределы выходит??? На картинке всё нормально выглядит.
    from TRIAL with LOVE
  • pasha

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

    Spritz 22 октября 2007 г. 3:26, спустя 4 часа 32 минуты 42 секунды

    На картинке как я хочу…
    т.е должно быть
    <td><b>А</b><br />Архангельск<br />Астрахань<br />Адыгея</td>


    У мну блин так получается
    см.рисунок

    <table><td><b>А</b><br />
    Архангельск </td>Астрахань<br />Адыгея
    </table>


    Т.е должно все входить в <td>…</td>
    1. pic_2.JPG (158)
  • TRIAL

    Сообщения: 988 Репутация: N Группа: Джедаи

    Spritz 22 октября 2007 г. 3:41, спустя 15 минут 18 секунд

    $a = array(
    0 => "а",
    1 => "б",
    2 => "в",

    32 => "я"
    );

    for($i=0; $i<33; $i++) {

    ($i % 2 == 0) echo "<tr>";

    echo "<td><b>".$a[$i]."</b><br>";

    $result = mysql_query("SELECT * FROM `your_table` WHERE `city` LIKE '".$a[$i]."%' ORDER BY `city`");

    while($row = mysql_fetch_assoc($result)) {

    echo $row['city']."<br>";

    }

    echo "</td>";

    mysql_free_result($result);

    }

    Я бы сделал как-то так, а ты уже дальше думай. Вобще задачка простая и у нее дофига способов решения.
    from TRIAL with LOVE
  • md5

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

    Spritz 22 октября 2007 г. 3:42, спустя 1 минуту 32 секунды

    заменяй пробел на <br />
    все умрут, а я изумруд
  • pasha

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

    Spritz 22 октября 2007 г. 5:52, спустя 2 часа 9 минут 41 секунду

    2Trial
    гм…довольно хитрый способ =)
  • pasha

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

    Spritz 7 ноября 2007 г. 8:15, спустя 16 дней 3 часа 23 минуты

    Возвращение блудного попугая…

    Эм…решил вот сделать карту сайта…в карте сайта как,нужно расписывать всё…

    Т.е

    Официальные мероприятия
    - Категория
    + Фото 1
    + Фото 2
    + Фото 3
    - Категория 2
    + Фото 1
    + Фото 2
    + Фото 3

    Неофициальные мероприятия
    - 1
    + Фото 1
    + Фото 2
    - 2
    - 3

    Как выглядит моя галерея в мускуле…я создал 2-е таблицы…

    category_gallery
    id, title, category, category_text

    title - Категория
    category - (всего их 3-и, т.к Официальные мероприятия,Неофициальные мероприятия,Разное)
    category_text - (Официальные мероприятия,Неофициальные мероприятия,Разное)

    gallery
    category(id из таблицы category_gallery), category_text(title из таблицыcategory_gallery)

    Гм…вот я думаю в таблицу gallery добавить еще 2-а поля category, category_text таблицы category_gallery

    Ибо хрен его знает как сделать вывод

  • AlexB

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

    Spritz 7 ноября 2007 г. 8:22, спустя 7 минут 10 секунд


    Гм…вот я думаю в таблицу gallery добавить еще 2-а поля category, category_text таблицы category_gallery

    А такая штука как JOIN или "объединение таблиц", тебе чего-нибудь говорит?
  • pasha

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

    Spritz 7 ноября 2007 г. 12:05, спустя 3 часа 42 минуты 9 секунд

    Еще как…я поюзал её…но она вроде выводит только с оператором …WHERE…или я наркоман?
  • AlexB

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

    Spritz 7 ноября 2007 г. 12:13, спустя 8 минут 15 секунд


    но она вроде выводит только с оператором …WHERE…или я наркоман?

    Наркоман, если тебе от этого легче. WHERE тут абсолютно не причем.
    Кстати в твоем случае, в общем-то и без JOIN можно обойтись … но просто следует помнить, что он существует, чтоб не возникало дурацких идей запихнуть все данные в каждую таблицу.
  • pasha

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

    Spritz 9 ноября 2007 г. 5:24, спустя 1 день 17 часов 10 минут

                if(!$db->query("(SELECT id,title,category,`category_text` AS `ctext` FROM `gallery_category`)UNION(SELECT `title` FROM `gallery`)"))
    {
    die($db->error());
    }
    $year = '';
    while ($row = $db->fetchAssoc())
    {
    if ($row['ctext'] != $year)
    {
    $year = $row['ctext'];
    print '<br /><b>'.substr($row['ctext'],2).'</b><br /><br />';

    }
    print '<li><a href="photocategory-'.$row['id'].'.html">'.$row['title'].'</a></li>
    '.$row['category'].'
    ';
    print $row['title']; //Из таблицы gallery
    }


    Собственно нужно вытащить фото…для каждой категории…видимо UNION для моего первого запроса (SELECT id,title,category,`category_text` AS `ctext` FROM `gallery_category`) не срабатывает

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