Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Baza danych - problem
#1
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
Odpowiedz
#2
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.
Odpowiedz
#3
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");
?>
Odpowiedz
#4
Hmmm...

Kod:
<?php
$wynik = mysql_query("SELECT DISTINCT przewoznik FROM przewoznicy ORDER BY przewoznik");
?>
Odpowiedz
#5
(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`");
?>
Odpowiedz
#6
Dodaj klauzulę GROUP BY (przewoznik) po ORDER BY - powinno pomóc.
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  cron nie łączy się z bazą danych michalszyd 3 5,004 18-01-2018, 06:15
Ostatni post: ytprzetwornik
  Pobieranie danych z dwóch baz danych jarekcda 2 5,189 28-11-2016, 11:55
Ostatni post: ania9
  podział danych za pomocą substr ppsqm 1 4,149 18-06-2014, 15:18
Ostatni post: Kartofelek
  Przywrócenie bazy danych/struktury z plików OPT i FRM smiesznylolek 0 3,263 19-11-2013, 16:28
Ostatni post: smiesznylolek
  wyciągnięcie danych kendry 7 6,902 17-06-2013, 13:26
Ostatni post: kendry

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości
Sponsorzy i przyjaciele
SeoHost.pl