Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> pętle i mysql
EliaS
post
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 6.05.2003
Skąd: Kołobrzeg

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


Witam
Kolejny problemiq(pewnie juz macie dosc) ale kto pyta nie błądzi (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Wiec tak mam tabele w mysql w niej pole nr_kursu, w tymze polu znajduja sie powtarzajace sie przez kilka wierszy wartosci numeru kursu np. przez kolejnych 5 wierszy pole to ma warotsc 111, pozniej 112,113 itd.
Teraz pytanie o wyswietlanie dancyh:
[php:1:639571c1de]<?php
$jakas = "SELECT * FROM cos WHERE id=$result[id_cosia] AND nr_kursu='111' ";
$bierz2 = mysql_query($jakas, $conn);
while ($result2 = @mysql_fetch_array($bierz2))
{
?>[/php:1:639571c1de]
mam sobie taka petelke ale czy jest mozliwe by ta petla powtarzala sie w zaleznosci ile roznych numerow kursu bedzie?czyli jesli beda w polu nr_kursu kolejne numery to zeby petle powtarzal tak samo ale ze zmienionym warunkiem zapytania SELECT nr_kursu='112' (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?
licze na help (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
cboot
post
Post #2





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 2.02.2004

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


Może po prostu najpierw pobierz numery kursów, a potem wykonuj to zapytanie dla każdego numeru kursu.
[php:1:b2f7da3d15]<?php
$jakas1 = "SELECT nr_kursu FROM cos WHERE id=".$result['id_cosia']." GROUP BY nr_kursu";
$bierz1 = myslql_query ( $jakas1, $conn );
while ( $result1 = @mysql_fetch_array( $bierz1 ) )
{
$jakas2 = "SELECT * FROM cos WHERE id=".$result['id_cosia']." AND nr_kursu=".$result1['nr_kursu'];
$bierz2 = mysql_query( $jakas2 , $conn );
while ( $result2 = @mysql_fetch_array( $bierz2 ) )
{
// tu odpowiednie instrukcje
}
}
?>[/php:1:b2f7da3d15]
Go to the top of the page
+Quote Post
lukaswoj
post
Post #3





Grupa: Zarejestrowani
Postów: 136
Pomógł: 0
Dołączył: 2.01.2004
Skąd: Lublin

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


Ja bym zaznaczył, że bardziej poprawne pod względem manuala MySQL będzie takie zapytanie:
[sql:1:9af857a409]
SELECT DISTINCT nr_kursu FROM cos WHERE id=JAKIESTAM_ID;
[/sql:1:9af857a409]

zamiast takiego:
[sql:1:9af857a409]
SELECT nr_kursu FROM cos WHERE id=JAKIESTAM_ID GROUP BY nr_kursu";
[/sql:1:9af857a409]

Chociaż wynik ten sam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
EliaS
post
Post #4





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 6.05.2003
Skąd: Kołobrzeg

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


dzieki za podpowiedzi, ale nie wiem jak pogodzic to ze ja juz w tej chwili mam dwa zapytania mysql bo w jednym wyciagam dane z jednej tabeli a wewnatrz tejze petli wyciagam jeszcze dane z innej tabeli. wiec w tym wypadku musialbym jeszcze trzecie zapytanie wlaczyc ale czy to da rade powiazac z tym?
Go to the top of the page
+Quote Post
cboot
post
Post #5





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 2.02.2004

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


@lukaswoj: aaa... sorka, masz świętą rację

@Elias: Zapytań to możesz sobie robić ile chesz (owczywiście im mniej tym lepiej), byleś ich wyniki w innych zmiennych przechowywał. A czy da się je połączyć jakoś, to zależy od konkretnego przypadku.
Go to the top of the page
+Quote Post
EliaS
post
Post #6





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 6.05.2003
Skąd: Kołobrzeg

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


no w tym konkretnym przypadku biorac pod uwage Twoja propozycje grupowania nr_kursu wyglada to tak:
[php:1:58086f91e3]<?php
$sel = "SELECT nr_kursu FROM numery_kursow GROUP BY nr_kursu";
$bierz = mysql_query($sel, $conn);
while ($result = @mysql_fetch_array($bierz))
{
$dane = "SELECT * FROM numery_kursow WHERE nr_kursu=$result[nr_kursu]";
$bierz2 = mysql_query($dane, $conn);
while ($result2 = @mysql_fetch_array($bierz2))
//wyniki zapytania
?>[/php:1:58086f91e3]

Natomiast potrzebuje dołożyc jeszcze rownolegle z wyswieltaniem wynikow wyswietlenie z innej tabeli nazw miejscowosci poniewaz w tabeli numery_kursow mam tylko id_miejscowosci.Musze zatem dolozyc jeszcze zapytanie
SELECT * FROM miejscowosc WHERE id=$result[id_miejscowosci]
Go to the top of the page
+Quote Post
cboot
post
Post #7





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 2.02.2004

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


No to łączymy tabele w zapytaniu:
[php:1:a8cb01bf4f]<?php
$sel = "SELECT DISTINCT nr_kursu FROM numery_kursow";
$bierz = mysql_query($sel, $conn);
while ($result = @mysql_fetch_array($bierz))
{
$dane = "SELECT * FROM numery_kursow, miejscowosc WHERE numery_kursow.id_miejscowosci=miejscowosc.id AND nr_kursu=$result[nr_kursu]";
$bierz2 = mysql_query($dane, $conn);
while ($result2 = @mysql_fetch_array($bierz2))
//wyniki zapytania
}
?>[/php:1:a8cb01bf4f]
Przy założeniu, że w tabeli miejscowosc znajduje się: id | nazwa_miejscowosci

Dzięki temu połączeniu tabel do każdego wiersza zostaną dodane nazwy miejscowości, wczytane z tabeli miejscowosc.
Go to the top of the page
+Quote Post
EliaS
post
Post #8





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 6.05.2003
Skąd: Kołobrzeg

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


woow dzieki wlasnie o cos takiego mi chodzilo.
Go to the top of the page
+Quote Post

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: 23.08.2025 - 10:17