Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Zapytanie złożone, ale nie wychodzi...
Forum PHP.pl > Forum > Przedszkole
ddiieesseell
Witam wszystkich.

Mam prośbę o pomoc, ponieważ nie potrafię poprawnie skonstruować zapytania do dwóch tabel.

Tabela 1 (t1) kolumny: nazwa, pesel, uj, egp1, egp2, egp3

Tabela 2 (t2) kolumny: termin, przedmiot

Głównym założeniem jest to żeby wyświetliło osobę której pesel zgadza się z GET, i wyświetlenie uj, egp1, egp2, egp3, egp4 i obok nich odpowiedniego terminu (z t2) gdzie przedmiot=uj i egp1..3 (takie przypasowanie terminów do przedmiotów)

Mam takie coś:

Kod
SELECT * FROM matury, terminy WHERE matury.pesel=$_GET[pesel] AND terminy.przedmiot=matury.uj AND terminy.przedmiot=matury.egp1 AND terminy.przedmiot=matury.egp2 AND terminy.przedmiot=matury.egp3


ale nie zwraca mi żadnego wyniku.

Pomocy!
nexis
Możesz zaprezentować przykładowe dane i co chciałbyś otrzymać, bo po twoich skrótach oznaczeń pól nie mogę zrozumieć problemu.
tomm
jeden z błędów to nie $_GET[pesel] tylko $_GET['pesel']
druga rzecz: w tabeli matury pesel jaki ma typ?
ddiieesseell
matury ma np:

nazwa: jan kowalski

pesel:12345678901

uj:Język angielski

egp1 Bioloiga

egp2 Geografia

egp3 brak

(i inne podobne rekordy)

a w terminy:

przedmiot: Język angielski termin: 01-01-2001 8:30

Przedmiot: Biologia termin: 01-02-2001 9:30

Przedmiot: Geografia termin: 01-03-2001 11:20

Przedmiot: Chemia termin: 01-04-2001 12:30

i inne przedmioty i terminy



a pesel ma typ bigint(12)
tomm
musiałbyś mieć we wszystkich tych polach terminy.przedmiot, matury.uj, matury.egp1, matury.egp2 i matury.egp3 tą samą wartość np. angielski żeby coś zwróciło. Natomiast jeśli chodzi ci o to by zwróciło wyniki gdy choć jedno pole z tabeli matury będzie zgodne z terminy.przedmiot to użyj OR zamiast AND.

SELECT * FROM matury, terminy WHERE matury.pesel=$_GET[pesel] AND (terminy.przedmiot=matury.uj OR terminy.przedmiot=matury.egp1 OR terminy.przedmiot=matury.egp2 OR terminy.przedmiot=matury.egp3)

Zanim wprowadzisz jakieś zmiany wrzuć sobie linijkę
echo mysql_error()
po wywołaniu mysql_query()
ddiieesseell
We wszystkich polach mam te same wartości (znaczy zestaw z terminy.przedmioty zgadza się z matury.egp1...3)

Ale chodzi mi o to żeby wyszystkie terminy mi dopasowało do przedmiotów i wyświetliło właściwy termin przy właściwym przedmiocie.

W tym momencie przy przedmiotach wyświetlana jest ta sama data.

CODE

<?php

$db = mysql_connect ("localhost", "login", "hasło");
mysql_select_db ("baza1");
$wykonaj = mysql_query ("SELECT * FROM matury, terminy WHERE matury.pesel=$_GET[pesel] AND (terminy.przedmiot=matury.uj OR terminy.przedmiot=matury.egp1 OR terminy.przedmiot=matury.egp2 OR terminy.przedmiot=matury.egp3 OR terminy.przedmiot=matury.egp4)");

