Gå til innhold

Feil i syntaksen; spørring fullføres ikke.


Anbefalte innlegg

Jeg har et lite problem i syntaksen min i denne koden:

<?php
ob_start();
include('config.php');

if(!$logged[username])
{
echo("Du er ikke innlogget!");
}
# If User Isnt Logged In

else{
mysql_query("DELETE FROM fight_list WHERE `timestamp` < " . (time() - 60)) or die(mysql_error());

echo("Brukere som er klare for kamp:<br><br>");

echo("<form action='?side=fightlist&go=fightlist&act=nykamp' method='post'><input type='submit' value='Gå til kamp!' /></form>");

switch($_GET[act])
{
case 'nykamp':

$bruker_id = mysql_query("SELECT id FROM users WHERE brukernavn = ". $logged[username]);
mysql_query("INSERT INTO fight_list (id ,`timestamp`) VALUES(" . $bruker_id . ", " . time() . " )") or die(mysql_error());
echo("Du er for svak til å gå til kamp. Du må trene mer.");

break;

}
}
?>

 

Siden jeg har brukt mysql_error får jeg denne feilmeldingen:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' 1175983382 )' at line 1

 

På grunn av denne erroren blir ingenting lagt til i tabellen... Vet noen hva som kan være feilen her?

 

Jeg tror jeg fant ut hvorfor infoen ikke vil legges inn i tabellen... Jeg kjørte denne spøørringen:

 

$bruker_id = mysql_query("SELECT id FROM users WHERE username = ". $logged[username]) or die(mysql_error());

 

Da fikk jeg denne feilmeldingen:

 

Unknown column 'Rinox' in 'where clause'

 

På grunn av denne feilen kunne ikke feltet for id fylles inn og dermed stoppet spørringen... Men er det noen som vet hva den feilmeldingen skyldes og hvordan det kan fikses? For hvis jeg fikser den fikses alt...

 

Takker for svar :)

Endret av Rinox
Lenke til kommentar
Videoannonse
Annonse

Du må nok ha ' rundt verdien du legger inn i username, det er kun tall hvor du ikke trenger dette. (Såvidt jeg husker)

 

 

Dessuten bruker du feltet "brukernavn" i èn spørring og "username" i den andre.

Og du kan ikke bruker $bruker_id slik som du gjør. mysql_query returnerer et resultatsett som du må henter brukeriden fra.

Endret av Nazgul
Lenke til kommentar
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' 1175983382 )' at line 1

Der sier den at det er en feil ved "1175983382 )". Det er ett timestamp som i normalt format blir 08.04.2007 00:03:02. Ergo, feilen din er der.

 

$bruker_id = mysql_query("SELECT id FROM users WHERE username = '$logged[username]') or die(mysql_error());

Er kun i echo()/print() man må "hoppe ut av php-mode" for å skrive ut innholdet av en variabel ( echo "blablabla " . $foo . " feks).

 

Jeg ville uansett hentet ut id når man logger inn, og lagd det inn i en session/cookie.

Lenke til kommentar

$bruker_id = mysql_query("SELECT id FROM users WHERE username = '$logged[username]') or die(mysql_error());

Du mangler sluttquote (") og semicolon (;) i SQL queryen. Samme gjelder fight_list queryen.

 

rinox: du må bruke en av mysql_fetch_ metodene for å hente data ut av ett mysql_query() resultat

 

Er kun i echo()/print() man må "hoppe ut av php-mode" for å skrive ut innholdet av en variabel ( echo "blablabla " . $foo . " feks).

 

det skal ikke være noen forskjell på echo, print, mysql_query eller noen annen funksjon vedrørende syntaksen og tegnbruk. jeg har lagt merke til følgende:

 

dobbelquotes (") lar deg entre $variabel i en streng og innholdet i variabelen blir returnert. Man kan også bruke singlequotes inne i en dobbelquoted streng og få de returnert utolket. "\n" fungerer som en newline (crlf)

 

singlequotes (') krever at man legger variabelen utenfor slik som 'tekst'.$variabel.'tekst' '/n' fungerer ikke som newline. mange tegn må "escapes" dvs tegn x må skrives som \x for ikke å blir tolket.

 

sikkert mange andre forskjeller.. alt står i manualen

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