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

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

  • pasha

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

    Spritz 18 октября 2007 г. 11: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 г. 13:42, спустя 1 час 47 минут 42 секунды

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

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

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


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

    Ты непонял…

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

    Заголовок 1

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

    А мну так нада

    Заголовок 1

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

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

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

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

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

    Spritz 21 октября 2007 г. 22: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 22 октября 2007 г. 9:53, спустя 11 часов 48 минут 15 секунд

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

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

    Spritz 22 октября 2007 г. 14: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 г. 14: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 г. 14:42, спустя 1 минуту 32 секунды

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

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

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

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

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

    Spritz 7 ноября 2007 г. 19: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 г. 19:22, спустя 7 минут 10 секунд


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

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

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

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

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

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

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


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

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

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

    Spritz 9 ноября 2007 г. 16: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`) не срабатывает

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