while($wiersz=mysql_fetch_array ($wykonaj)) {

echo "

<table border=\"0\" width=\"90%\" align=\"center\">
<tr>
<td colspan=\"4\">Egzaminy abiturienta:</td>
</tr>
<tr>
<td colspan=\"2\" nowrap><b>".$wiersz['nazwa']."</b></td>
<td align=\"right\">PESEL:</td>
<td nowrap><b>".$wiersz['pesel']."</b></td>
</tr>
<tr>
<td colspan=\"4\">&nbsp;</td>
</tr>
<tr>
<td colspan=\"4\">Egzaminy ustne:</td>
</tr>
<tr>
<td nowrap>Język polski:</td>
<td colspan=\"2\" nowrap>Termin: <b>".$wiersz['upo']."</b></td>
<td>Sala:<b> ".$wiersz['upos']."</b></td>
</tr>
<tr>
<td nowrap>".$wiersz['uj']."</td>
<td colspan=\"2\" nowrap>Termin: <b>".$wiersz['ujo']."</b></td>
<td>Sala:<b> ".$wiersz['ujos']."</b></td>
</tr>
<tr>
<td colspan=\"4\">&nbsp;</td>
</tr>
<tr>
<td colspan=\"4\" nowrap>Egzaminy pisemne:</td>
</tr>
<tr>
<td nowrap>Język polski:</td>
<td colspan=\"2\" nowrap>Termin: <b>".$wiersz['termin']."</b></td>
<td>Sala:<b>".$wiersz['ppos']."</b></td>
</tr>
<tr>
<td nowrap><b>".$wiersz['uj'].":</b></td>
<td colspan=\"2\" nowrap>Termin: <b>".$wiersz['termin']."</b></td>
<td>Sala:<b> ".$wiersz['pjos']."</b></td>
</tr>
<tr>
<td nowrap><b>".$wiersz['egp1']."</b></td>
<td colspan=\"2\" nowrap>Termin: <b>".$wiersz['termin']."</b></td>
<td>Sala:<b> ".$wiersz['egp1s']."</b></td>
</tr>
<tr>
<td nowrap><b>".$wiersz['egp2']."</b></td>
<td colspan=\"2\" nowrap>Termin: <b>".$wiersz['termin']."</b></td>
<td>Sala:<b> ".$wiersz['egp2s']."</b></td>
</tr>
<tr>
<td nowrap><b>".$wiersz['egp3']."</b></td>
<td colspan=\"2\" nowrap>Termin: <b>".$wiersz['termin']."</b></td>
<td>Sala:<b> ".$wiersz['egp3s']."</b></td>
</tr>
<tr>
<td nowrap><b>".$wiersz['egp4']."</b></td>
<td colspan=\"2\" nowrap>Termin: <b>".$wiersz['termin']."</b></td>
<td>Sala:<b> ".$wiersz['egp4s']."</b></td>
</tr>
<tr>
<td colspan=\"4\">&nbsp;</td>
</tr>
<tr>
<td colspan=\"4\">Uwagi:</td>
</tr>
<tr>
<td colspan=\"4\"><b>".$wiersz['uwagi']."</b></td>
</tr>
</table>

";}
mysql_close ($db);
?>
-tomm-
mógłbyś wrzucić tutaj jakiś screen z tabeli matury, choćby z 2, 3 rekordy?
ddiieesseell
Dam kod w htmlu zawartości tej tabelki bo nie chce mi się dołączać zdjęć.

CODE


<table>

<tr><td>nazwa</td><td> pesel </td><td>upo </td><td>upos</td><td> ujo </td><td>ujos</td><td> uj </td><td>ppos </td><td>pjo </td><td>pjos </td><td>egp1 </td><td>egp1s </td><td>egp2</td><td> egp2s</td><td> egp3</td><td> egp3s </td><td>egp4</td><td> egp4s</td><td> uwagi </td></tr>

<tr><td>Jan Kowalski</td>
<td> 89000000000</td>
<td> 2008-01-01 00:30:00</td><td> 7</td><td> 2008-01-01 01:30:00 </td><td>5 </td><td>Język niemiecki </td><td>7 </td><td>2008-08-08 05:30:00 </td><td>15</td><td> Biologia </td><td>7 </td><td>Fizyka i astronomia </td><td>56 </td><td>Chemia </td><td>12 </td><td>brak</td><td> 0 </td></tr> 

<tr><td>Janina Nowak </td>
<td>89000000123 </td>
<td>2008-05-06 08:30:00 </td><td>114</td><td> 2008-05-19 10:00:00</td><td> 207 </td><td>Język angielski </td><td>7 </td><td>2008-05-03 00:00:00 </td><td>107 </td><td>Chemia</td><td> 7 </td><td>Biologia </td><td>7 </td><td>Fizyka i astronomia</td><td> 207 </td><td>brak </td><td>0 </td><td>dysleksja</td></tr>

</table>







Czy ktoś mi pomoże? Jestem naprawdę zdesperowany!!!
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.