Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jedno zapytanie zamiast kilku - pętle
denis94
post 26.11.2010, 21:33:21
Post #1





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 8.08.2010
Skąd: Warszawa

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


Witam.
Posiadam u siebie w bazie tabelę o nazwie ramowka. W niej są tabele id, dzien oraz nazwa.

Aby wyświetlić wszystkie audycje (rekordy) dla każdego dnia osobno (musi być dla każdego dnia osobno ponieważ pomiędzy pętlami umieszczam napis, kod html) używam pętli. Pomijając kod z zapytaniem i wynikiem wygląda to tak:

  1. echo "Poniedziałek";
  2. for ($sip=0; $sip<mysql_num_rows($poniedzialek); $sip++)
  3. {
  4. Tutaj wyświetlają się nazwy audycji z dniem 1 posortowane według pola id.
  5. }
  6.  
  7. echo "Wtorek";
  8. for ($sip=0; $sip<mysql_num_rows($wtorek); $sip++)
  9. {
  10. Tutaj wyświetlają się nazwy audycji z dniem 2 posortowane według pola id.
  11. }
  12.  


i tak dalej aż do niedzieli. Problem polega na tym, że wykonuje się aż 7 zapytań do bazy. Czy da się w jakiś sposób ograniczyć te zapytania i pętle, do jednego ale w taki sposób abym pomiędzy każdym dniem mógł wprowadzić napis dnia tygodnia, kod lub cokolwiek innego? Proszę o pomoc

Ten post edytował denis94 26.11.2010, 21:38:49
Go to the top of the page
+Quote Post
CuteOne
post 26.11.2010, 22:19:51
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


1. a po co osobno - słyszoł o zapisie danych do zmiennych?

  1. $write = $write2 = '';
  2. while($a => $b) {
  3. $write .= $b;
  4. }
  5. while($a => $b) {
  6. $write2 .= $b;
  7. }
  8. echo $write.' wtorek '.$write2;

to po pierwsze

2. jedna petla i porównanie
  1. $query = mysql_query("SELECT * FROM ramowka"); //wstaw jakies where
  2. while($row = mysql_fetch_array($query)) {
  3.  
  4. switch($row['dzien']) {
  5. case 'poniedzialek':
  6. $poniedzialek .= 'bdjwuihf'.$row['nazwa'];
  7. break;
  8. case 'wtorek':
  9. $wtorek .= 'bdjwuihf'.$row['nazwa'];
  10. break;
  11. //itd...
  12. }
  13. }

wstawianie pomiędzy dni i łączenie zmiennych masz w 1pkt

Ten post edytował CuteOne 26.11.2010, 22:20:48
Go to the top of the page
+Quote Post
denis94
post 27.11.2010, 15:21:56
Post #3





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 8.08.2010
Skąd: Warszawa

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


Dzięki za odpowiedź.

Zrobiłem tak jak podałeś, pozmieniałem zmienne. Próbowałem narazie na dwa dni, lecz w miejscu gdzie powinna się ramówka wyświetlać, nic nie ma. Nie otrzymuję, żadnego błędu. Trochę nad tym siedziałem i próbowałem na kilka sposobów ale chyba coś źle zrozumiałem. Czy mógł byś mi podać przykład na jednym dniu?

Struktura tabeli ramowka: id, dzien, nazwaaudycji

Przed wyświetlaniem audycji na dany dzien napis: Poniedziałek.
Sortowanie audycji według: id DESC

Dzięki.
Go to the top of the page
+Quote Post
CuteOne
post 27.11.2010, 20:23:07
Post #4





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


wstaw kod bo nie chce mi sie wymyslac gotowca..
Go to the top of the page
+Quote Post
denis94
post 6.12.2010, 10:18:42
Post #5





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 8.08.2010
Skąd: Warszawa

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


dobra dzięki, pozostawiłem 7 zapytań ale zamiast tego wszystko mam w tylko jednej pętli a nie w siedmiu
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.06.2025 - 14:45