Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SQL][php] Problem z wyciagnieciem z bazy odpowiednich rekordow
Beton2006
post
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 5.12.2006

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


Witam wszystkich,mam kolejny - dosc banalny - problem.
Otoz mam dwie tabele:

1.Miasta:
-------------------------------
--id----nazwa_miasta------
--1-----Opole---------------
--2-----Wroclaw------------
--3-----Warszawa----------
--4-----Poznan-------------
------------------------------

2.Pociagi (linie)
---------------------------------------------
--numer------odjazd-----przyjazd------
----1-------------1------------2-----------
----2-------------3------------4-----------
----3-------------1------------3-----------
--------------------------------------------


W tabeli pociagi numery odjazd/przyjazd sa to miasta z tabeli "Miasta".

Chcialbym kolejno wyswietlic: Numer linii,Miasto odjazdu(nazwa nie numer) i miasto przyjazdu(nazwa nie numer). No i mam z tym dosc duzy klopot - nie potrafie sformulowac odpowiedniego zapytania.

Tyle zrobilem jak dotad:
  1. <?php
  2.  
  3.  require ("include/config.inc.php");
  4.  
  5.  echo("<table border='2'><tr><th>Codice linea</th><th>Citta di partenza</th><th>Citta di arrivo</th><th>Posti rimasti</th></tr>");
  6.  
  7.  
  8.  $sql= "SELECT *
  9.  FROM linie AS L,miasta AS M
  10.  WHERE L.odjazd=M.Id";
  11.  $result = mysql_query($sql,$db);
  12.  $result2 = mysql_query($sql2,$db);
  13.  if(!$result){
  14.  echo $sql;
  15.  echo mysql_error($db);
  16.  exit;
  17.  }
  18.  
  19.  while($row = mysql_fetch_assoc($result)) {
  20. echo("<tr><td>".$row['id']."</td><td>".$row['nazwa_miasta']."</td><td>");
  21.  
  22.  }
  23.  
  24.  echo("<tr><td><input type='submit' value='ordina' /></td></tr>");
  25.  echo("</table>");
  26.  
  27. ?>


No i wyswietla kolejno numer linii,nazwa miasta odjazdu ale za cholere nie wiem jak wyswietlic takze NAZWE(nie numer) miasta przyjazdu.
Mam nadzieje,ze wyrazilem sie dosc jasno.....

Ten post edytował Beton2006 5.01.2007, 18:57:21
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
maryaan
post
Post #2





Grupa: Zarejestrowani
Postów: 380
Pomógł: 2
Dołączył: 5.01.2007

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


pewnie jest jakis lepszy sposob, ale ja robilem cos takiego, po prostu dopisuje kolejna tabele ze zmieniona "lokalna" nazwa
  1. <?php
  2. $sql= "SELECT *
  3.  FROM linie AS L,miasta AS M, miasta AS M2
  4.  WHERE L.odjazd=M.Id AND L.przyjazd=M2.Id";
  5. ?>


//edit niewlasciwy tag (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ten post edytował maryaan 5.01.2007, 20:40:02
Go to the top of the page
+Quote Post
matlas
post
Post #3





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 26.12.2006
Skąd: Wrocław

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


  1. SELECT L.id , O.nazwa, P,nazwa
  2. FROM linie AS L INNER JOIN miasta AS O ON L.odjazd=O.Id
  3. INNER JOIN miasta AS P ON L.przyjazd=P.id


powinno byc oki

Ten post edytował matlas 5.01.2007, 20:42:34
Go to the top of the page
+Quote Post
Beton2006
post
Post #4





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 5.12.2006

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


