Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Wyświetlenie danych z dwóch tabel
Forum PHP.pl > Forum > Przedszkole
ttb
Witam wszystkich,
proszę o korektę błędu:

mam dwie tabele: miasto i wieś
chcę, żeby w tabeli pokazały się wyniki z tych tabel poukładane wg kodu pocztowego miast i wsi...

Kod
<BR>$wynik = mysql_query("SELECT * FROM miasto, wies WHERE status='male' ORDER BY kod)<BR>or die('Błąd zapytania');<BR>


nie działa... widzicie jakiś błąd?

z góry dzięki
erix
Nie działa, czyli? Jakiś błąd, czy zero rekordów?

Strzelam:
  1. SELECT * FROM miasto, wies WHERE miasto.STATUS='male' OR wies.STATUS='male' ORDER BY kod
ttb
rekordów b.dużo...
a błędu żadnego nie wywala...

pokażę cały kod... wiem, że nie jest on do końca profesjonalnie napisany ale kombinuję co mogę...

Kod
$wynik = mysql_query("SELECT * FROM miasto WHERE status='male' RDER BY kod LIMIT $start, $perPage")
or die('Błąd zapytania');
$wynik1 = mysql_query("SELECT * FROM wies WHERE status='male' ORDER BY kod LIMIT $start, $perPage")
or die('Błąd zapytania');

if(mysql_num_rows($wynik) > -1) {
        echo "<center><table  border=1>";

echo "<tr>";
        echo "<td width=40pt><b>KOD</b></td>";
        echo "<td width=220pt><b>MIASTO</b></td>";
        echo "</tr>";

    while($r = mysql_fetch_assoc($wynik)) {

echo "<tr>";
        echo "<td>".$r['kod']."</td>";
        echo "<td>".$r['miasto']."</td>";
        echo "</tr>";
    }

while($r = mysql_fetch_assoc($wynik1)) {
        
echo "<tr>";

        echo "<td>".$r['kod']."</td>";
        echo "<td>".$r['miasto']."</td>";
        echo "</tr>";
    }

    echo "</table></center>";
}


i to mi działa... ale jak skrócić ten kod? bo układa mi najpierw po kolei kodowo miasta a potem dopiero po kolei wioski...
piotrooo89
a mógłbyś dla pełni szczęścia pokazać strukturę tabel, coby kolumny były widoczne?
ttb
Cytat(piotrooo89 @ 9.04.2009, 21:38:55 ) *
a mógłbyś dla pełni szczęścia pokazać strukturę tabel, coby kolumny były widoczne?



piotrooo89 - pokazałem zapytanie i układ tabeli... ale jak skrócić zapytanie...

bo tak sobie to planowałem ale nie działa:

Kod
$wynik = mysql_query("SELECT * FROM miasto, wies WHERE status='male' RDER BY kod LIMIT $start, $perPage")


if(mysql_num_rows($wynik) > -1) {
        echo "<center><table  border=1>";

echo "<tr>";
        echo "<td width=40pt><b>KOD</b></td>";
        echo "<td width=220pt><b>MIASTO</b></td>";
        echo "<td width=220pt><b>STATUS</b></td>";
        echo "</tr>";

    while($r = mysql_fetch_assoc($wynik)) {

echo "<tr>";
        echo "<td>".$r['kod']."</td>";
        echo "<td>".$r['miasto']."</td>";
        echo "<td>".$r['status']."</td>";
        echo "</tr>";
    }
    echo "</table></center>";
}
piotrooo89
chodzi mi o struktury tabel... czyli jakie masz tam pola. bo tak to jest wróżenie lekkie albo opieranie się na Twoich przemyśleniach które mogą być niekoniecznie dobre.
ttb
Cytat(piotrooo89 @ 9.04.2009, 21:48:12 ) *
chodzi mi o struktury tabel... czyli jakie masz tam pola. bo tak to jest wróżenie lekkie albo opieranie się na Twoich przemyśleniach które mogą być niekoniecznie dobre.



rozumiem...
struktura prosta, tylko 3 pozycje:

tabela MIASTO
id
kod - varchar (6)
miasto - varchar (30)
status - varchar (20)

tabela WIES
id
kod - varchar (6)
miasto - varchar (30)
status - varchar (20)

(o tą informację chodziło?)
kantek
To skąd w 'status' w zapytaniu jak nie ma takiej kolumny questionmark.gif

Pozdrawiam
ttb
Cytat(kantek @ 9.04.2009, 22:00:54 ) *
To skąd w 'status' w zapytaniu jak nie ma takiej kolumny questionmark.gif

Pozdrawiam



przepraszam, nie dopisałem... jest też status...
Darti
  1. SELECT * FROM (SELECT * FROM miasto WHERE miasto.STATUS='male' UNION SELECT * FROM wies WHERE wies.STATUS='male') AS cos ORDER BY cos.kod;


A swoją drogą zrobiłbym wszystko w jednej tabeli z dodatkową kolumną ENUM('miasto','wies')
ttb
Cytat(Darti @ 9.04.2009, 22:07:56 ) *
  1. SELECT * FROM (SELECT * FROM miasto WHERE miasto.STATUS='male' UNION SELECT * FROM wies WHERE wies.STATUS='male') AS cos ORDER BY cos.kod;


A swoją drogą zrobiłbym wszystko w jednej tabeli z dodatkową kolumną ENUM('miasto','wies')



rozumiem do momentu... AS cos ORDER BY cos.kod.... co ma być jako to "cos"?
piotrooo89
to jest alias. taka tymczasowa nazwa wyświetlanej kolumny.
ttb
nadal nie działa
piotrooo89
pokaż kod który nie działa i daj or die(mysql_error())
ttb
Cytat(piotrooo89 @ 9.04.2009, 22:26:02 ) *
pokaż kod który nie działa i daj or die(mysql_error())



daje mi to: Parse error: syntax error, unexpected '>' in /home.... on line 46
a w tej linii mam: echo '"<center><table border=1>"';

ma ktoś jeszcze jakiś pomysł?
kantek
Proszę rozwiązanie:

edit: u mnie w tabelach bazy 'nazwa', a u Ciebie w tabelach 'miasto' to sobie poprawisz smile.gif
  1. <?php
  2. mysql_connect('localhost','root','xxx');
  3.    mysql_select_db('miasto');
  4.    
  5.    //zapytanie autorstwa ttb [respect :) ]
  6.    $zapytanie = "SELECT * FROM (SELECT * from miasto WHERE miasto.status='male' ";
  7.    $zapytanie .= "UNION SELECT * from wies WHERE wies.status='male') AS cos ORDER BY cos.kod";
  8.  
  9.    if($result = mysql_query($zapytanie)){
  10.  
  11.        echo '<table><tr><td>Miejscowosc</td><td>Kod</td></tr>';
  12.        while($dane = mysql_fetch_assoc($result)){
  13.        echo '<tr><td>'.$dane['nazwa'].'</td><td>'.$dane['kod'].'</td></tr>';
  14.        }
  15.        echo '</table>';
  16.    }
  17. ?>


Pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.