Arată versiune īntreagă : Ajutor php
Andreiutzu
29.07.2009, 20:18
Salut.
Acum lucrez la un site al suporterilor echipei locale de fotbal.
Am reusit sa fac o mare parte din el insa am o problema.
Am facut un panou (un fel de modul joomla/wp etc) care sa arate ultimele rezultate ale meciurilor din baza de date.
In baza de date meciurile sunt ordonate pe etape intr-un singur tabel. Ele mai au o valoare "Jucat" care, se modifica odata cu introducerea rezultatului din admin-area (din "Nu" devine "Da").
Eu vreau ca acel script sa ia datele din baza de datein functie de etape si de valoarea "Jucat".
De exemplu: Eu vreau sa arate meciurile din etapa 2. Apoi cand toate meciurile din acea etapa au la "Jucat" valoarea "Da" sa arate meciurile din etapa urmatoare. Si tot asa.
Vreau ca acest lucru sa se intampla fara sa modific eu prin query (sa pun in loc de etapa='2', etapa='3').
Are cineva vreo idee cum as putea face?
Daca nu ati inteles ce vreau sa fac ziceti-mi si mai explic odata.
Multumesc!
Daca ai pune si un cod sursa , poate te-am putea ajuta .
Andreiutzu
29.07.2009, 20:28
$etapa = mysql_query("SELECT * FROM meciuri WHERE etapa='1' order by data ASC LIMIT 0,9");
while($s = mysql_fetch_array($etapa)){
$gazde = $s["gazda"];
$oaspeti = $s["oaspeti"];
$go = $s["go"];
$gg = $s["gg"];
echo"
<tr><td>$gazde</td><td> </td><td><b>$gg</b></td><td> - </td><td><b>$go</b></td><td> </td><td> $oaspeti</td></tr>
";
}
Nu vreau sa mai definesc eu acea variabila (etapa='1') ci sa mearga automat cum am spus in primul post.
nu stiu exact unde , dar cred ca cu o instructiune IF . Si cred ca nu ai postat tot codul ...
Andreiutzu
29.07.2009, 21:02
Asta e codul codul care ia rezultatele din baza de date.
La un If m-am gandit si eu insa nu am nicio idee unde sa-l pun si ce sa faca
micku7zu
29.07.2009, 21:18
Nu l-am testat dar sper sa mearga
<?php
$r=mysql_fetch_array(mysql_query("SELECT * FROM `meciuri` ORDER BY etapa DESC LIMIT 1"));
$numaretape=$r['etapa'];
for($i=1;$i<=$numaretape;$i++){
$cate=mysql_num_rows(mysql_query("SELECT * FROM `meciuri` WHERE etapa='$i' and Jucat='Nu'"));
if($cate != 0)
{
$etapa = mysql_query("SELECT * FROM meciuri WHERE etapa='$i' order by data ASC LIMIT 0,9");
while($s = mysql_fetch_array($etapa))
{
$gazde = $s["gazda"];
$oaspeti = $s["oaspeti"];
$go = $s["go"];
$gg = $s["gg"];
echo"
<tr><td>$gazde</td><td> </td><td><b>$gg</b></td><td> - </td><td><b>$go</b></td><td> </td><td> $oaspeti</td></tr>
";
break;
}
}
}
?>
Explicatia la cod : Soate din baza de date numarul de etape ( face un select order by etapa descresctor si scot etapa) ... dupa aceea fac un for de la 1 pana la numarul etapelor . Fac un selelct in baza de date unde etapa este egal cu $i si Juca='nu' , iar daca ce a scos este diferit de 0 (adica exiista 1 meci sau mai multe care nu au jucat='da') face selectul pentru etapa $i si opreste for-ul iar daca toate meciurile = da trece mai departe la urmatoarea etapa .
Scuzati eventualele greseli gramaticale.Ma grabesc...
Edit : Asteptam raspuns daca a functionat sau daca nu a functionat ce eroare iti da , sau care e problema .
Edit2: Am vazut ca ai dat multumesc , deci merge ?:)
Andreiutzu
29.07.2009, 21:47
L-am pus dar nu merge. Imi arata doar 2 meciuri.
micku7zu
29.07.2009, 21:50
Greseala mea , break-ul trebuia pus cand este indeplinit if , nu la while .
<?php
$r=mysql_fetch_array(mysql_query("SELECT * FROM `meciuri` ORDER BY etapa DESC LIMIT 1"));
$numaretape=$r['etapa'];
for($i=1;$i<=$numaretape;$i++)
{
$cate=mysql_num_rows(mysql_query("SELECT * FROM `meciuri` WHERE etapa='$i' and Jucat='Nu'"));
if($cate != 0)
{
$etapa = mysql_query("SELECT * FROM meciuri WHERE etapa='$i' order by data ASC LIMIT 0,9");
while($s = mysql_fetch_array($etapa))
{
$gazde = $s["gazda"];
$oaspeti = $s["oaspeti"];
$go = $s["go"];
$gg = $s["gg"];
echo "<tr><td>$gazde</td><td> </td><td><b>$gg</b></td><td> - </td><td><b>$go</b></td><td> </td><td> $oaspeti</td></tr>";
}
break;
}
}
?>
Ar trebuii sa mearga...
Edit : Cu placere :)
Andreiutzu
29.07.2009, 22:02
Merge.
Multumesc micku7zu pentru ajutor.
Puteti inchide topicul.
Powered by vBulletin® Version 4.1.12 Copyright © 2012 vBulletin Solutions, Inc. Toate drepturile rezervate.
Traducere vBulletin® īn Romānă roStyles Design LLC