Ok, dzieki chlopaki ale jak teraz odczytac wynik w moim przypadku z $row (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?

Bo query chyba dziala:D

EDIT: query maryana wypisuje np. Opole -> Opole itd. (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

Ten post edytował Beton2006 5.01.2007, 21:02:37
Go to the top of the page
+Quote Post
maryaan
post
Post #5





Grupa: Zarejestrowani
Postów: 380
Pomógł: 2
Dołączył: 5.01.2007

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


  1. <?php
  2. $sql= "SELECT L.numer as numer, M.nazwa_miasta as odjazd, M2.nazwa_miasta as przyj
    azd
  3.  FROM linie AS L,miasta AS M, miasta AS M2
  4.  WHERE L.odjazd=M.Id AND L.przyjazd=M2.Id";
  5. ?>


tylko przy wyswietlaniu zmien nazwa_miasta na odjazd i dodaj przyjazd
Go to the top of the page
+Quote Post
Beton2006
post
Post #6





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 5.12.2006

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


chlopaki probuje,probuje i szlak mnie trafia...cos nie dziala.
Wkleje dokladny opis tabel (sa one po Wlosku), moze przez to moglem was zmylic jezeli chodzi o nazwy pol:

1. Tabela "citta" czyli miasta:


codice_citta int(11) No auto_increment kod
desc_citta varchar(100) nazwa


2. Tablea "linee" czyli linie:

codice_linea int(11) No auto_increment kod
posti_rimasti int(11) No 0 nie wazne:)
citta_partenza int(11) No 0 miasto odjazdu
citta_arrivo int(11) No 0 miasto przyjazdu

Ten post edytował Beton2006 5.01.2007, 22:01:31
Go to the top of the page
+Quote Post
maryaan
post
Post #7





Grupa: Zarejestrowani
Postów: 380
Pomógł: 2
Dołączył: 5.01.2007

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


probuj, jesli beda jakies bledy to je tu wklej, nie da rady w ciemno (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
  1. <?php
  2.  
  3.  require ("include/config.inc.php");
  4.  
  5.  echo("<table border='2'><tr><th>Codice linea</th><th>Citta di partenza</th><th>Citta di arrivo</th><th>Posti rimasti</th></tr>"); 
  6.  
  7.  
  8.  $sql= "SELECT L.codice_linea as idLinii, C.desc_citta as miastoStart, C2.desc_citt
    a as miastoKoniec
  9. FROM linee AS L, citta AS C, citta AS C2
  10. WHERE L.citta_partenza = C.codice_citta AND L.citta_arrivo = C2.codice_citta;"
  11.  
  12.  $result = mysql_query($sql,$db);
  13.  $result2 = mysql_query($sql2,$db); 
  14.  if(!$result){
  15.  echo $sql;
  16.  echo mysql_error($db);
  17.  exit;
  18.  }
  19.  
  20.  while($row = mysql_fetch_assoc($result)) {
  21. echo("<tr><td>".$row['idLinii']."</td><td>".$row['miastoStart']."</td><td>".$row['miastoKoniec'].'</td></tr>');
  22.  
  23.  }
  24.  
  25.  echo("<tr><td><input type='submit' value='ordina' /></td></tr>");
  26.  echo("</table>");
  27.  
  28. ?>
Go to the top of the page
+Quote Post
Beton2006
post
Post #8





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 5.12.2006

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


Dziaaaaaaaallllaaaaaaaaaaaa, naprawde bardzo mi pomogles (chyba bym nie zasnal jak bym tego do konca nie doprowadzil).

Dzieki wielkie

A jak chcialbym powiedzmy wyswietlic informacje o danej linii ,tzn majac dane miasto powiedzmy chcialbym wyswietlic wszystkie linie ,powiedzmy odjazdy.

Inaczej -> klikam na miasto a wyswietla mi linie "odjazdy" (tzn nazwa wybranego miasta i nazwa miasta przyjazd).

Da sie zrobic cos takiego z poziomu SQL-a?
Go to the top of the page
+Quote Post
maryaan
post
Post #9





Grupa: Zarejestrowani
Postów: 380
Pomógł: 2
Dołączył: 5.01.2007

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


jesli dobrze zrozumialem to chodzi o to:
  1. SELECT L.codice_linea AS idLinii, C.desc_citta AS miastoStart, C2.desc_citta AS miastoKoniec
  2. FROM linee AS L, citta AS C, citta AS C2
  3. WHERE L.citta_partenza = C.codice_citta AND L.citta_arrivo = C2.codice_citta AND L.citta_partenza = id_jakiegos_miasta

po prostu dodajesz warunek, zeby miasto "startowe" bylo okreslonym id, analogicznie mozna zrobic liste przyjazdow do okreslonego miasta, tylko citta_partenza zmienisz na citta_arrivo
Go to the top of the page
+Quote Post
Beton2006
post
Post #10





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 5.12.2006

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


Dzieki, maryaan - poprobuje.

EDIT -> OK,dziala ale jest jeden problem. Teraz wyswietla mi np.

( [kod_linii] => 1 [kod_miasta] => 2 [odjazd] => Tokyo [przyjazd] => New York ),

i jest git. Ale co jak np. z Tokyo jest wiecej linii ,np Tokyo=>NewYork,TOkyo=>Warszawa i chce wyswietlic je wszystkie?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

OK, poradzilem sobie.....wielkie dzieki za naprowadzenie

Ten post edytował Beton2006 8.01.2007, 11:29:09
Go to the top of the page
+Quote Post

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: 22.08.2025 - 18:48