Skocz do zawartości

Zapytania do dwóch tabel w jednej pętli WHILE


Sanchez Spinoza

Rekomendowane odpowiedzi

Panowie mam taki problem z którym nie mogę sobie poradzić.

Chodzi mi oto że w jednej pętli WHILE gdy nawiązuje połączenie z jedną baz danch

chcę uzuskać NAZWĘ kategori z drugiej tabeli i pętla nie pobiera mi danych z drugiej tabeli.

Przedstawie może lepiej szczegóły:

Otóż są dwie tabele:

1. TABELA kategorie

id

nazwa

2. TABELA wpisy

id

title

opis

content

kategoria

flaga

special

nick

email

data

A oto kod pętli:

$result = @mysql_query("SELECT * FROM wpisy ");

while ($rekord = @mysql_fetch_array($result))

{

echo '<TR>

<TD style="background:#eee; padding:2px; padding-left:5px; width:15%; color:#000;">ID: ' . $rekord['id'] . '</TD>

<TD style="background:#fff; padding:2px; padding-left:5px; padding-right:50px; color:#000; ">' . $rekord['title'] . '</TD>

<TD style="background:#eee; color:#000;">'

.

$kategoria_rekordu = $rekord['kategoria'];

$result_2 = @mysql_query("SELECT * FROM kategoria WHERE id = $kategoria_rekordu");

$rekord_2 = @mysql_fetch_array($result_2);

$rekord_2['nazwa']

.

'</TD>

<TD style="background:#eee; color:#000;">' . $rekord['data'] .'</TD>

<TD style="background:#eee; padding:2px; padding-left:5px; padding-right:10px; color:#000;">' . '<a href="delete.php?idart=' . $rekord['id'] . '">Usuń</A> | <a href="editart.php?idart=' . $rekord['id'] . '">Edycja</A></TD>

</TR>';

}

}

A oto wynik wizualny:

4697b41d9e.jpg

Jak widać na obrazku pętla po podaniu jej drugiego połączenia zaprzestała także pobierać dane DATA DODANIA i AKCJA z poprzedniego połączenia.

Pytanie tego postu to:

Jak wpisać w pole KATEGORIA nazwę kategori z drugiej tabeli a nie jej numer z pierwszej? ;)

Kurde nie wiem czy za bardzo nie namieszałem. Ale może coś z tego wiadomo co?

Kurcze będę wdzięczny za każdą wskazówkę.

Profesjonalne publikacje Content Marketingowe - zamów online na BlackHood.pl 

Szeroki wybór Łożysk samochodowych

Polecam również Praca Bielsko

Odnośnik do komentarza
Udostępnij na innych stronach

;) Ten topic trzeba przykleić i podawać jako przykład w dyskusjach typu "dlaczego wyrzucono mnie z hostingu?" !!!

SELECT * FROM kategorie k, wpisy w WHERE w.kategoria=k.id

o ile zrozumiałem co chcesz dostać w wyniku.

Odnośnik do komentarza
Udostępnij na innych stronach

Pierwszym zdaniem zapewne chodzi Ci o obiążanie servera przydługim kodem tak? Hmm tak przyznam że ponosi mnie trochę, ale w wersji ostatecznej tego bym nie popełnił :(

Co do meritum postu to czy mógłbyś mi jeszcze powiedzieć co oznaczają tu zapisy:

kategorie k oraz wpisy w a także w.kategoria=k.id ;)

Pierwszy raz coś takiego widze. Znaczy że mam to poprostu przekopiować do kodu czy to jakaś wskazówka kurcze !!!

Profesjonalne publikacje Content Marketingowe - zamów online na BlackHood.pl 

Szeroki wybór Łożysk samochodowych

Polecam również Praca Bielsko

Odnośnik do komentarza
Udostępnij na innych stronach

Alias tabeli. kategorie k gdzie k jest aliasem dla tabeli kategoria.

-----------------------

Odnośnie zapytania:

Przykładowo tabela wpisy ma 1000 rekordów czyli Twoje pętla w zapytaniu:

$result_2 = @mysql_query("SELECT * FROM kategoria WHERE id = $kategoria_rekordu");

Musi wykonać 1000 zapytań do bazy danych i dalej przetworzyć i to tylko dla jedno usera... Więc tak jak napisał Normanos koszmar dla serwera. Takie rozwiązania powinieneś z góry eliminować, lub jeśli koniecznie musisz wykonać takie kody jeśli to możliwe używaj cachowania wyników.

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

