За последние 24 часа нас посетили 17540 программистов и 1649 роботов. Сейчас ищет 941 программист ...

Как вывести из базы данных текст

Тема в разделе "PHP и базы данных", создана пользователем viphost, 31 дек 2009.

  1. viphost

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

    С нами с:
    23 мар 2009
    Сообщения:
    307
    Симпатии:
    0
    Здравствуйте, помогите пожалуйста, я в PHP дуб.
    Мне необходимо вывести текст новостей из базы данных.
    [sql]CREATE TABLE `news` (
    `id` int(255) NOT NULL auto_increment,
    `title` varchar(250) character set utf8 NOT NULL default '',
    `date` date NOT NULL default '0000-00-00',
    `tags` varchar(150) character set utf8 NOT NULL,
    `comment` char(2) character set utf8 NOT NULL,
    `messege` text character set utf8 NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=4 ;

    --
    -- Дамп данных таблицы `news`
    --

    INSERT INTO `news` VALUES(3, 'Название новости', 'число', 'теги', 'ok', 'текст который необходимо вывести');
    [/sql]

    На странице нужно вывести текст, обрезать его до 200 символов и выводить по три новости на страницу. Помогите это реализовать.
     
  2. ATI

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

    С нами с:
    3 янв 2008
    Сообщения:
    254
    Симпатии:
    0
    Адрес:
    Москва
    А что не получается?
     
  3. Dantark

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

    С нами с:
    5 ноя 2009
    Сообщения:
    33
    Симпатии:
    0
    Скрипт довольно простой вот пример, разберетсь
    PHP:
    1. <?php
    2. //Линкуемся с БД
    3. mysql_connect("localhost","root","");
    4. //Формируем запрос
    5. $query = "SELECT * FROM `news`";
    6. $result = mysql_query($query);
    7. //Получаем массив по ячейкам
    8. while ($row = mysql_fetch_array($result)){
    9. //Форматируем вывод так как хочется (сами уже там нахимичите с текстом)
    10. $message = $row['message'];
    11. //Обратилсь к значению столбца message. Цикл будет выводить то что будет в данном цикле все строчки БД
    12. }
    13. ?>
     
  4. haotichni

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

    С нами с:
    14 фев 2011
    Сообщения:
    67
    Симпатии:
    0
    Адрес:
    дома недалеких
    создал тему, не найдя этой!
    но ближе к телу:

    есть запрос

    PHP:
    1. <?php
    2.  
    3.   $res = mysql_query("SELECT MAX(view) FROM Name_Table");
    4.   $row = mysql_fetch_row($res);
    5.   $total = $row[0]; // максимально просмотров
    6.   echo $total;
    7. ?>
    как вывести полностью строку, чтобы было так:

    title l date l view

    пытался с помощью приведенного примера с помощью While, не получается! :(
     
  5. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    $res = mysql_query("SELECT view, date, title FROM Name_Table ORDER BY view DESC LIMIT 1");
    $row = mysql_fetch_row($res);
    $total = $row[0]; // максимально просмотров
    echo $total['view'] . ' ' . $total['date'] . ' ' . $total['title'];
     
  6. haotichni

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

    С нами с:
    14 фев 2011
    Сообщения:
    67
    Симпатии:
    0
    Адрес:
    дома недалеких
    tommyangelo, это так, но выдает не название статьи и дату, а в 3х колонках вставляются лишь цифры просмотра!
     
  7. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    haotichni

    я может протупил, давно уже чистый mysql_ не использую)))

    Попробуй так - res = mysql_query("SELECT view, date, title FROM Name_Table ORDER BY view DESC LIMIT 1");
    $total = mysql_fetch_row($res);
    echo $total['view'] . ' ' . $total['date'] . ' ' . $total['title'];
     
  8. haotichni

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

    С нами с:
    14 фев 2011
    Сообщения:
    67
    Симпатии:
    0
    Адрес:
    дома недалеких
    не, так тоже нельзя ))
     
  9. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    значит так

    $res = mysql_query("SELECT view, date, title FROM Name_Table ORDER BY view DESC LIMIT 1");
    $total = mysql_fetch_array($res);
    echo $total['view'] . ' ' . $total['date'] . ' ' . $total['title'];
     
  10. haotichni

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

    С нами с:
    14 фев 2011
    Сообщения:
    67
    Симпатии:
    0
    Адрес:
    дома недалеких
    выдает ошибку

    это строка

    PHP:
    1. $total = mysql_fetch_array($res);
    да, грешен, но не на столько же![/quote]
     
  11. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    $res = mysql_query("SELECT view, date, title FROM Name_Table ORDER BY view DESC LIMIT 1") or die(mysql_error());

    И код ошибки в студию
     
  12. haotichni

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

    С нами с:
    14 фев 2011
    Сообщения:
    67
    Симпатии:
    0
    Адрес:
    дома недалеких
    PHP:
    1. <?php
    2.  
    3.  $res = mysql_query("SELECT view, date, title FROM NAME_TABLE ORDER BY view DESC LIMIT 1") or die(mysql_error());
    4. $total = mysql_fetch_array($res);
    5. echo $total['view'] . ' ' . $total['date'] . ' ' . $total['title']; // выбрать нужные столбцы вывода //
    6.  
    7. ?>
    вот так правильно! спасибо огромное! :)
     
  13. haotichni

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

    С нами с:
    14 фев 2011
    Сообщения:
    67
    Симпатии:
    0
    Адрес:
    дома недалеких
    как достать последнее id из таблицы?
    надо в статистике сделать : Последнее письмо: ***
    *** - название письма с ссылкой на него!

    таблица: id name email text date view
     
  14. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    select * from talble order by id desc limit 1
     
  15. haotichni

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

    С нами с:
    14 фев 2011
    Сообщения:
    67
    Симпатии:
    0
    Адрес:
    дома недалеких
    Спасибо огромное! Если интересно то замутил телегу полностью! Телега везет с собой последнее письмо и адрес на него!
    В итоге выглядит так!

    PHP:
    1. <?php
    2.             $res_email = mysql_query("SELECT * FROM Name_table ORDER BY id DESC LIMIT 1") or die(mysql_error());
    3.         if (!$res_email)
    4.         { echo "<p>Запрос на подключение к базе данных не прошел. <br> Код ошибки: </p>";
    5.         exit (mysql_error());
    6.         }
    7.         if (mysql_num_rows($res_email) > 0)
    8.         {$row_email = mysql_fetch_array ($res_email);}
    9.         else
    10.         {echo "Информация из базы не может быть извлечена. В таблице нет записей!";
    11.         exit ();
    12.         }
    13.             do
    14.             {
    15.             printf ("<a href='view_email.php?id=%s'>
    16.             <strong>Имя: </strong>%s | <strong>E-Mail:</strong> %s | <strong>Название:</strong> %s | <strong>Дата: </strong>%s</a><br>
    17.            
    18.             </p>", $row_email['id'], $row_email['name'], $row_email['email'], $row_email['text'], $row_email['date']);
    19.             }
    20.             while ($row_email = mysql_fetch_array ($res_email));
    21.    
    22.    
    23.     ?>
    24.  
     
  16. haotichni

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

    С нами с:
    14 фев 2011
    Сообщения:
    67
    Симпатии:
    0
    Адрес:
    дома недалеких
    ошибочка!
    на локальном виде все работает отлично! как переношу на сайт так трудности!

    PHP:
    1. Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in /home/home/c/clinic/WWW/administrator/new.php on line 57
    в чем может быть проблема?
     
  17. Gromo

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

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    haotichni
    проблема в том, что если происходит ошибка в запросе, то вместо mysql resource возвращается false, который ты не проверяя подаёшь функции mysql_fetch_row()
     
  18. haotichni

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

    С нами с:
    14 фев 2011
    Сообщения:
    67
    Симпатии:
    0
    Адрес:
    дома недалеких
    т.е. перед каждым запросом прописывать логин с паролем? как то не логично!
    или есть другой способ?
     
  19. Gromo

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

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    haotichni
    не путай запрос и соединение с базой данных. делай запрос так:

    PHP:
    1. <?php $query = mysql_query('SELECT ...') or die(mysql_error());
    и сразу видно будет ошибку в запросе, если есть
     
  20. haotichni

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

    С нами с:
    14 фев 2011
    Сообщения:
    67
    Симпатии:
    0
    Адрес:
    дома недалеких
    спасибо! правда что клин клином вышибают! все дело в регистре!

    еще вопрос: функция MAX() у меня считывает только первую цифру, а не число целиком!

    допустим 2 статьи ... в одной просмотров 174, а во второй 94... и он выдает, что максимум просмотра именно 94!
    есть путь решения?
     
  21. Gromo

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

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    haotichni
    а поле просмотров у тебя какого типа ?
     
  22. haotichni

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

    С нами с:
    14 фев 2011
    Сообщения:
    67
    Симпатии:
    0
    Адрес:
    дома недалеких
    спасибо! правда что клин клином вышибают! все дело в регистре!

    еще вопрос: функция MAX() у меня считывает только первую цифру, а не число целиком!

    допустим 2 статьи ... в одной просмотров 174, а во второй 94... и он выдает, что максимум просмотра именно 94!
    есть путь решения?
    в БД это поле varchar... в этом проблема? а на что изменить можно?
     
  23. Gromo

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

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    думаю, что нужно его исправить на int, и тогда всё заработает
     
  24. haotichni

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

    С нами с:
    14 фев 2011
    Сообщения:
    67
    Симпатии:
    0
    Адрес:
    дома недалеких
    ага, пасиба! помогло! :)