Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Nie wyświetla, jeśli pusty rekord w bazie
Forum PHP.pl > Forum > Przedszkole
guilty82
Witam smile.gif

Mam taki oto problem, że podczas wykonywania pętli dane są pobierane z tabeli i wyświetlane. Wszystko działa dobrze, dopóki znajduje obrazek. Jeśli jednak obrazka nie ma (rekord [obrazek] w tabelce jest pusty, oraz plik nie znajduje się na serwerze), to nie pokazuje zawartości o tym $id. Co tu robić, żeby jednak pokazywało, mimo że nie ma obrazka?
Oto kod:

  1. <?php
  2. $lista = @mysql_query("SELECT * 
  3. FROM aktualnosci
  4. ORDER BY id DESC");
  5. $dir = "img/";
  6. $width = 120;
  7.  
  8. if (!isset($_GET['id'])):
  9.  
  10. if ($lista == "") {
  11. echo 'Brak nowosci';
  12. exit();
  13. }
  14.  
  15. while ($row = mysql_fetch_array($lista)) {
  16. $id = $row['id'];
  17. if (!($size = getimagesize($dir.$row['obrazek']))) {
  18. continue;
  19. }
  20. $img_w = $size[0];
  21. $img_h = $size[1];
  22. $ratio = $img_w / $img_h;
  23. if ($ratio > 1) {
  24. $img_w = $width;
  25. $img_h = ($width / $ratio);
  26. } else {
  27. $img_w = ($width * $ratio);
  28. $img_h = $width;
  29. }
  30.  
  31. echo "<table width=100% border=0 align=center>";
  32. echo "<tr><td rowspan=3 width=130><img src="
  33. .$dir.$row['obrazek'].
  34. " width = ".$img_w." height=".$img_h."></td><td>"
  35. .$row['data'].
  36. "</td></tr><tr><td><b>"
  37. .$row['temat'].
  38. "</b></td></tr><tr><td>"
  39. .substr($row['tresc'], 0, 217).
  40. "... <br /><font size=3><a href=aktualnosci.php?id=".$id.
  41. ">Czytaj więcej</a></font></td></tr></table><br />";
  42. }
  43. ?>
nospor
Sam dales warunek by sie nie wykonywalo to sie nie dziw
  1. <?php
  2. if (!($size = getimagesize($dir.$row['obrazek']))) {
  3. continue;
  4. }
  5. ?>

Jesli nie ma obrazka to lecisz do nastepnego rekordu.

Jesli nie ma obrazka to nie powinienes wyswietlac tylko obrazka, a rekord powinienes wyswietlic. Tego ifa powinines dac tylko na wyswietlanie obrazka
guilty82
Zmieniłem i działa, chociaż mam wrażenie że trochę po łebkach winksmiley.jpg
Kod:
  1. <?php
  2. while ($row = mysql_fetch_array($lista)) {
  3. $id = $row['id'];
  4. $obrazek = $dir.$row['obrazek'];
  5. $data = $row['data'];
  6. $temat = $row['temat'];
  7. $tresc = $row['tresc'];
  8.  
  9. if ($size = getimagesize($obrazek)) {
  10. $img_w = $size[0];
  11. $img_h = $size[1];
  12. $ratio = $img_w / $img_h;
  13. if ($ratio > 1) {
  14. $img_w = $width;
  15. $img_h = ($width / $ratio);
  16. } else {
  17. $img_w = ($width * $ratio);
  18. $img_h = $width;
  19. }
  20. } else {
  21. $obrazek = "";
  22. }
  23.  
  24. ...
  25.  
  26. }
  27. ?>


Dziękuję za pomoc nospor smile.gif
nospor
Cytat
chociaż mam wrażenie że trochę po łebkach
Nie doceniasz się, własnie o takiego ifa chodzilo smile.gif

ps: choc mam nadzieje, ze tam w tych kropkach ... sa jakies malutkie ify na wysokosc i szerokosc winksmiley.jpg
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.