Autor | Zpráva | ||
---|---|---|---|
dawe27 Profil |
#1 · Zasláno: 14. 3. 2012, 19:41:13
cau, potřeboval bych poradit mám v MYSQL tabulku "zapasy" a tabulku "tymy" v zapasech mam sloupce team_id1 a team_id2 a v tymech pak team_name, udělal jsem si script který by měl vypsat zápasy ale vypíše to uplně jiný název týmu než má (ne podle id)
<?php require_once("settings.php"); require_once "inc/header.php"; $ligaid = $_GET["ligaid"]; ob_start(); if($ligaid == 0 ){ echo "<table border='0' width='450'>\n"; $data2= mysql_query ("select * from ligy "); while ($data3= MySQL_Fetch_Array($data2)) { echo "<tr>\n"; echo "<td>".$data3["nazev_ligy"]."</td>\n"; echo "<td><a href='".$_SERVER["PHP_SELF"]."?ligaid=".$data3["id_ligy"]."'>Zobrazit Zápasy</a></td>\n"; echo "</tr>\n"; } echo "</table>\n"; } if($ligaid == $ligaid ){ $data=mysql_query ("select * from zapasy WHERE liga_id = '".mysql_real_escape_string($ligaid)."' ORDER BY zapas_id "); $data4=mysql_query ("select tymy.team_name ,zapasy.team_id1 from tymy,zapasy WHERE tymy.team_id=zapasy.team_id1 "); $data6=mysql_query ("select tymy.team_name ,zapasy.team_id1 from tymy,zapasy WHERE tymy.team_id=zapasy.team_id2 "); while ($data1= MySQL_Fetch_Array($data) and $data5= MySQL_Fetch_Array($data4) and $data7= MySQL_Fetch_Array($data6)) { ?> <? echo $data5["team_name"] ;?> <strong><? echo $data1["skore_1"] ;?> <? echo " :" ;?> <? echo $data1["skore_2"] ;?></strong> <? echo $data7["team_name"] ;?> <p><? echo $data1["coment"];?></p> <? } } $obsah= ob_get_clean(); require_once "inc/theme.php"; require_once "inc/footer.php"; ?> |
||
Taps Profil |
#2 · Zasláno: 14. 3. 2012, 19:51:58
dawe27:
můžeš použít join, viz níže select t.*,z.* from zapasy z left join tymy d on z.team_id1=d.id left join tymy h on z.team_id2=h.id |
||
dawe27 Profil |
#3 · Zasláno: 14. 3. 2012, 21:07:57
neporadil bys mi jak to dosadit di skriptu? jaksika se v tom nevyznam a vypsalo mi to chyby
|
||
dawe27 Profil |
#4 · Zasláno: 15. 3. 2012, 16:02:53
Skoušel jsem to nastudovat na linuxsoftu, ale pořad nevím co stim, možna by mi pomohlo kdyby mi někdo napsal co znamena co v tom joinu
|
||
Taps Profil |
#5 · Zasláno: 15. 3. 2012, 17:29:27
dawe27:
join se používá pro spojování tabulek |
||
dawe27 Profil |
#6 · Zasláno: 15. 3. 2012, 18:12:25
to vim, ja myslel jak to přesně funguje
|
||
panther Profil |
#7 · Zasláno: 15. 3. 2012, 22:37:46
dawe27:
tabulka1 t1 join tabulka2 t2 on t1.id = t2.nazev_sloupce Volně přeloženo to znamená: Spoj tabulky tabulka1 a tabulka2, kde hodnota sloupce id z tabulky1 se rovná hodnotě sloupce nazev_sloupce z tabulky2. Zrovna na linuxsoftu je toto popsáno poměrně slušně, ono se to moc jinak vysvětlit nedá. |
||
dawe27 Profil |
#8 · Zasláno: 16. 3. 2012, 13:17:01
zapsal jsem to takto
<?php require_once("settings.php"); require_once "inc/header.php"; $ligaid = $_GET["ligaid"]; ob_start(); if($ligaid == 0 ){ echo "<table border='0' width='450'>\n"; $data2= mysql_query ("select * from ligy "); while ($data3= MySQL_Fetch_Array($data2)) { echo "<tr>\n"; echo "<td>".$data3["nazev_ligy"]."</td>\n"; echo "<td><a href='".$_SERVER["PHP_SELF"]."?ligaid=".$data3["id_ligy"]."'>Zobrazit Zápasy</a></td>\n"; echo "</tr>\n"; } echo "</table>\n"; } if($ligaid == $ligaid ){ $data=mysql_query ("select t.*,z.* from zapasy z left join tymy d on z.team_id1=d.id left join tymy h on z.team_id2=h.id ORDER BY zapas_id"); while ($data1= MySQL_Fetch_Array($data)) { ?> <? echo $data1["team_name"] ;?> <strong><? echo $data1["skore_1"] ;?> <? echo " :" ;?> <? echo $data1["skore_2"] ;?></strong> <? echo $data1["team_name"] ;?> <p><? echo $data1["coment"];?></p> <? } } $obsah= ob_get_clean(); require_once "inc/theme.php"; require_once "inc/footer.php"; ?> a vyhodilo mi to error: Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/users/dawe27/db27.hys.cz/web/zapasy.php on line 20 |
||
Časová prodleva: 3 dny
|
|||
dawe27 Profil |
#9 · Zasláno: 19. 3. 2012, 15:55:01
poradil by mi někdo prosimvas? ja si s tim sam nevim rady
|
||
Taps Profil |
#10 · Zasláno: 20. 3. 2012, 21:20:46
dawe27:
a co ti zobrazí mysql_error ? $data=mysql_query ("select t.*,z.* from zapasy z left join tymy d on z.team_id1=d.id left join tymy h on z.team_id2=h.id ORDER BY zapas_id") or die (mysql_error()); |
||
dawe27 Profil |
#11 · Zasláno: 21. 3. 2012, 15:43:48
Unknown table 't'
|
||
panther Profil |
#12 · Zasláno: 21. 3. 2012, 20:24:32
dawe27:
select d.*,z.* ... Ten Tapsův dotaz jsem nezkoumal, pouze upravuji jeho překlep. |
||
dawe27 Profil |
#13 · Zasláno: 21. 3. 2012, 21:54:32
dotaz jsem prozkoumal ale moc mu nerozumím, ted to piše toto
Unknown column 'd.id' in 'on clause' |
||
Someone Profil |
Ty máš v Databázi tabulku se jménem "d" ? (Unknown column 'd.id' in 'on clause')
|
||
Tori Profil |
dawe27:
V JOIN ON ... je totéž, co máte v [#1] v části WHERE (protože i v [#1] spojujete tabulky, takže podmínka pro spojení bude stejná). S jedním delším dotazem akorát nebudete tahat z DB názvy všech týmů, ale jen přesně ty, které potřebujete (= bude to rychlejší). Tohle by snad mělo fungovat. Názvy týmů jsou aliasované jako "team_name_1" a "team_name_2", aby se to nepletlo. mysql_query("select z.skore_1, z.skore_2, z.coment, d.team_name AS 'team_name_1', h.team_name AS 'team_name_2' from zapasy z left join tymy d on z.team_id1 = d.team_id left join tymy h on z.team_id2 = h.team_id where z.liga_id = ".intval($ligaid)." ORDER BY z.zapas_id"); |
||
dawe27 Profil |
#16 · Zasláno: 22. 3. 2012, 16:39:06
mysql_query("select z.skore_1, z.skore_2, z.coment, d.team_name AS 'team_name_1', h.team_name AS 'team_name_2' from zapasy z left join tymy d on z.team_id1 = d.team_id left join tymy h on z.team_id2 = h.team_id where z.liga_id = ".intval($ligaid)." ORDER BY z.zapas_id"); |
||
Časová prodleva: 11 let
|
0