За последние 24 часа нас посетили 17890 программистов и 1705 роботов. Сейчас ищут 1662 программиста ...

посимвольный вывод из базы

Тема в разделе "PHP и базы данных", создана пользователем aziz, 8 фев 2006.

  1. aziz

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

    С нами с:
    1 фев 2006
    Сообщения:
    194
    Симпатии:
    0
    Адрес:
    Ташкент
    Здравствуйте. и вновь нуждаюсь в Вашем совете.
    Создал в бд таблицу с полями "ID","title","Text","Avtor".
    проблема в том что когда пытыюсь вывести название и часть текста у меня выводится весь текст, вопрос может кто посоветует как сделать чтобы можно было вывести название к примеру первые 150 символов из текста.
    P.S и если можно, как сделать ссылку в бд на эти тексты.
    Спасибо. так как немогу найти сам вот весь код
    Код (Text):
    1. <?php require_once('Connections/connect.php'); ?>
    2. <?php
    3. $maxRows_Recordset1 = 5;
    4. $pageNum_Recordset1 = 0;
    5. if (isset($_GET['pageNum_Recordset1'])) {
    6.   $pageNum_Recordset1 = $_GET['pageNum_Recordset1'];
    7. }
    8. $startRow_Recordset1 = $pageNum_Recordset1 * $maxRows_Recordset1;
    9.  
    10. mysql_select_db($database_connect, $connect);
    11. $query_Recordset1 = "SELECT datum, title, content FROM dnp_long_news ORDER BY datum ASC";
    12. $query_limit_Recordset1 = sprintf("%s LIMIT %d, %d", $query_Recordset1, $startRow_Recordset1, $maxRows_Recordset1);
    13. $Recordset1 = mysql_query($query_limit_Recordset1, $connect) or die(mysql_error());
    14. $row_Recordset1 = mysql_fetch_assoc($Recordset1);
    15.  
    16. if (isset($_GET['totalRows_Recordset1'])) {
    17.   $totalRows_Recordset1 = $_GET['totalRows_Recordset1'];
    18. } else {
    19.   $all_Recordset1 = mysql_query($query_Recordset1);
    20.   $totalRows_Recordset1 = mysql_num_rows($all_Recordset1);
    21. }
    22. $totalPages_Recordset1 = ceil($totalRows_Recordset1/$maxRows_Recordset1)-1;
    23. ?>
    24.  
    25.  
    26. <body>
    27. <?php do { ?>
    28.   <table width="100%" border="1" cellspacing="0" cellpadding="0">
    29.     <tr>
    30.       <td><?php echo $row_Recordset1['title']; ?></td>
    31.     </tr>
    32.     <tr>
    33.       <td><?php echo $row_Recordset1['content']; ?></td>
    34.     </tr>
    35.     <tr>
    36.       <td><?php echo $row_Recordset1['datum']; ?></td>
    37.     </tr>
    38.       </table>
    39.   <?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?></body>
    40. </html>
    41. <?php
    42. mysql_free_result($Recordset1);
    43. ?>
     
  2. ONK

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

    С нами с:
    4 фев 2006
    Сообщения:
    281
    Симпатии:
    0
    Адрес:
    СПб
    Как я понял, тебе нужно что-то типа этого:

    SELECT datum, title, SUBSTRING(content,0,150) FROM dnp_long_news ORDER BY datum ASC
     
  3. aziz

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

    С нами с:
    1 фев 2006
    Сообщения:
    194
    Симпатии:
    0
    Адрес:
    Ташкент
    Да это именно то что нужно , но когда я прописываю
    PHP:
    1. SELECT datum, title, SUBSTRING(content,0,150) FROM dnp_long_news ORDER BY datum ASC
    у меня всплывает сообщение
    Код (Text):
    1. Notice: Undefined index: content in z:\home\test1.ru\www\rus\test.php on line 38
    тоесть браузер ругается на строку
    PHP:
    1. <?php echo $row_Recordset1['content']; ?>
    хотя при
    PHP:
    1. SELECT datum, title, content FROM dnp_long_news ORDER BY datum ASC
    всё нормально вот и ломаю голову что с этим content надо делать?
     
  4. Avenger

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

    С нами с:
    8 фев 2006
    Сообщения:
    2
    Симпатии:
    0
    Адрес:
    Москва
    Немного не правильно подсказали. Надо:
    SELECT datum, title, SUBSTRING(content,1,150) AS short FROM dnp_long_news ORDER BY datum ASC

    И соответственно использывать: <?php echo $row_Recordset1['short']; ?>
     
  5. aziz

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

    С нами с:
    1 фев 2006
    Сообщения:
    194
    Симпатии:
    0
    Адрес:
    Ташкент
    пробовал внтри <?php echo $row_Recordset1['short']; ?> выдаёт пустой квадрат
     
  6. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    aziz
    А вы попробуйте не бездумно делать то что говорять, а попробуйте понять как это работает...
    PHP:
    1.   <table width="100%" border="1" cellspacing="0" cellpadding="0">
    2.     <tr>
    3.       <td><?=$row_Recordset1['title']?></td>
    4.     </tr>
    5.     <tr>
    6.       <td><?=$row_Recordset1['content']?></td>
    7.     </tr>
    8.     <tr>
    9.       <td><?=$row_Recordset1['datum']?></td>
    10.     </tr>
    11.     <tr>
    12.       <td><xmp><?php print_r($row_Recordset1) ?></xmp></td>
    13.     </tr>
    14.   </table>
    Предвкушая что вы можете сказать в ответ сразу оговорюсь: если вы не умеете или не хотите думать, это не является отговоркой, а всего лишь оценка уровня вашего желания научиться.
     
  7. Avenger

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

    С нами с:
    8 фев 2006
    Сообщения:
    2
    Симпатии:
    0
    Адрес:
    Москва
    Свой запрос прежде чем написать проверил у себя на локале, правда с другой таблицей и все прекрасно работало...
    Есть такая фича, называецца phpMyAdmin - там можно вручную прогнать запрос и посмотреть, например мой, который я тестил:
    SELECT id, SUBSTRING(name,1,5) AS short FROM ds_company ORDER BY id ASC
    Результ:
    id - short
    1 - Яндек
    2 - Рамбл
    3 - Гугль
    4 - Майкр
    MySQL - 4.0.23, phpMyAdmin 2.6.0-pl3, php - 4.3.10...
     
  8. aziz

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

    С нами с:
    1 фев 2006
    Сообщения:
    194
    Симпатии:
    0
    Адрес:
    Ташкент
    Спасибо всем, наконец разобрался всё работает отлично. :D