Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jak zrobić zapytanie i wyciągnąć tylko 200 pierwszych znaków z treści?
Forum PHP.pl > Forum > PHP
nikosss
hejka, jak w pytaniu - robie sobie wyświetlanie pozycji i mam treści ale nie chce zeby mi mieliło w zapytaniu całą tresc bo i tak przytne to do powiedzmy 200 pierwszych znaków - czy można w zapytaniu do bazy juz to ograniczyć ? wie ktoś moze jak ?
phpion
SUBSTRING() lub (prostsze w użyciu) LEFT().
nikosss
hmm no jak obciąć to jak wiem ale nie chce targac z bazy treści która ma powiedzmy 1000 znaków chciałem coś w tym stylu zrobić:

  1. <?php
  2. $query = "select id,pcena,hot,cena,zdj,tytul,substring('tresc',0,200) from ".$prefix.$lg."_oferta where $like LIMIT $limitvalue, $limit "; 
  3. $result = mysql_query($query) or die("Error: " . mysql_error()); 
  4. $count_result = mysql_num_rows($result);
  5. ?>


tyle tylko ze powyzsze mi nie dziala sad.gif
phpion
  1. ... LEFT(tresc, 200) AS krotka_tresc ...
nexis
Cytat(nikosss @ 19.07.2008, 14:36:55 ) *
tyle tylko ze powyzsze mi nie dziala sad.gif


  1. <?php
  2. $query =
  3.  'SELECT
  4. `id`,
  5. `pcena`,
  6. `hot`,
  7. `cena`,
  8. `zdj`,
  9. `tytul`,
  10. SUBSTRING(`tresc`, 1, 200) AS `tresc`
  11.  FROM ' . $prefix . $lg . '_oferta
  12.  WHERE ' . $like . ' LIMIT ' . $limitvalue . ', ' . $limit;
  13.  
  14. $result = mysql_query($query) or exit('Error: ' . mysql_error()); 
  15. $count_result = mysql_num_rows($result);
  16. ?>
matix
Domniemywam, że chcesz zrobić jakiś system newsów albo artykułów... Polecam zrobić sobie funkcję która będzie sprawdzała, czy dany string posiada daną ilość wyrazów. Jeśli tak, skróci ją i doda "...", natomiast jeśli nie to zostawi string bez zmian.

  1. <?php
  2. function cutString($string, $max)
  3. {
  4.  if (strlen($string) > $max)
  5. return substr($string, 0, $max) .'...';
  6.  
  7.  return $string;
  8. }
  9. ?>


Pisane z palca, nie wiem czy działa winksmiley.jpg
W każdym razie poźniej wykorzystujesz to w bardzo prosty sposób:

  1. <? foreach ($this->aNews as $aNews): ?>
  2.  
  3. <div class="news">
  4. <div class="title"><?=$aNews->title?></div>
  5. <p><?=cutString($aNews->body, 250)?></p>
  6. </div>
  7.  
  8. <? endforeach ?>


Pozdr.
nikosss
nexis a to potem normalnie przez

  1. <?php
  2. $produkt_cat_tresc=$row["tresc"];
  3. ?>


sie wywołuje ? kurcze no mam zrobione dokładnie tak wszystko inne mi dziala a tej tresci nie mam i juz zaczynam głupieć - to w php4 śmiga ? czy tylko w php5?
phpion
Sprawdzasz to co my podajemy? Do skrócnej treści w moim przykładzie (tym z LEFT) odwołujesz się poprzez $row['krotka_tresc'].
nexis
Cytat(nikosss @ 19.07.2008, 15:24:19 ) *
nexis a to potem normalnie przez

  1. <?php
  2. $produkt_cat_tresc=$row["tresc"];
  3. ?>


sie wywołuje ? kurcze no mam zrobione dokładnie tak wszystko inne mi dziala a tej tresci nie mam i juz zaczynam głupieć - to w php4 śmiga ? czy tylko w php5?


Poprawiłem i teraz możesz wywołać tak jak podałeś. Będzie działało w PHP 4 i 5.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.