Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL][php] Problem z wyciagnieciem z bazy odpowiednich rekordow
Beton2006
post 5.01.2007, 18:54:52
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
maryaan
post 5.01.2007, 20:38:24
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 tongue.gif

Ten post edytował maryaan 5.01.2007, 20:40:02


--------------------
Wybierasz się do Zakopanego? Odwiedź Willę Pod Górami. Następnym razem na pewno do niej wrócisz :)
Go to the top of the page
+Quote Post
matlas
post 5.01.2007, 20:42:02
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


--------------------
Zapraszam na bloga: http://matlas.obsysa.net/
Go to the top of the page
+Quote Post
Beton2006
post 5.01.2007, 20:59:31
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 questionmark.gif?

Bo query chyba dziala:D

EDIT: query maryana wypisuje np. Opole -> Opole itd. sad.gif

Ten post edytował Beton2006 5.01.2007, 21:02:37
Go to the top of the page
+Quote Post
maryaan
post 5.01.2007, 21:09:01
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


--------------------
Wybierasz się do Zakopanego? Odwiedź Willę Pod Górami. Następnym razem na pewno do niej wrócisz :)
Go to the top of the page
+Quote Post
Beton2006
post 5.01.2007, 22:00:29
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 5.01.2007, 22:17:55
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 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. ?>


--------------------
Wybierasz się do Zakopanego? Odwiedź Willę Pod Górami. Następnym razem na pewno do niej wrócisz :)
Go to the top of the page
+Quote Post
Beton2006
post 7.01.2007, 23:30:14
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 8.01.2007, 00:11:47
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


--------------------
Wybierasz się do Zakopanego? Odwiedź Willę Pod Górami. Następnym razem na pewno do niej wrócisz :)
Go to the top of the page
+Quote Post
Beton2006
post 8.01.2007, 11:39:52
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?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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 6.07.2025 - 02:03