Gå til innhold

Irriterende MySQL error!


Anbefalte innlegg

Skrevet

Hei! Dette er koden min, men jeg får en feil på den:

 

$chance = mysql_fetch_array(mysql_query("SELECT chance0, chance1, chance2, chance3 FROM nasking  
WHERE id = $bruker_id") or die(mysql_error()));

 

Feilmeldingen er:

 

Unknown column 'chance0' in 'field list'

 

Jeg er helt sikker på at jeg har en kolonne som heter chance0... Noen som kan tenke seg hva feilen kan være her?

 

Her er forresten hele koden min hvis noen trenger den.. Har en mistanke om at det er $bruker_id som det er noe galt med :hmm:

 

Klikk for å se/fjerne innholdet nedenfor
<?php
ob_start();
include('config.php');

if(!$logged[username])
{
echo("Du er ikke innlogget!");
}

else{
$result = mysql_query('SELECT id FROM users WHERE username = '.quote_smart($logged['username'])); 
$resultObj = mysql_fetch_object($result);
$bruker_id = $resultObj->id;
/*
 Skjekker om skjema er utført
*/
$checkaccess = mysql_query("SELECT id FROM nasking WHERE id=$bruker_id");
$checkaccess= mysql_num_rows($checkaccess);
$pris = 500;

if ($checkaccess == 0) {
echo("Du kan ikke naske noe som helst ennå. Først må du kjøpe en maske for $pris mynter.<br><br>");
echo("<form action='?side=nasking&go=nasking&act=kjopMaske' method='post'><input type='submit' value='Kjøp maske'></form>");
}
else {
if(isset($_POST['submit'])) {
 $action = (isset($_POST['action']) && $_POST['action'] > 0 && $_POST['action'] <= 4 ) ? intval($_POST['action']) : 0;
 

 $resultObj = mysql_fetch_object(mysql_query('SELECT chance1, chance2, chance3, chance4 FROM nasking  WHERE id = ' . $bruker_id));
 
 /*
 	Legger handlingene i et array
 */
 $chance = array(1 => $resultObj->chance1, 
     2 => $resultObj->chance2, 
     3 => $resultObj->chance3, 
     4 => $resultObj->chance4
   	);
 
 if(rand(1, 100) > $chance[$action]) { 
 	$output = "Handling misslyktes!"; 
 } 
 else {
 	switch ($action) {
   case 1: 
   	$output = "Handling 1"; 
   break; 
 	
   case 2: 
   	$output = "Handling 2"; 
   break; 
 	
   case 3: 
   	$output = "Handling 3"; 
   break; 
 	
   case 4: 
   	$output = "Handling 4"; 
   break; 
 	} 
 }
echo $output;
}

else {
echo("<form action='' method='post'>
 <input type='radio' name='action' value='1'>Nask fra forbipasserende<br>
 <input type='radio' name='action' value='2'>Nask fra salgsbod<br>
 <input type='radio' name='action' value='3'><br>
 <input type='radio' name='action' value='4'><br><br>
 <input type='submit' name='submit' value='Stjel'><br>
 </form>");
}
}

switch ($_GET[act]) {

case 'kjopMaske':
 
 $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 nasking (id) VALUES ($bruker_id)") or die(mysql_error());
 	echo("<b>Du har betalt $pris mynter for en maske.</b>");
 }
 
break;

}
}
?>

Videoannonse
Annonse
Skrevet

Dobbeltsjekk at det ikke er noen skrivefeil osv i kolonne navnet. Den feilmeldingen skal kun komme når kolonnen ikke finnes, og hvis du er sikker på at den er der så er det eneste jeg kan tenke på en skrivefeil.

Skrevet

Nei. Har sjekket i over 2 dager nå og det er ingen skrivefeil.. I alle fall ikke som jeg kan se :( Noen andre som kan se noe?

Gjest Slettet+142
Skrevet (endret)

prøv med denne

SELECT `chance0`, `chance1`, `chance2`, `chance3` FROM `nasking` WHERE `id` = $bruker_id

 

vet ikke om det har noe å si, men kan muligjens funke. hvis du lurer på hva som er forskjeller det `-ene...

 

btw, kommer chance0 opp i listen hvis du utfører denne?

DESCRIBE `nasking`;

Endret av Slettet+142
Skrevet

Den er i listen der. Har brukt explain også.

 

Men nå fant jeg problemet! Jeg prøvde å sette inn dette i et array på "Gamlemåten" som det skulle og da virket alt!

Skrevet

Når du bruker strenger i en assosiativ matrise så er det viktig at du avgrenser de med gåseøyne(") eller apostrof (').

 

Du har skrevet

$logged[username]

 

Rett kode skulle vært

$logged['username']

 

Dette er ikke årsaken til feilmeldingen din, men det er allikevel en uting å bruke php sin hjelpsomhet. Plutselig så har noen definert en konstant med navn username og da er skriptet ødelagt. En slik feil er vanskelig å feilsøke. :)

 

Håper det hjelper.

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