Rinox Skrevet 10. april 2007 Del Skrevet 10. april 2007 (endret) Hei, alle sammen! Jeg har laget et script helt fra bunnen av, men det virker visst ikke helt. Skripet kan dere se her: Klikk for å se/fjerne innholdet nedenfor <?php ob_start(); include('config.php'); if(!$logged[username]) { echo("Du er ikke innlogget!"); } # If User Isnt Logged In else{ $result = mysql_query('SELECT id FROM users WHERE username = '.quote_smart($logged['username'])); $resultObj = mysql_fetch_object($result); $bruker_id = $resultObj->id; $pris = 5000; $checkaccess = mysql_query("SELECT id FROM fight_info WHERE id=$bruker_id"); $checkaccess= mysql_num_rows($checkaccess); if ($checkaccess == 0) { echo("Du har ikke tilgang til å besøke den kongelige arenaen. Det koster $pris mynter.<br><br>"); echo("<form action='?side=fightlist&go=fightlist&act=kjopTilgang' method='post'><input type='submit' value='Kjøp tilgang'></form>"); } else { mysql_query("DELETE FROM fight_list WHERE `timestamp` < " . (time() - 300)) or die(mysql_error()); echo("<form action='?side=fightlist&go=fightlist&act=trening' method='post'> <input type='radio' name='trening' value='2'>Styrketrening - 3 minutter ventetid - 2%<br> <input type='radio' name='trening' value='4'>Slåss med dukke - 6 minutter ventetid - 4%<br> <input type='radio' name='trening' value='7'>Slåss med trener - 9 minutter ventetid - 7%<br> <br><input type='submit' value='Utfør trening'></form>"); echo("<form action='?side=fightlist&go=fightlist&act=nykamp' method='post'><input type='submit' value='Gå til kamp!' /></form>"); echo("Brukere som er klare for kamp (alle eldre enn 5 minutter blir slettet):<br><br>"); $brukersporring = "SELECT f.id, f.timestamp, u.id, u.username FROM fight_list e INNER JOIN fight_list f USING (id) INNER JOIN users u USING (id)"; $result = mysql_query($brukersporring) or die("Error: " . mysql_error()); while ($line = mysql_fetch_row($result)) { echo "<b>" . $line[3] . "</b><br>"; } mysql_free_result($result); } switch($_GET[act]) { case 'nykamp': mysql_query("DELETE FROM fight_list WHERE `timestamp` < " . (time() - 300)) or die(mysql_error()); $query = "SELECT id FROM fight_list WHERE id = '". $bruker_id ."'"; $result = mysql_query($query) or die("Error: " . mysql_error()); while ($line = mysql_fetch_row($result)) { $check = $line[0]; } mysql_free_result($result); if (!empty($check)) { echo "<br><b>Du er allerede klar for kamp.</b>"; } else { mysql_query("INSERT INTO fight_list (id ,`timestamp`) VALUES($bruker_id, " . time() . ")") or die(mysql_error()); $brukersporring = "SELECT f.id, f.timestamp, u.id, u.username FROM fight_list e INNER JOIN fight_list f USING (id) INNER JOIN users u USING (id)"; $result = mysql_query($brukersporring) or die("Error: " . mysql_error()); while ($line = mysql_fetch_row($result)) { echo "<b>" . $line[3] . "</b><br>"; } mysql_free_result($result); echo("<br><b>Du er nå klar for kamp!</b>"); } break; case 'trening': $trening = $_POST["trening"]; $sql = mysql_query("SELECT * FROM fight_info"); $row = mysql_fetch_object($sql); if ( ($row->percent + $trening) >= 100) { $fields = 'percent = ' . ($row->percent + $trening - 100) . ', level = ' . $row->level++; } else { $fields = 'percent = ' . ($row->percent + $trening); } mysql_query('UPDATE fight_info SET ' . $fields . 'WHERE id = ' . $bruker_id); break; case 'kjopTilgang': $result = mysql_query('SELECT lommebok FROM users WHERE username = '.quote_smart($logged['username'])); $resultObj = mysql_fetch_object($result); $lommebok = $resultObj->lommebok; if($lommebok < $pris) { echo("<b>Du har ikke nok penger i lommeboken.</b>"); } else { mysql_query("UPDATE users SET lommebok = (lommebok - $pris) WHERE username = '$logged[username]'"); mysql_query("INSERT INTO fight_info (id) VALUES ($bruker_id)") or die(mysql_error()); echo("<b>Du har betalt 5000 mynter og har fått tilgang til den kongelige kamparenaen.</b>"); } break; } } ?> Kodedelen med følgende kode tror jeg det er som svikter. Den skal hente informasjon fra øverste form i scriptet her og sette inn verdier i en tabell.. case 'trening': $trening = $_POST["trening"]; $sql = mysql_query("SELECT * FROM fight_info"); $row = mysql_fetch_object($sql); if ( ($row->percent + $trening) >= 100) { $fields = 'percent = ' . ($row->percent + $trening - 100) . ', level = ' . $row->level++; } else { $fields = 'percent = ' . ($row->percent + $trening); } mysql_query('UPDATE fight_info SET ' . $fields . 'WHERE id = ' . $bruker_id); break; Koden over er oppdatert. Det var visst feil.. Problemet er at verdiene ikke blir lagt inn i tabellen!! Jeg skjønner rett og slett ikke hva som er feilen her.. Noen som kan svaret her? Takker så mye for svar Endret 10. april 2007 av Rinox Lenke til kommentar
magicgunnar Skrevet 10. april 2007 Del Skrevet 10. april 2007 Får du noen feilmeldinger, warnings eller notices, eventuelt med disse to linjene i toppen: ini_set('error_reporting', E_ALL); ini_set('display_errors', 1); Lenke til kommentar
Rinox Skrevet 10. april 2007 Forfatter Del Skrevet 10. april 2007 Har oppdatert innlegget mitt.. Den ene koden jeg viste va feil. Har skrevet hvilken det var Lenke til kommentar
Ekko Skrevet 10. april 2007 Del Skrevet 10. april 2007 Jeg pleier å gjøre dette mysql_query("UPDATE users SET lommebok = (lommebok - $pris) WHERE username = '$logged[username]'"); på denne måten $sql = "UPDATE users SET lommebok = (lommebok - $pris) WHERE username = '$logged[username]'"; mysql_query($sql); //print "<BR>".$sql; Da kan du avkommentere print-linjen for å få skrevet ut den nøyaktige spørringen du gir til mysql. Så kan du prøve å kjøre denne spørringen direkte i mysql og se om du får samme resultatet da. Hvis du ikke finner ut av det da kan du evt komme tilbake med spørsmålet: Hvorfor gir ikke denne sql-spørringen: UPDATE users SET lommebok........; dette resultatet: blablabla Lenke til kommentar
Rinox Skrevet 10. april 2007 Forfatter Del Skrevet 10. april 2007 Fikk det til nå! Dette var feilen: I stedet for mysql_query('UPDATE fight_info SET ' . $fields . 'WHERE id = ' . $bruker_id); brukte jeg mysql_query("UPDATE fight_info SET $fields WHERE id = $bruker_id"); Lenke til kommentar
magicgunnar Skrevet 10. april 2007 Del Skrevet 10. april 2007 Morsomt hvor mye krøll ett manglende mellomrom kan gjøre Lenke til kommentar
Rinox Skrevet 10. april 2007 Forfatter Del Skrevet 10. april 2007 Hmm... Enda et problem dukket opp nå så jeg poster det her. Jeg har følgende script nå: Klikk for å se/fjerne innholdet nedenfor <?php ob_start(); include('config.php'); if(!$logged[username]) { echo("Du er ikke innlogget!"); } # If User Isnt Logged In else{ $result = mysql_query('SELECT id FROM users WHERE username = '.quote_smart($logged['username'])); $resultObj = mysql_fetch_object($result); $bruker_id = $resultObj->id; $pris = 5000; $checkaccess = mysql_query("SELECT id FROM fight_info WHERE id=$bruker_id"); $checkaccess= mysql_num_rows($checkaccess); if ($checkaccess == 0) { echo("Du har ikke tilgang til å besøke den kongelige arenaen. Det koster $pris mynter.<br><br>"); echo("<form action='?side=fightlist&go=fightlist&act=kjopTilgang' method='post'><input type='submit' value='Kjøp tilgang'></form>"); } else { mysql_query("DELETE FROM fight_list WHERE `timestamp` < " . (time() - 300)) or die(mysql_error()); echo("<form action='?side=fightlist&go=fightlist&act=trening' method='post'> <input type='radio' name='trening' value='2'>Styrketrening - 3 minutter ventetid - 2%<br> <input type='radio' name='trening' value='4'>Slåss med dukke - 6 minutter ventetid - 4%<br> <input type='radio' name='trening' value='7'>Slåss med trener - 9 minutter ventetid - 7%<br> <br><input type='submit' value='Utfør trening'></form>"); echo("<form action='?side=fightlist&go=fightlist&act=nykamp' method='post'><input type='submit' value='Gå til kamp!' /></form>"); echo("Brukere som er klare for kamp (alle eldre enn 5 minutter blir slettet):<br><br>"); $brukersporring = "SELECT f.id, f.timestamp, u.id, u.username FROM fight_list e INNER JOIN fight_list f USING (id) INNER JOIN users u USING (id)"; $result = mysql_query($brukersporring) or die("Error: " . mysql_error()); while ($line = mysql_fetch_row($result)) { echo "<b>" . $line[3] . "</b><br>"; } mysql_free_result($result); } switch($_GET[act]) { case 'nykamp': mysql_query("DELETE FROM fight_list WHERE `timestamp` < " . (time() - 300)) or die(mysql_error()); $query = "SELECT id FROM fight_list WHERE id = '". $bruker_id ."'"; $result = mysql_query($query) or die("Error: " . mysql_error()); while ($line = mysql_fetch_row($result)) { $check = $line[0]; } mysql_free_result($result); if (!empty($check)) { echo "<br><b>Du er allerede klar for kamp.</b>"; } else { mysql_query("INSERT INTO fight_list (id ,`timestamp`) VALUES($bruker_id, " . time() . ")") or die(mysql_error()); $brukersporring = "SELECT f.id, f.timestamp, u.id, u.username FROM fight_list e INNER JOIN fight_list f USING (id) INNER JOIN users u USING (id)"; $result = mysql_query($brukersporring) or die("Error: " . mysql_error()); while ($line = mysql_fetch_row($result)) { echo "<b>" . $line[3] . "</b><br>"; } mysql_free_result($result); echo("<br><b>Du er nå klar for kamp!</b>"); } break; case 'trening': $trening = $_POST["trening"]; $sql = mysql_query("SELECT * FROM fight_info") or die(mysql_error()); $row = mysql_fetch_object($sql) or die(mysql_error()); if ($trening = "2") { $venteminutter = "3"; } if ($trening = "4") { $venteminutter = "6"; } if ($trening = "7") { $venteminutter = "9"; } if ( ($row->percent + $trening) >= 100) { $fields = 'percent = ' . ($row->percent + $trening - 100) . ', level = (' . $row->level . ' + 1)'; echo("<b>Du har trent og må vente i " . $venteminutter . " minutter før du kan fortsette.</b><br> <b>Du har gått opp en level!</b><br>"); } else { $fields = 'percent = ' . ($row->percent + $trening); echo("<b>Du har trent og må vente i " . $venteminutter . " minutter før du kan fortsette.</b><br>"); } mysql_query("UPDATE fight_info SET $fields WHERE id = $bruker_id") or die(mysql_error()); break; case 'kjopTilgang': $result = mysql_query('SELECT lommebok FROM users WHERE username = '.quote_smart($logged['username'])); $resultObj = mysql_fetch_object($result); $lommebok = $resultObj->lommebok; if($lommebok < $pris) { echo("<b>Du har ikke nok penger i lommeboken.</b>"); } else { mysql_query("UPDATE users SET lommebok = (lommebok - $pris) WHERE username = '$logged[username]'"); mysql_query("INSERT INTO fight_info (id) VALUES ($bruker_id)") or die(mysql_error()); echo("<b>Du har betalt 5000 mynter og har fått tilgang til den kongelige kamparenaen.</b>"); } break; } } ?> Problemet er når jeg skal skrive ut variabelen $venteminutter så skrives 9 ut uansett... Noen som vet hva som kan være feilen her? Lenke til kommentar
Ståle Skrevet 10. april 2007 Del Skrevet 10. april 2007 Det må være to stk er likhets tegn if ($trening = "2") { $venteminutter = "3"; } if ($trening = "4") { $venteminutter = "6"; } if ($trening = "7") { $venteminutter = "9"; } if ($trening == "2") Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå