Autor | Zpráva | ||
---|---|---|---|
Alastor_Kopal Profil |
#1 · Zasláno: 11. 7. 2009, 18:25:14
Napsal jsem si php script - http://www.magic-quest.kx.cz/game/5.txt
Jak můžete vidět Připojím se do databáze Zobrazím všechny uživatele s 'misto' = 5 Potom pomocí klávesnice odešlu metodou get na jakou stranu mám jít case 37: location.href= '5.php?smer=1'; break; // bola stlačená šípka doľava A tohle je už zpracování smeru 1 if($_GET['smer'] == 1){$vysledek1 = $sloupec - 10; mysql_query("UPDATE dobro SET sloupec=$vysledek1 where id='$id'");} Myslím že by to měl být normální plně funkční script ale hodnota se mění různě (někdy musím šipku zmáčknout po páté než se to zpracuje - v čem je chyba ?) Děkuji ___________________________________________________________________________ Omluvám se za přízpěvek http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=3&topic=96371 nechtěl jsem to sdělit takovou formou ! a děkuji za přízpěvek uživatele Bubáka - díky jeho přízpěvku jsem si začal připadat jako outsider a začal hledat chyby ve svých scriptech. Tím jsem zjistil kolik toho ještě o php nevím a začal jsem se učit PHP děkuji |
||
Alphard Profil |
#2 · Zasláno: 12. 7. 2009, 00:24:53
Ten kód (trochu očesaný) není tak dlouhý, aby se sem nemohl dát.
<?php // připojení k databázi $vysledek=mysql_query("select * from dobro where misto=5"); while ($zaznam=MySQL_Fetch_Array($vysledek)): ?> <span style="position: absolute; top: <?php echo $zaznam["radek"]; ?>px; left: <?php echo $zaznam["sloupec"]; ?>px;"><img src="<?php echo $zaznam["vzhled"]; ?>" title="<?php echo $zaznam["jmeno"]; ?>" alt="<?php echo $zaznam["jmeno"]; ?>"></span> <?php endwhile; session_start(); //nastartujeme session if($_SESSION['zdravi'] == 0){header("location: death.php");} else{} $sloupec = $_SESSION['sloupec']; $radek = $_SESSION['radek']; $zdravi = $_SESSION['zdravi']; $id = $_SESSION['id']; if($_GET['smer'] == 1) {$vysledek1 = $sloupec - 10; mysql_query("UPDATE dobro SET sloupec=$vysledek1 where id='$id'");} elseif($_GET['smer'] == 2){$vysledek2 = $radek - 10; mysql_query("UPDATE dobro SET radek=$vysledek2 where id='$id'");} elseif($_GET['smer'] == 3){$vysledek3 = $sloupec + 10; mysql_query("UPDATE dobro SET sloupec=$vysledek3 where id='$id'");} elseif($_GET['smer'] == 4){$vysledek4 = $radek + 10; mysql_query("UPDATE dobro SET radek=$vysledek4 where id='$id'");} elseif($_SESSION['radek'] == 100){$_SESSION['zdravi'] = $zdravi - 2; mysql_query("UPDATE dobro SET radek=$vysledek where id='$id'");} else{} if($_SESSION['radek'] == 80){$_SESSION['zdravi'] = 0;} elseif($_SESSION['radek'] == 90){$_SESSION['zdravi'] = 0;} elseif($_SESSION['radek'] == 100){$_SESSION['zdravi'] = $zdravi - 2;} else{} ?> <body onkeydown="prechod(event);" bgcolor="black"> <script> function prechod(event) { switch(event.keyCode) { case 37: location.href= '5.php?smer=1'; break; // bola stlačená šípka doľava case 38: location.href= '5.php?smer=2'; break; // bola stlačená šípka hore case 39: location.href= '5.php?smer=3'; break; // bola stlačená šípka doprava case 40: location.href= '5.php?smer=4'; break; // bola stlačená šípka dole } } </script> <meta http-equiv="refresh" content="50;url=5.php"> <?php session_start(); //nastartujeme session $vzhled = $_SESSION['vzhled']; $radek = $_SESSION['radek']; $sloupec = $_SESSION['sloupec']; //ted zařadíme uživatele do některého čtverce if($_SESSION['misto'] == "5") //kod pro místo 5 {echo" <style type=\"text/css\"> </style>"; echo' <div id="pozadi-hra"></div> ';} else{echo'<br><br><br><p style="text-align: center; color: red; font-size: x-large;">Vaše teleportace na místo kde jste přestal hrát<br>se nepovedla prosím kontaktujte admina - GolemX2@centrum.cz</p>';} // to co se zobrazí když uživatel bude mít v session místo číslici kterou nedokážeme odhalit ?> Ten zdroj mi připadá zmatený, 2x session_start() atd. Různě si vypisujte proměnné, kontrolujte je a hledejte nesrovnalosti. Např. na první pohled mi není jasné, proč $sloupec a $radek ukládáte do session, a navíc nikde nevidím jejich aktualizaci. Podle mě by mělo stačilo něco ve stylu: elseif($_GET['smer'] == 3) mysql_query("UPDATE dobro SET sloupec=slouopec+10 where id=$id"); K té vaší poznámce. Nevidím důvod to tady vytahovat a zdůrazňovat. (Snad se zas tolik nestalo) Někdo o tom ví, někdo ne, a tak bych to nechal. S tímto tématem to nesouvisí. |
||
Alastor_Kopal Profil |
#3 · Zasláno: 12. 7. 2009, 09:57:55
a odkud mám brát výchozí hodnotu od které přičítám nebo odečítám - bez session se neobejdu
|
||
Alphard Profil |
#4 · Zasláno: 12. 7. 2009, 10:03:07
Alastor_Kopal:
„a odkud mám brát výchozí hodnotu od které přičítám nebo odečítám“ Ta ukázka přičte 10 k současné hodnotě v databázi. Pochopil jsem to tak, že je to dostačující, ale může to být chybná úvaha. |
||
Alastor_Kopal Profil |
#5 · Zasláno: 12. 7. 2009, 10:05:51
Ano přičte nebo odečte 10 k 'sloupec' nebo 'radek'
|
||
Alastor_Kopal Profil |
#6 · Zasláno: 12. 7. 2009, 10:41:54
if($_GET['smer'] == 1){mysql_query("UPDATE dobro SET sloupec=$sloupec-10 where id='$id'"); $_SESSSION['sloupec'] = $sloupec - 10;} nic to nedělá nevim |
||
Aesir Profil |
#7 · Zasláno: 12. 7. 2009, 13:06:17
Alastor_Kopal:
„nic to nedělá nevim“ Buď se to do této větve vůbec nedostane nebo updatujete něco jiného, než si myslíte (neočekávaná hodnota $id?). Projděte to nějakým debuggerem, tohle je hledání naslepo. |
||
Časová prodleva: 15 let
|
0