Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zdjecia wyciagane z bazy
miszqa
post
Post #1





Grupa: Zarejestrowani
Postów: 168
Pomógł: 0
Dołączył: 15.01.2004
Skąd: Suwalki/Poznan

Ostrzeżenie: (10%)
X----


Witam!!!
Problem jest takiej natury
Mam skrypt do wyciagania zdjec z bazy i problem pojawia sie przy numeracji Id
czyli o auto_increment
  1. <?php
  2.  
  3. include_once ('admin/config.php');
  4.  
  5. define(&#092;"BLAD\", \"<BR>&nbsp;<b style=\"color:red\">BLAD:</b>\"); 
  6. $db = mysql_connect($dbhost, $dbuser, $dbpass) or die (BLAD . &#092;"Nie moge polaczyc sie z serwerem bazy.\"); 
  7. mysql_select_db($dbname, $db) or die(BLAD . &#092;"Nie moge wybrac odpowiedniej bazy.\"); 
  8. $id1=$id_zdjecie;
  9. $result = mysql_db_query($dbname,&#092;"SELECT * FROM lo_galeria WHERE lo_galeria_id=$id1\"); 
  10. list($wszystkich)=mysql_fetch_row(mysql_db_query($dbname,&#092;"SELECT count(*) FROM lo_galeria\"));
  11. print &#092;" <TABLE width=100 align=center border=0>\";
  12. $id_min=$id_zdjecie-1;
  13. $id_max=$id_zdjecie+1;
  14. $page=floor(($id_zdjecie-1)/12);
  15. $page=$page;
  16. //echo $page;
  17. if($id_min==0) {
  18. // print \"<tr><td colspan=3 align=center class=tekst><b>$id</b> z $wszystkich</td></tr>\";
  19. print &#092;"<tr><td align=center width=40>&nbsp;</td>\";
  20. print &#092;"<td align=center width=40><a href=\"?id=41&subj=$subj\"><img src=\"sysimg/home.gif\" alt=\"home\" border=0></a></td>\";
  21. print &#092;"<td align=center width=40><a href=\"?id=42&subj=$subj&id_zdjecie=$id_max\"><img src=\"sysimg/next.gif\" alt=\"next\" border=0></a></td></tr>\";
  22. } elseif ($id_max==$wszystkich+1) {
  23. // print \"<tr><td colspan=3 align=center class=tekst><b>$id</b> z $wszystkich</td></tr>\";
  24. print &#092;"<tr><td align=center width=40><a href=\"?id=42&subj=$subj&id_zdjecie=$id_min\"><img src=\"sysimg/previous.gif\" alt=\"prev\" border=0></a></td>\";
  25. print &#092;"<td align=center width=40><a href=\"?id=41&subj=$subj&page=$page\"><img src=\"sysimg/home.gif\" alt=\"home\" border=0></a></td>\";
  26. print &#092;"<td align=center width=40>&nbsp;</td></tr>\";
  27. } else {
  28. // print \"<tr><td colspan=3 align=center class=tekst><b>$id</b> z $wszystkich</td></tr>\";
  29. print &#092;"<tr><td align=center width=40><a href=\"?id=42&subj=$subj&id_zdjecie=$id_min\"><img src=\"sysimg/previous.gif\" alt=\"prev\" border=0></a></td>\";
  30. print &#092;"<td align=center width=40><a href=\"?id=41&subj=$subj&page=$page\"><img src=\"sysimg/home.gif\" alt=\"home\" border=0></a></td>\";
  31. print &#092;"<td align=center width=40><a href=\"?id=42&subj=$subj&id_zdjecie=$id_max\"><img src=\"sysimg/next.gif\" alt=\"next\" border=0></a></td></tr>\";
  32. }
  33. print &#092;"</TABLE>\";
  34.  
  35. print &#092;" <TABLE width=400 align=center border=0>\";
  36. while ($row = mysql_fetch_array($result)) {
  37.  
  38. printf(&#092;"<TR><TD align=center><b><small>%s</small></b></TD></TR>
  39. <TR><TD align=center><img src=&#092;"galeria/%s\" border=0></TD></TR>
  40. &#092;", 
  41. $row['lo_galeria_nazwa'],
  42. $row['lo_galeria_zdjecie']);
  43.  
  44. }
  45. print &#092;"</TABLE>\";
  46. // Przycisk \"poprzednia strona\": 
  47.  
  48. ?>

tak wyglada skrypt
wszystko dziala bez zarzutu jesli zdjecia sa dodawane bezposrednio jedno po drugim. Problem pojawia sie gdy jakies zdjecie sie skasuje z bazy. Jak przerobic ten skrypcik aby pobieral i wyswietlal prawidlowo wszystkie zdjecia bez roznicy czy jakies zdjecie zostalo skasowane z bazy.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
dr_bonzo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


A moze rozwiazac to tak:
numerujesz strony numerem strony (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) a nie id zdjecia i wtedy:
(5 zdjec, wyswietlane po 3 na stronie (o to chodzi?), a gdy sie nie da to dwa lub jedno; "-" oznacza brak zdjecia w tym miejscu)
Kod
|str|zdjecia|
| 0 | -01   |
| 1 | 012   |
| 2 | 123   |
| 3 | 234   |
| 4 | 34-   |


1. pobierasz ilosc zdjec (SELECT count( * ) ....)
- gdy suma == 0 wyswietlasz pusta strone
- gdy == 1 wyswietlasz jedno centralne zjdecie
- gdy > 1
* liczba stron == ilosci zdjec (patrz przyklad)
* w zaleznosci od nr strony:
+ gdy nr strony == 2 lub (ilosc_stron - 1) to wyswietlasz dwa zdjecia
(SELECT * ..... LIMIT $str,2 )
+ gdy nr strony != 2 i != od (ilosc_stron - 1) to wyswietlasz 3 zdjecia
na stronie $str wyswietlasz zdjecia (SELECT * .... LIMIT $str - 1, 3)
Go to the top of the page
+Quote Post

Posty w temacie


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: 15.10.2025 - 14:55