Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> WHERE
switch
post
Post #1





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 19.08.2003

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


Baza składa się z trzech tabel. Wszystko ładnie i pięknie gra, pobieram sobie dane definiując polecenia do poszczególnych pól co powoduje wyświetlenie się linku z numerem ID, po naciśnieciu którego wszystkie potrzebne dane poprzez polecenie LEFT JOIN zbierają się do kupy i pięknie to działa. Danych jednak przybyło i chcialbym mieć możliwość bardziej szczegółowego podziału kategorii. Np jeżeli wybiorę pole nazwa, chciałbym skrócic wynik tego wyszukiwania do jakiejś jednej grupy np. nazwa w jednym mieście. Wyświetlam, więc dodatkowe dane poprzez formularz (po wyświeleniu się wszystkich danych z pola nazwa) i chcę to skrócić, czyli :
[php:1:9fa482f3a6]<?php
$link = mysql_connect("baza", "uzytkownik", "haslo")
or die ("Nie można połączyć się z bazą danych - zapraszam później.");
$mam = mysql_select_db ("nazwa_bazy") or die ("Nie można połączyć się z bazą danych - zapraszam później.");
$pytanie = mysql_query ("SELECT miasto FROM tabela2 GROUP BY miasto");
echo"<form action='wynik.php' method='post'>";
echo"<select name='miasto' >";
while($row = mysql_fetch_array($pytanie)) {
$miasto = $row['miasto'];
echo"<option value='$miasto'>".$miasto."</ option>";
}
echo"</select>";

?>[/php:1:9fa482f3a6]

OK i teraz chciałbym w wynik.php pobrać pole nazwa w zależności od miasta. Nie mam problemu, jeżeli miasta będą umieszczone w tej samej tabeli co szukana nazwa wtedy daje polecenie:
Kod


SELECT id, nazwa, miasto FROM tabela1 WHERE  miasto = '".$_POST['miasto']."' ORDER BY nazwa ASC


Natomiast ja mam miasta w drugiej tabeli i nie za bardzo wychodzi mi wyszukiwanie pola nazwa w pierwszej tabeli w zależności od pola miasto w drugiej tabeli.
Próbowałem LEFT JOIN, ale może coś pochrzaniłem bo pokazywał błąd.
Rozwiązanie poniżej jest bez sensu, gdyż pokazuje dokładnie wszystkie dane bez skracania (IMG:http://forum.php.pl/style_emoticons/default/laugh.gif)
Kod
SELECT * FROM tabela1, tabela2 WHERE miasto = '".$_POST['miasto']."' ORDER BY nazwa ASC


Pewno to jest proste jak drut..... dzięki
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
switch
post
Post #2





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 19.08.2003

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


Sama baza jest debilnie skonstruowana i nie mam na to wpływu, aby to zmienić. Mało kto widział taki bałagan jaki tam panuje. Baza jest odzwierciedleniem trzech tabel z programu Access i cały dowcip polega na tym, aby struktura bazy na serwerze odpowiadała strukturze Accessa. Wystarczy bowiem przerzucac potem tak samo nazwane tabele do bazy na serwerze, aby mieć zgodność. Niestety robiący baze w Accessie zrobił z tego mały koszmarek. Cały dowcip polega na tym, że w jednej tabeli jest podana nazwa, drugiej miasto, trzeciej uczestnicy. Dla skrócenia podam, że tabele łączą się ze sobą np tabela w której występuje pole "nazwa" ma pole "A " , które odpowiada polu "A" w tabeli, gdzie umieszczona jest pole "miasta".
Czyli:
Kod
LEFT JOIN gdzie ON tam.A = gdzie.A
Go to the top of the page
+Quote Post

Posty w temacie
- switch   WHERE   3.01.2004, 04:17:34
- - Foxx   A tak: SELECT * FROM tabela1, tabela2 WHERE tabel...   3.01.2004, 10:51:37
- - uboottd   Podaj blizsze szcegoly budowy bazy.   3.01.2004, 12:59:48
- - adwol   php Początkujący => Bazy danych   3.01.2004, 17:17:53
- - switch   baza   3.01.2004, 17:38:01
- - Foxx   No ale czekajcie... to ja się wygłupiłem z tą odpo...   3.01.2004, 17:39:34
- - switch   Twoja odpowiedź   3.01.2004, 17:48:03
- - switch   dla wszystkich   3.01.2004, 19:17:41


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: 7.10.2025 - 13:55