| 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: 14 let
|
|||
0