Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: obcięcie treści wyciągnietej z bazy
Forum PHP.pl > Forum > Przedszkole
-astt-
witam.
Mam takowy mały problem
w skrypcie przedstawionym poniżej funkcja $zapytanie odpowiada za pobranie z bazy danych przy uwzględnieniu tylko tych rekordów które spełniają dwa warunki
  1. <?php
  2. WHERE ogl_aktywne LIKE '1' AND ogl_promowane_1 LIKE '1'
  3. ?>
. a następnie je sortuje.

Problem polega na tym jak teraz obciąć do np 160 znaków wyciągnięta treść z pola ogl_tresc
  1. <?php
  2.  
  3. $zapytanie=sql_select("
  4. SELECT ogl_id, ogl_tytul, ogl_tresc, ogl_aktywne, ogl_promowane_1, ogl_cena FROM
     _o_ogloszenia
  5. WHERE ogl_aktywne LIKE '1' AND ogl_promowane_1 LIKE '1' ORDER BY ogl_id DESC
  6. ");
  7.  
  8. if ($zapytanie[0][0] > 0){
  9. echo'<div class="pasek_polecamy"><h2>Polecamy ogłoszenia</h2></div>
  10. <div><br>';
  11.  
  12. for ($i=1;$i<=20;$i++){
  13. if (!empty($zapytanie[$i][0]))
  14. echo'<b><a href="'.tytul_ogl($zapytanie[$i][1]).','.$zapytanie[$i][0].'.html">]
  15. '.htmlspecialchars("".$zapytanie[$i][1]."", ENT_QUOTES).'</a></b><br />'.$zapytanie[$i][2].'...
  16. <p class="date"><img src="images/comment.gif" alt="cena"> '.$zapytanie[$i][5].' zł 
  17. <img src="images/timeicon.gif" alt="data"> '.idtodate($zapytanie[$i][0]).'</p>';
  18. }
  19.  
  20. echo'</div>';
  21. }
  22. ?>
nospor
poszukaj w manualu MYSQL slowa kluczowego left
-astt-
Cytat(nospor @ 8.01.2008, 13:08:29 ) *
poszukaj w manualu MYSQL slowa kluczowego left

Rzecz w tym że ja bardzo nie znam sie na mysql i php, coś tam mogę pogrzebać.
Potrzebuje pomocy w modyfikacji skryptu. jeśli takowa mi ktoś udzieli to będę bardzo wdzięczny.
dadexix
  1. $ilosc_znakow = 160; //ile pierwszy znaków ma pobierać z ogl_tresc
  2. $zapytanie=sql_select("SELECT LEFT('ogl_tresc', $ilosc_znakow), ogl_id, ogl_tytul, ogl_aktywne, ogl_promowane_1, ogl_cena FROM _o_ogloszenia WHERE ogl_aktywne LIKE '1' AND ogl_promowane_1 LIKE '1' ORDER BY ogl_id DESC");



to by było chyba tak... lecz nie jestem pewien czy będzie działać....
-astt-
Cytat(dadexix @ 8.01.2008, 14:05:29 ) *
  1. $ilosc_znakow = 160; //ile pierwszy znaków ma pobierać z ogl_tresc
  2. $zapytanie=sql_select("SELECT LEFT('ogl_tresc', $ilosc_znakow), ogl_id, ogl_tytul, ogl_aktywne, ogl_promowane_1, ogl_cena FROM _o_ogloszenia WHERE ogl_aktywne LIKE '1' AND ogl_promowane_1 LIKE '1' ORDER BY ogl_id DESC");

to by było chyba tak... lecz nie jestem pewien czy będzie działać....


po odpowiedniej zmianie pozostałych wartości w kodzie wyświetla sie wszystko dobrze
ale niestety zamiast skróconej treści wyświetla sisię tekst: ogl_tresc
dadexix
http://dev.mysql.com/doc/refman/5.0/en/str...l#function_left

więcej nie powiem bo sam nie wiem...
Lion_87
może tam gdzie LIKE zrób tak


WHERE ogl_aktywne LIKE '%1%' .....itd
-astt-
Cytat(dadexix @ 8.01.2008, 14:26:20 ) *


I działa!!! :]
dziękuje za naprowadzenie na tory.

dadexix dobrze podałeś tylko że według manuala :] mysql> SELECT LEFT('foobarbar', 5);-> 'fooba'
podałeś LEFT('ogl_tresc', $ilosc_znakow)
ogl_tresc to odwołanie do pola w bazie a po wstawieniu w '' stało sie tekstem dlatego wyświetlało mi wszędzie ogl_tresc.

po usunieciu ' ' zaczęło działać poprawnie.


Tak wygląda poprawnie działający kod - temat uważam za zamknięty. dzięki za pomoc!
  1. <?php
  2.  
  3. $zapytanie=sql_select("
  4. SELECT ogl_id, ogl_tytul, ogl_cena, ogl_aktywne, ogl_promowane_1, LEFT(ogl_tresc, 160) FROM _o_ogloszenia
  5. WHERE ogl_aktywne LIKE '1' AND ogl_promowane_1 LIKE '1' ORDER BY ogl_id DESC
  6. ");
  7.  
  8. if ($zapytanie[0][0] > 0){
  9. echo'<div class="pasek_polecamy"><h2>Polecamy ogłoszenia</h2></div>
  10. <div><br>';
  11.  
  12. for ($i=1;$i<=20;$i++){
  13. if (!empty($zapytanie[$i][1]))
  14. echo'<b><a href="'.tytul_ogl($zapytanie[$i][1]).','.$zapytanie[$i][0].'.html">'.htmlspecialchars("".$zapytanie[$i][1]."", ENT_QUOTES).'</a></b><br />'.$zapytanie[$i][5].'...
  15. <p class="date"><img src="images/comment.gif" alt="cena"> '.$zapytanie[$i][2].' zł <img src="images/timeicon.gif" alt="data"> '.idtodate($zapytanie[$i][0]).'</p>';
  16. }
  17.  
  18. echo'</div>';
  19. }
  20. ?>
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.