Gå til innhold

Scriptet legger ikke verdiene i MYSQL-tabellen!


Anbefalte innlegg

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.. :hmm:

Noen som kan svaret her? Takker så mye for svar :)

Endret av Rinox
Lenke til kommentar
Videoannonse
Annonse

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

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...