Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Czy da się wyciągnąć w jednym zapytaniu i jednym while dane z 2 tabel bez ich powiązania ?
Elber
post
Post #1





Grupa: Zarejestrowani
Postów: 381
Pomógł: 12
Dołączył: 9.07.2007

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


Witam, czy da się wyciągnąć w jednym zapytaniu i jednym while dane z 2 tabel bez ich powiązania ?

Czyli, mam tabele klienci i w niej pola typu id, nazwa itp i pole rabat_id

oraz mam tabele rabat gdzie jest rabat_id i name

(przy czym rabatów jest kilka, ale klient ma przypisany tylko jeden)

i chciałbym wyświetlić te dane z możliwością zmiany rabatu, czyli muszą być wszystkie rzeczy z tabeli klienci, ma pokazać który rabat ma klient, oraz obok tego wszystkie rabaty z tabeli rabat np. tak:

Nazwa
E-mail
dane...

Rabat:
<select>
<option>Aktualny rabat(czyli ten co klient ma w tabeli)</option>
<option>kolejny rabat</option>
<option>kolejny rabat itd</option>
<option>itd</option>
</select>


--------------------
GG: 564555
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
pianta_d
post
Post #2





Grupa: Zarejestrowani
Postów: 176
Pomógł: 18
Dołączył: 5.01.2007

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


Już miałem napisanego gotowca, ale...

Ad. 1
Zajrzyj do manuala MySQL i poczytaj o SELECT

Ad. 2
Jak zapoznasz się z tym co wskazałem wyżej napisz, poradzimy.

Pozdrawiam
Go to the top of the page
+Quote Post
Elber
post
Post #3





Grupa: Zarejestrowani
Postów: 381
Pomógł: 12
Dołączył: 9.07.2007

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


Aktualnie jestem na etapie wyciągania danych z 2 tabel ale z powiązaniem czyli LEFT JOIN ON i nie mam pomysłu jak ugryźć mój problem sad.gif


--------------------
GG: 564555
Go to the top of the page
+Quote Post
pianta_d
post
Post #4





Grupa: Zarejestrowani
Postów: 176
Pomógł: 18
Dołączył: 5.01.2007

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


...

  1. SELECT * FROM klienci, rabat WHERE rabat.rabat_id=klienci.rabat_id



...
pod warunkiem, że każdy klient ma dopisany jakiś rabat
Go to the top of the page
+Quote Post
Elber
post
Post #5





Grupa: Zarejestrowani
Postów: 381
Pomógł: 12
Dołączył: 9.07.2007

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


Tak, każdy klient ma rabat ... ale mi nie o to chodziło ... wylistować to wszystko umiem sam ... pytanie moje konkretnie rozchodziło się czy dodatkowo mogę pobrać za jednym razem z bazy te wszystkie rekordy z tabeli rabaty czyli oprócz tego że przypisze mi nazwę rabatu klienta do klienta to żeby wyświetlić pozostałe rabaty z tabeli smile.gif

Edit.

Czy muszę zrobić 2 zapytanie i 2giego while które wylistuje mi pozostałe rabaty z tabeli ?

Ten post edytował Elber 12.01.2012, 01:00:05


--------------------
GG: 564555
Go to the top of the page
+Quote Post
pianta_d
post
Post #6





Grupa: Zarejestrowani
Postów: 176
Pomógł: 18
Dołączył: 5.01.2007

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


Ok, źle Cię zrozumiałem.
Kiedyś potrzebowałem czegoś podobnego
Poradziłem tak

  1. <select name="ksiazka_nr">
  2. <option value="0">Brak danych</option>
  3. <?
  4. $sql = "SELECT * FROM `ksiazki`";
  5. $result = mysql_query($sql);
  6. while ($row = mysql_fetch_assoc($result))
  7. {
  8. if($row[id_ksiazka] == $nr_ks)
  9. {
  10. $zaznacz='selected';
  11. }
  12. else
  13. {
  14. $zaznacz='';
  15. }
  16. echo '<option value="'.$row[id_ksiazka].'"'.$zaznacz.'>'.$row[nazwa_ksiazka].'</option>';
  17. }
  18. ?>
  19. </select>


Tylko, że robiłem to w edycji rekordu a nie na listingu (o ile dobrze rozumiem Twojego 1 posta)
$nr_ks to zmienna do której przypisywałem aktualny numer książki (u Ciebie aktualny id rabatu w tabeli klienci).

Pozdrawiam
Go to the top of the page
+Quote Post
Elber
post
Post #7





Grupa: Zarejestrowani
Postów: 381
Pomógł: 12
Dołączył: 9.07.2007

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


Spoko wink.gif dzięki ale nie musiałeś pisać kodu smile.gif Sens mojego pytania brzmiał czy można to zrobić w 1 zapytaniu i 1 while smile.gif) Ale chyba się nie da smile.gif


--------------------
GG: 564555
Go to the top of the page
+Quote Post
Leihto
post
Post #8





Grupa: Zarejestrowani
Postów: 25
Pomógł: 4
Dołączył: 9.01.2012

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


Możesz np tak:
  1. mysql_query("SELECT a.*, b.* FROM `tabela` a, `tabela2` b WHERE a.coswpierwszejtabeli = b.coswdrugiejtabeli ORDER BY a.cosztabelipierwszej ASC");


Ten post edytował Leihto 12.01.2012, 02:26:36
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 Aktualny czas: 22.08.2025 - 08:12