Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][mysql] Jednokrotne zabranie rekordu
radziowie
post
Post #1





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 1.11.2010

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


Mam mały problem. Otóż mam kod, który wyświetla mi sale a następnie po wejściu nich wyświetla pozostałe dane:

  1. $sale = mysql_query("SELECT * FROM sale ORDER BY sala desc;");
  2. //zmienna $rekord jest przypisana wierszowi (rekordowi) zmiennej $news a następnie pobieranie danych z konkretnych kolumn (komórka po komórce)
  3. WHILE ($rekord = mysql_fetch_assoc ($sale))
  4. {
  5. $id_sali = $rekord['id_sali'];
  6. $sala = $rekord['sala'];
  7. $opiekun = $rekord['opiekun'];
  8. $info = $rekord['info'];
  9. //funkcja nl2br odpowiada za odpowiednie wyświetlanie po przez użycie np. znaków następnej linii
  10. if (!isset($_GET['sala']) || $_GET['sala'] == '')
  11. {
  12. echo '<font color="#FF000"-><h3><a href="sale.php?sala='.$id_sali.'">'.stripslashes($sala).'</a></h3></font><br />';
  13. }
  14.  
  15. if (isset($_GET['sala']) && $_GET['sala'] = $id_sali)
  16. {
  17. $dana_sala = mysql_query("SELECT * FROM sale WHERE id_sali = '".$id_sali."';");
  18. WHILE ($rekord2 = mysql_fetch_assoc($dana_sala))
  19. {
  20. $id_sali2 = $rekord2['id_sali'];
  21. $sala2 = $rekord2['sala'];
  22. $opiekun2 = $rekord2['opiekun'];
  23. $info2 = $rekord2['info'];
  24. echo '<font color="#FF0000"-><h3>'.stripslashes($sala2).'</h3></font><br />
  25. '.stripslashes($opiekun2).'<br />
  26. '.stripslashes($info2).'<br />';
  27. }
  28. }
  29. else echo'dupa';
  30.  
  31.  
  32. }


Problem jednak tkwi w tym, ze gdy wejdę w jedną z sal to wyświetlają mi się wszystkie sale jakie mam w bazie a nie tylko jeden. Gdzie tkwi tu problem. Domyślam się, że on zapamiętuje id_sali z pierwszej pętli i dlatego jest tak. Co należy tu zmienić?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
radziowie
post
Post #2





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 1.11.2010

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


Analizowałem kod parę razy. Dodałem jeszcze wyświetlanie zdjęć dla danej sali, ale nie jestem w stanie tego tak zamienić, aby się wyświetlała tylko jedna sala w adresie ...?sala=X

  1. <?php
  2. include ('dodatki/bonus.php');
  3. include ('meta.php');
  4. include ('gora_logo.php');
  5. lewe_menu ();
  6. open_title();
  7. polacz_baza();
  8.  
  9. $i = 0;
  10. $ile = 4;
  11.  
  12. $sale = mysql_query("SELECT * FROM sale ORDER BY sala desc;") or die(mysql_error());
  13. //zmienna $rekord jest przypisana wierszowi (rekordowi) zmiennej $news a następnie pobieranie danych z konkretnych kolumn (komórka po komórce)
  14. WHILE ($rekord = mysql_fetch_assoc ($sale))
  15. {
  16. $id_sali = $rekord['id_sali'];
  17. $sala = $rekord['sala'];
  18. //funkcja nl2br odpowiada za odpowiednie wyświetlanie po przez użycie np. znaków następnej linii
  19. if (!isset($_GET['sala']) || $_GET['sala'] == '')
  20. {
  21. echo '<font color="#FF000"-><h3><a href="sale.php?sala='.$id_sali.'">'.stripslashes($sala).'</a></h3></font><br />';
  22. }
  23.  
  24. elseif (isset($_GET['sala']) && $_GET['sala'] = $id_sali)
  25. {
  26. $dana_sala = mysql_query("SELECT * FROM sale WHERE id_sali = '".$id_sali."';") or die(mysql_error());
  27. WHILE ($rekord = mysql_fetch_assoc($dana_sala))
  28. {
  29. $id_sali = $rekord['id_sali'];
  30. $sala = $rekord['sala'];
  31. $opiekun = $rekord['opiekun'];
  32. $info = $rekord['info'];
  33. echo '<font color="#FF0000"-><h3>'.stripslashes($sala).'</h3></font><br />
  34. '.stripslashes($opiekun).'<br />
  35. '.stripslashes($info).'<br />
  36. Zdjęcia z galerii dla sali: '.$sala.'<br /><p align="center">';
  37.  
  38. $zdjecia = mysql_query("SELECT * FROM zdjecia WHERE id_kat = '".$sala."' ORDER by id_zdjecia DESC LIMIT 4;");
  39. WHILE ($rekord = mysql_fetch_assoc ($zdjecia))
  40. {
  41. $zdjecie = $rekord['zdjecie'];
  42. $opis = $rekord['opis'];
  43. echo '<a href="./upload/galeria/'.$zdjecie.'" border="0" alt="'.$opis.'" title="'.$opis.'">
  44. <img src="./upload/galeria/mini/'.$zdjecie.'" border="0"></a>';
  45. $i++;
  46. if($i==$ile)
  47. {
  48. $i = 0;
  49. echo '<br />';
  50. }
  51. }
  52. }
  53. echo '</p>';
  54. }
  55.  
  56. else echo'Nie ma nic';
  57.  
  58.  
  59. }
  60.  
  61.  
  62. echo '<br /></p>';
  63. close_title();
  64. include ('./stopka.php');
  65. ?>


1. Wykonuje petle i przypisuje id_sali i sala
2. Jeśli nie ma get wyświetla kategorie
3. W przeciwnym razie wykonuje petle i znowu przypisuje zmienne
4. Ostatnia petla wyświetla zdjecia dla danej sali
5. W przeciwnym razie wyświetla odpowiedni komunikat
6. Zakończenie pierwszej pętli

I teraz się zastanawiam co powinno się zmienić w pkt. 3 i czy nie wstawić go w inne miejsce czasem tylko gdzie?

Ten post edytował radziowie 29.11.2010, 21:20:01
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: 10.10.2025 - 02:22