Autor Zpráva
FEIL
Profil
Chcel by som sa opýtať prečo vo verzií 7.01.01 my nasledovný skript funguje a v 7.02.xx nefunguje.

$vypis = dbarray(mysql_query("SELECT * FROM liga_hleda WHERE liga='".$_GET["id"]."'"));
if ($vypis["liga"] == $_GET["id"]) {
$kontrolka = "0";
$hleda_result = mysql_query("SELECT * FROM liga_hleda WHERE liga='".$_GET["id"]."'");
while($hleda = mysql_fetch_array($hleda_result)){ 
$hodina = Date("H");
$minuta = Date("i");
if ($hodina >= $hleda["hod"] && $minuta > $hleda["min"] ) { $result = mysql_query("DELETE FROM liga_hleda WHERE id='".$hleda["id"]."'"); } 

Ked uplynie čas zadaný v hľadaní v 7.02 sa vôbec nevykoná zmazanie hľadania. Stále sa uskutoční výpis.
AM_
Profil
v tomhle kódu jsou jen čistě funkce PHP bez použití čehokoli z PHPFusion. Dokonce se ani nic nevypisuje, takže jestli se uskuteční nějaký výpis, je to spíš divné.

Když se na to ale teď dívám - problém bude podstatně jednodušší :) co když v databázi je čas "8:30" a aktuální čas je "9:20"? pak rozhodně neplatí, že minuta > hleda[min], přitom už ale čas 8:30 uplynul.

Několik dalších poznámek:
- MySQL databáze má datový typ "TIME", který je rozhodně vhodnější pro ukládání data, než ukládat zvlášť hodinu a minutu.
- co dělá funkce dbarray()? to samé, co mysql_fetch_array() (a má zmást nepřítele) ?
FEIL
Profil
Celkovo to vyzerá takto:
  // kontroluji jestli je clen registrovan v dane lize
$kontrola = dbarray(mysql_query("SELECT * FROM liga_users WHERE id='".$userdata["user_id"]."' AND liga='".$_GET["id"]."'"));
/*if ($kontrola["liga"] != $_GET["id"]) { echo "<center><tr><td>V tejto lige niesi zaregistrovaný.</td></tr></center>"; }
else {*/
// kontroluje jestli liga existuje
$vypis = dbarray(mysql_query("SELECT * FROM liga_hleda WHERE liga='".$_GET["id"]."'"));
if ($vypis["liga"] == $_GET["id"]) {
$kontrolka = "0";
$hleda_result = mysql_query("SELECT * FROM liga_hleda WHERE liga='".$_GET["id"]."'");
while($hleda = mysql_fetch_array($hleda_result)){ 
$hodina = Date("H");
$minuta = Date("i");
if ($hodina >= $hleda["hod"] && $minuta > $hleda["min"] ) { $result = mysql_query("DELETE FROM liga_hleda WHERE id='".$hleda["id"]."'"); } 
else {  
if ($hleda["aktivni"] == "1") {
$kontrolka = "1";
$enemy = dbarray(mysql_query("SELECT * FROM liga_users WHERE id='".$userdata["user_id"]."' AND liga='".$_GET["id"]."'"));
$enemyklan = dbarray(mysql_query("SELECT * FROM liga_klany WHERE id='".$enemy["klan_id"]."'"));
echo "   <tr>
            <td>".$hleda["klan"]."</td>
            <td>".$hleda["body"]."</td>
            <td>".$hleda["cas"]."</td>
            <td>";if ($hleda["server"] == "1") { echo "Máme"; } else { echo "Nemáme"; } echo "</td>
            <td>".$hleda["mapa"]."</td>
            <td><form action='".BASEDIR."liga/?page=prijmout+hledani&id=".$_GET["id"]."' method='post'>
kod samozrejme pokračuje ešte dalej.

AM:
Když se na to ale teď dívám - problém bude podstatně jednodušší :) co když v databázi je čas "8:30" a aktuální čas je "9:20"? pak rozhodně neplatí, že minuta > hleda[min], přitom už ale čas 8:30 uplynul.

V tomto máš pravdu toho som si nevšimol tým pádom podmienka neplatí hlavne ked je tam AND

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: