Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Instrukacje warunkowe w pętli while
Forum PHP.pl > Forum > PHP
zurek
Witam
Mam problem z umieszczeniem następujących instrukcji w pętli while:

  1. <?
  2.  
  3. while($row=mysql_fetch_array($result, MYSQL_ASSOC)){
  4. $bg =($bg=='#424242' ? '#000000' : '#424242');
  5. $event_name = $row['name'];
  6. $end = $row['end'];
  7. $id = $row['id'];
  8. $kategory = $row['kategory'];
  9. $pay = $row['pay'];
  10. $value = $row['value'];
  11. $position = $row['position'];
  12.  
  13. $now = time();
  14.  
  15. if($end > $now){
  16.  
  17. $seconds = $end - $now;
  18.  
  19. $minutes = $seconds/60;
  20. $minutes = ceil($minutes);
  21. $hours = $minutes/60;
  22. $hours = ceil($hours);
  23. $minutes = $minutes%60;
  24.  
  25. <tr bgcolor="'.$bg.'">
  26. <td width="200">
  27. <b>'.$event_name.'</b>:
  28. </td>
  29. <td width="350">
  30. '.$hours.' godzin '.$minutes.' minut
  31. </td>
  32. <td width="50">
  33. <a href="user_panel.php?page=delete_event&id='.$id.'">Anuluj</a>
  34. </td>
  35. </tr>
  36. ';
  37.  
  38. }
  39. else{
  40. if($kategory=='buildings'){
  41. //zapytanie SQL
  42. }
  43. elseif($kategory=='missions'){
  44. //zapytanie SQL
  45. }
  46. elseif($kategory=='militaries'){
  47. //zapytanie SQL
  48. }
  49. <tr bgcolor="'.$bg.'">
  50. <td width="200">
  51. <b>'.$event_name.'</b>:
  52. </td>
  53. <td width="350">
  54. -
  55. </td>
  56. <td width="50">
  57. <a href="user_panel.php?page=cancel_event&id='.$id.'">Zamknij</a>
  58. </td>
  59. </tr>
  60. ';
  61.  
  62. }
  63.  
  64. }
  65.  
  66. ?>


Wiem, że kod jest trochę niechlujny i jest kilka błędów (np. nadpisywanie zmiennych na początku), ale to późnij poprawię. Na razie proszę o odpowiedzi. Dzięki za pomoc winksmiley.jpg
xbigos
Ale o co dokładnie chodzi? Czasem z krótkimi ifami jest problem idzie sie zamotać dlatego ja zawsze pisze if z klamrami. Spróbuj to napisać używając { } a nie bedzie problrmu
zurek
Kiedy dodaję ten fragment:

  1. <?php
  2. if($kategory=='buildings'){
  3. //zapytanie SQL
  4. }
  5. elseif($kategory=='militaries'){
  6. //zapytanie SQL
  7. }
  8. elseif($kategory=='missions'){
  9. //zapytanie SQL
  10. }
  11. ?>


Wyświetla się błąd, że funkcja mysql_fetch_array została źle użyta i zapytanie nie zwróciło odpowiednich wyników. Wyświetla się wtedy tylko jeden rekord z bazy danych. Kiedy nie dodaję tego fragmenty, wszystko jest OK, ale potrzebuję tych instrukcji warunkowych.
PUPI
Czy na pewno masz w tabeli pole o nazwie "kategory" czy nie czasem "category"? Fragment z kilkoma elsif'ami lepiej jest zastąpić switch'em. Najlepiej wklej opis błędu.
zurek
Tak, mam na pewno takie pole.

Błąd:

Cytat(SQL)
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/zurek/ftp/Wars v1/game/events.php on line 25
Fixus
może to głupie, ale lepiej się upewnić. Jak wstawiasz tam instrukcje warunkowe to jaką ma postać zapytanie sql?
coś w stylu
Kod
$query = "SELECT * FROM tabela";
$result = mysql_query($query);
questionmark.gif
pytam bo może masz tam właśnie zmienną $result. Jeśli masz to wtedy nadpisuje ona starą $result i ci się chrzani parametr mysql_fetch_array()
przynajmniej na to mi wygląda
zurek
Wielkie dzięki, już działa. Rzeczywiście nie zauważyłem, że to się nadpisuje. Pozdrawiam 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.