coś mi się wydaje że posiedzę przy tym do późna. :/

Cholera ale czemu o tym nie pisze w moich ksiażkach? Mam ich chyba z 4 traktujące o PHP i MySQL i ani słowa o tym. A może to przeoczyłem? nie, to nie możliwe.

Bez opanowanowania tych zasad aliasów itp. to raczej tego nie wykonam.

Gdzie mogę o tym poczytać? tylko nie w wersji online tylko w podręczniku. Możesz Mion wskazać jakiś?

Profesjonalne publikacje Content Marketingowe - zamów online na BlackHood.pl 

Szeroki wybór Łożysk samochodowych

Polecam również Praca Bielsko

Odnośnik do komentarza
Udostępnij na innych stronach

Gdzie mogę o tym poczytać? tylko nie w wersji online tylko w podręczniku. Możesz Mion wskazać jakiś?
wpisz w google: aliasy tabeli mysql site:helion.pl

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

No mam pare pozycji z tych książek ;) chyba je ominąłem czytając bo wydały mi się nie potrzebne lub za trudne. Chyba to drugie.

A może tak szybciutki solutionik dla tego mojego problemu ? :) Płace 20 zł :) lub upust 10 % na łożyska w serisie RUFUS.PL na 3 miesiące.

Profesjonalne publikacje Content Marketingowe - zamów online na BlackHood.pl 

Szeroki wybór Łożysk samochodowych

Polecam również Praca Bielsko

Odnośnik do komentarza
Udostępnij na innych stronach

A może tak szybciutki solutionik dla tego mojego problemu ? :) Płace 20 zł ;) lub upust 10 % na łożyska w serisie RUFUS.PL na 3 miesiące.

to może od razu przynieś waciki?

Przecież podałem Ci rozwiązanie, które prawdopodobnie cię interesuje. Zamiast 2 pytań po prostu uruchom selecta którego Ci podałem i zobacz jakie dostajesz dane. print_r($rekord);

Odnośnik do komentarza
Udostępnij na innych stronach

Jestem troche na niższym poziomie niż Ty, chętnię bym uruchomił tego selecta gdybym wiedział gdzie :)

Stąd moja prośba o rozwiązanie.

Profesjonalne publikacje Content Marketingowe - zamów online na BlackHood.pl 

Szeroki wybór Łożysk samochodowych

Polecam również Praca Bielsko

Odnośnik do komentarza
Udostępnij na innych stronach

$result = @mysql_query("SELECT * FROM kategorie k, wpisy w WHERE w.kategoria=k.id");
while ($rekord = @mysql_fetch_array($result))
{
print'<pre>';
print_r($rekord);
print'</pre>';
}

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

No coś z tego będzie ;) To zapytanie pobiera mi dane z drugiej tabeli tylko dodaje ten sam wynik do każdego pola. Tu by pasowało zrobić coś takiego

$result = @mysql_query("SELECT * FROM kategorie INNER JOIN wpisy ON kategorie.id=wpisy.kategoria WHERE id = ... ");

czy coś takiego. Żeby w pętli zapytanie dopasowało ID kategori do wpisu. Kombinuje ale nie wychodzi mi to zabardzo. Mozna z tym WHERE coś pokombinować czy źle myśle? :D

Profesjonalne publikacje Content Marketingowe - zamów online na BlackHood.pl 

Szeroki wybór Łożysk samochodowych

Polecam również Praca Bielsko

Odnośnik do komentarza
Udostępnij na innych stronach

Skoro ma pokazywać wszystkie artykuły wiec wybiera wszystkie kategoria i artykuły w nich występujące... Jeśli będzie miął pokazywac z danej kategorii do dodasz następny warunek AND ....

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

No ma pokazywać wszystkie artykuły ale kategorii mam dużo więcej a nie jedną to czemu mi wyświetla wpisy tylko należące do jednej, pierwszej w tabeli kategorii?

P.s Jeżeli Mion odpowiedziałeś mi już na to pytanie w powyższej odpowiedzi a ja tego nie zrozumiałem i zadałem TO pytanie to wybacz. Wiesz mam taki mały defekt powolnego kojarzenia.

Profesjonalne publikacje Content Marketingowe - zamów online na BlackHood.pl 

Szeroki wybór Łożysk samochodowych

Polecam również Praca Bielsko

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności