Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]Łamanie linii przy wyświetleniu zbyt wielu rekordów
Forum PHP.pl > Forum > Przedszkole
kamilosxd678
Mam problem z wyświetlaniem rekordów w komórce tabeli :/ Mam skrypt wyświetlający kategorie w galerii w jednej komórce tabelki, wszystko teoretycznie "cacy" ale przy wyświetleniu zbyt wielu rekordów, nie występuje łamanie linii, tylko tekst wychodzi poza komórkę (mimo określenia szerokości)

Proszę o pomoc :/

Wątpie aby było to potrzebne ale wrzucam mój kod
  1. //Wyświetlanie
  2. echo '<tr><td width="712px">';
  3. while($ucat_row=mysql_fetch_row($ucat_query)){
  4. echo '<a href="index.php?body=gallery&comid='.$comid.'&ucat='.$ucat_row[0].'>'.$ucat_row[1].'</a>';
  5. }
  6. echo '</td></tr>';


P.S.: Próbowałem z nadaniem nowego wiersza po iluś rekordach, ale jest to bez sensu ponieważ rekordy mają różną ilość znaków :/
foxik000000
Spróbuj zrobić to samo, tyle, że bez podawania parametru width dla <td> i sprawdź czy to coś da.
kamilosxd678
nic nie dało :/
MateuszS
Napisalem tu cos dla Ciebie, po prostu policz ile max wejdzie ci w tych 712 px literek najlepiej za pomoca php i funkcji strlen nastepnie wykorzystaj moj kod

  1. <?
  2. function dziel($string, $dziel) {
  3. $dlugosc = strlen( $string );
  4. $bedzie = ceil( $dlugosc / $dziel );
  5. $array = array();
  6.  
  7. for( $i=0; $bedzie > $i; $i++ ){
  8. $array[] = substr( $string, $i*$dziel, $dziel );
  9. }
  10. return $array;
  11. }
  12.  
  13. $text='121213245sefsdfdsfsfsfdfh576gfhgsdfggjd675skhjhjsadghjlasddadasdaghdad'; // przykladowy tekst
  14. $max=20; // max literek w linijce
  15. $sprawdz=strlen($text);
  16. $podziel=$sprawdz/$max;
  17. $okraglij=ceil($podziel);
  18.  
  19.  
  20. if($sprawdz>$max) {
  21. $pokaz=array();
  22. $pokaz=dziel($text,$max);
  23. for($i=0; $i<=$okraglij; $i++) {
  24. echo $pokaz[$i]; // miejsce na tabelke <td>
  25. echo '<br />'; // nie wolno usunac tego br !
  26. }
  27. }
  28.  
  29. ?>
  30.  
  31.  
Spawnm
http://pl2.php.net/%20wordwrap
MateuszS
fakt wordwrap to lepsze rozwiazanie, nie wiedzialem o tej funkcji haha.gif
kamilosxd678
eee no prawie wyszło tylko, że sypnął mi się kod z linkiem :/
  1. while ($producenci_wiersz = mysql_fetch_row($producenci_zapytanie)){
  2. $text1 = '<span style="font-weight: bold; font-size: 110%"><a href="index.php?body=gallery&comid='.$producenci_wiersz[0].'">'.$producenci_wiersz[1].'</a></span>&nbsp;&nbsp;&nbsp;';
  3. $newtext1 = wordwrap($text1, 88, "<br />");
  4. echo $newtext1;
  5. }


wyrzuca tekst w stylu
  1. href="index.php?body=gallery&comid=1">Kategoria1
posiadacz
A nie można zrobić zwykłej spacji?
kamilosxd678
Normalne spacje nie zawsze łapie, ale już i tak widzę, że będzie z tym większa rozkmina :/ Bo teraz zrobiłem tylko dla jednej kategorii, a to żadna filozofia bo potrzebowałem przecież dla wszystkich a nie dla jednego :/
MateuszS
  1. while ($producenci_wiersz = mysql_fetch_row($producenci_zapytanie)){
  2. $one= '<span style="font-weight: bold; font-size: 110%"><a href="index.php?body=gallery&comid='.$producenci_wiersz[0].'">';
  3. $two= '</a></span>&nbsp;&nbsp;&nbsp;';
  4. $text1 =$producenci_wiersz[1];
  5.  
  6. $newtext1 = wordwrap($text1, 88, "<br />");
  7.  
  8. echo $one.$newtext1.$two;
  9.  
  10. }


moze tak zadziala
kamilosxd678
Teoretycznie dobrze, ale cały myk polega na tym, że ten skrypt łamie linię tylko, gdy nazwa producenta przekracza linie, a nie kilku producentów :/

[edit]
Przekombinowałem, ale działa, zrobiłem to trochę okrężną drogą z wykorzystaniem skryptu który ignoruje HTML w funkcji wordWarp biggrin.gif
Mimo wszystko dziękuję za wszelką udzieloną pomoc smile.gif
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.