Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
Baza danych - problem - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Programowanie, Bazy danych (https://www.webmastertalk.pl/forum-programowanie-bazy-danych)
+--- Wątek: Baza danych - problem (/thread-baza-danych-problem)



Baza danych - problem - art-e - 03-10-2009

Witam szanownych forumowiczów,

Mam wielką prośbę do Was, męczę się juz kilka dni jak wyciągnąć dane z bazy danych (mysql) i nie daje rady.
Dopiero się tego zacząłem uczyć i ciężko mi to idzie.

Mam bazę która zawiera dane odnośnie przejazdów:
Tak wyglądają kolumny tej bazy (nazwa tabeli: przewoznicy).

id przewoznik skad_miasto dokad_miasto

Potrzebuje wstawić na swoją stronę www, prostą listę rozwijaną. w takim układzie

Dostępne przejazdy:
skad_miasto - dokad_miasto (tutaj do pokazania wszystkie mozliwe przejazdy z bazy, posortowane po nazwie)



Proszę powiedzcie jak będzie wyglądać taki skrypt.

Dziękuję od razu jeśli ktoś by mi pomógł.
Artur


RE: Baza danych - problem - KowR - 03-10-2009

1. Masz połączenie z bazą danych?
Nie? To wklepuj to:
Kod:
<?php
mysql_connect("host", "uzytkownik", "haslo");
mysql_select_db("nazwa_bazy_danych");
?>

2. Lista rozwijana to:
<select name="przewoznicy">
<option value=""></option>
</select>

3. Zapytanie do bazy danych to (zaraz po połączeniu)
Kod:
<?php
$wynik = mysql_query("SELECT * FROM przewoznicy");
?>

4. Potem wypisujemy w liście rozwijanej pętlą wyniki (zaraz po zapytaniu) ;]

Kod:
<select name="przewoznicy">
<?php
while($wynik && $row = mysql_fetch_array($wynik)) {
echo '<option value="'.$row['id'].'">'.$row['skad_miasto'].' - '.$row['dokad_miasto'].'</option>';
}
?>
</select>

Pisane z palca - na chłopski rozum.


RE: Baza danych - problem - art-e - 03-10-2009

Dzięki bardzo,

Działa tak jak chciałem, tylko jeszcze jedno chciałbym zmienić.
Mam kilku przewoźników na takich samych trasach. W mojej liście jednak chciałbym aby pobierało mi tylko niepowtarzalnych.
Dodałem coś takiego jak DISTINCT do funkcji SELECT (tak jak w kodzie na dole) ale niestety dalej pobiera mi wszystko i połączenia się powtarzają.

Co robię źle?



Kod:
<?php
$wynik = mysql_query("SELECT DISTINCT * FROM przewoznicy");
?>



RE: Baza danych - problem - KowR - 03-10-2009

Hmmm...

Kod:
<?php
$wynik = mysql_query("SELECT DISTINCT przewoznik FROM przewoznicy ORDER BY przewoznik");
?>



RE: Baza danych - problem - art-e - 03-10-2009

(03-10-2009, 21:45)rodi napisał(a): Hmmm...

Kod:
<?php
$wynik = mysql_query("SELECT DISTINCT przewoznik FROM przewoznicy ORDER BY przewoznik");
?>


A dlaczego Select po przewoźniku?
Kiedy właśnie w bazie znajduje się kilku przewoźników (inna nazwa) ale z tą samą trasą czyli skad_miasto i dokad_miasto będzie to samo.
np> Kraków - Warszawa (wystąpi 3 razy, a ma pokazać się raz)

myślałem raczej o czymś takim:

Kod:
<?php
$wynik = mysql_query("SELECT DISTINCT `skad_miasto`,`dokad_miasto` FROM promy_indywidualne ORDER BY `skad_miasto`");
?>



RE: Baza danych - problem - Marcin - 04-10-2009

Dodaj klauzulę GROUP BY (przewoznik) po ORDER BY - powinno pomóc.