Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Problem z wyświetlniem obrazków
tomekmvr
post
Post #1





Grupa: Zarejestrowani
Postów: 116
Pomógł: 2
Dołączył: 11.09.2006

Ostrzeżenie: (0%)
-----


Witam
Mam pager ktory wyswietla zdjecia. Chcialem zrobic zeby wyswietlalo w pierwszej linii cztery, drugiej tez itd.
Ale cos mi nie wychodzi bo wyswietla mi w pierwszej lini jeden obrazek, w drugiej cztery, w trzeciej jeden i znowu cztery.

O to ten skrypt:
  1. <?php
  2.  
  3. $link = @mysql_connect(localhost, root, krasnal) or die ('Nie mozna nawiazac polaczenia z baza danych');
  4. mysql_select_db(imprezka) or die ('Bledna nazwa bazy !');
  5. $query = @mysql_query("SELECT * FROM obrazki");
  6. $wszystkich = @mysql_num_rows($query);
  7.  
  8. $ile_na_stronie = "10";
  9. $page = $_GET['page'] ? $_GET['page'] : 0;
  10. $limit = ($page * $ile_na_stronie).','.$ile_na_stronie;
  11. (($page * $ile_na_stronie)+$ile_na_stronie);
  12.  
  13. $zapytanie = "SELECT * FROM obrazki LIMIT {$limit}";
  14. $wykonaj = mysql_query($zapytanie);
  15.  
  16. echo'<table><tr>';
  17.  
  18. while($wiersz = @mysql_fetch_array($wykonaj))
  19. {
  20.  
  21. if($ii % 5 == 0) echo '<tr>';
  22. echo '<td><img src='.$wiersz['url'].' width="100" height="100"></td>';
  23. if($ii % 5 == 0) echo '</tr>';
  24.  
  25. $ii++;
  26. }
  27. echo'</tr></table>';
  28. $podstron = ceil($wszystkich/$ile_na_stronie);
  29.  
  30. if($page>0){
  31. echo "<a href=index.php?page=".($page-1).">Poprzednia</a>&nbsp;&nbsp;|";
  32. } else {
  33. echo "Poprzednia&nbsp;&nbsp;|";
  34. }
  35.  
  36. for($i=0;$i<$podstron;$i++){
  37. if($i==$page){
  38. echo " [".($i+1)."] ";
  39. } else {
  40. echo "<a href=index.php?page=".($i)."> ".($i+1)." </a>";
  41. }
  42. }
  43.  
  44. if($page<$podstron-1){
  45. echo "&nbsp;&nbsp;<a href=index.php?page=".($page+1).">Nastepna</a>";
  46. } else {
  47. echo "&nbsp;&nbsp;Nastepna";
  48. }
  49.  
  50. ?>


Prosze o pomoc, gdzie popelnilem blad?
Go to the top of the page
+Quote Post
Daimos
post
Post #2





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

Ostrzeżenie: (0%)
-----


moze tak
  1. <?php
  2.  
  3. echo'<table>'; // wywal <tr>
  4. $ii=1;
  5. while($wiersz = @mysql_fetch_array($wykonaj))
  6. {
  7.  
  8. if($ii % 4 == 0) echo '<tr>';
  9. echo '<td><img src='.$wiersz['url'].' width="100" height="100"></td>';
  10. if($ii % 4 == 0) echo '</tr>';
  11.  
  12. $ii++;
  13. }
  14. echo'</table>';
  15. ?>


Ten post edytował my salsa 8.02.2008, 18:24:45
Go to the top of the page
+Quote Post
tomekmvr
post
Post #3





Grupa: Zarejestrowani
Postów: 116
Pomógł: 2
Dołączył: 11.09.2006

Ostrzeżenie: (0%)
-----


Tez tak probowalem i nic nie zmienia sie, dalej jest tak samo. Tylko ze teraz w pierwszym wierszu sa trzy obrazki, w nastepnym jeden, nastepnie trzy itd.

Ten post edytował tomekmvr 8.02.2008, 19:23:55
Go to the top of the page
+Quote Post
specialplan
post
Post #4





Grupa: Zarejestrowani
Postów: 206
Pomógł: 21
Dołączył: 1.09.2006
Skąd: Edinburgh

Ostrzeżenie: (0%)
-----


Hmm... Gdzieś widziałem identyczny kod...
Go to the top of the page
+Quote Post
nowotny
post
Post #5





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

Ostrzeżenie: (0%)
-----


Cytat(tomekmvr @ 8.02.2008, 17:54:10 ) *
Prosze o pomoc, gdzie popelnilem blad?

W myśleniu... przeanalizuj sobie każdą iterację pętli wyświetlającej i będziesz wiedział dlaczego tak się dzieje... czyli prześledź pętle i warunki dla $ii=1, $ii=2, itd...

Ogólnie pętla while się do takiej funkcji słabo nadaje...

Ten post edytował nowotny 8.02.2008, 20:23:56
Go to the top of the page
+Quote Post
tomekmvr
post
Post #6





Grupa: Zarejestrowani
Postów: 116
Pomógł: 2
Dołączył: 11.09.2006

Ostrzeżenie: (0%)
-----


Cytat(specialplan @ 8.02.2008, 19:30:59 ) *
Hmm... Gdzieś widziałem identyczny kod...


Tak ten kod znalazlem na tym forum, tylko chcialem dodac do niego aby sie wysietlaly wyniki w rzedach w koncu sie udalo o to rozwiazanie mi dziala, ale nie wiem czy tak prawidlowo powinno byc:
  1. <?php
  2. echo'<table>';
  3. $ii=1;
  4. while($wiersz = @mysql_fetch_array($wykonaj))
  5. {
  6.  
  7. if($ii % 4 == 1) echo '<tr>';
  8. echo '<td><img src='.$wiersz['url'].' width="100" height="100"></td>';
  9. if($ii % 4 == 0) echo '</tr>';
  10.  
  11. $ii++;
  12. }
  13. echo'</table>';
  14. ?>
Go to the top of the page
+Quote Post
Daimos
post
Post #7





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

Ostrzeżenie: (0%)
-----


no przeciez tak napisalem, dziala?
Go to the top of the page
+Quote Post
tomekmvr
post
Post #8





Grupa: Zarejestrowani
Postów: 116
Pomógł: 2
Dołączył: 11.09.2006

Ostrzeżenie: (0%)
-----


Nie napisales tak jak teraz podalem.

Bylo najpierw
  1. <?php
  2. if($ii % 4 == 0) echo '<tr>';
  3. ?>


A ja zmienilem na:
  1. <?php
  2. if($ii % 4 == 1) echo '<tr>';
  3. ?>


Reszta bez zmian. Ta jedynka wszystko zmienila, ze jest teraz dobrze.
Go to the top of the page
+Quote Post
Daimos
post
Post #9





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

Ostrzeżenie: (0%)
-----


% to jest reszta z dzielenia

btw tutaj mozna zauwazyc zalete divow, wystarczy float:left i mamy taka tabele bez kombinowania gdzie zamkniecie wiersza

Ten post edytował my salsa 8.02.2008, 22:02:47
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 07:16