Avatar billede steen-h Mester
28. august 2005 - 11:29 Der er 9 kommentarer og
1 løsning

mysql_query kald i funktion

Hej

Jeg har følgende kald.
$flaskesql = mysql_query("SELECT * FROM ".$config['table_tankscheck']." WHERE user = $userid ORDER BY date ASC");
    $result = mysql_num_rows($flaskesql);
Det virker fint, men hvis jeg putter det ind i en funktion virker det ikke.

function tankcheck(){
global userid;                                       

$flaskesql = mysql_query("SELECT * FROM ".$config['table_tankscheck']." WHERE user = $userid ORDER BY date ASC");
    $result = mysql_num_rows($flaskesql);

  return $result;
}

Men kommer med følgende fejl.

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\apache\apache\htdocs\php\tankscheck.php on line 7

Er der en som kan hjælpe med det.

MVH Steen
Avatar billede arne_v Ekspert
28. august 2005 - 11:31 #1
DATE er et reserveret ord i MYSQL
Avatar billede erikjacobsen Ekspert
28. august 2005 - 11:32 #2
Du kan derfor skrive
  ORDER BY `date` ASC
Avatar billede arne_v Ekspert
28. august 2005 - 11:32 #3
hvus du sætter en

or die(mysql_error())

på din query kan du se hvad der går galt
Avatar billede erikjacobsen Ekspert
28. august 2005 - 11:33 #4
Og bør altid finde fejl på en måde sådan ca.:

$flaskesql = mysql_query("SELECT * FROM ".$config['table_tankscheck']." WHERE user = $userid ORDER BY `date` ASC") or die(mysql_error());
Avatar billede steen-h Mester
28. august 2005 - 11:57 #5
Nu har jeg rettet til følgende
$flaskesql = mysql_query("SELECT * FROM ".$config['table_tankscheck']." WHERE user='".$userid."' ") or die(mysql_error());

Det giver følgende fejl.
You have an error in your SQL syntax near 'WHERE user='4' ' at line 1

$userid = 4, det er mig.

Har fjernet order by date da det ikke er nødvendig.
Avatar billede erikjacobsen Ekspert
28. august 2005 - 11:59 #6
$config['table_tankscheck'] er tom

Den kan ikke ses i funktionen, med mindre du også skriver global ved den.

Trick nummer 3 er at udskrive sin SQL-sætning, hvis der er fejl i.
Avatar billede erikjacobsen Ekspert
28. august 2005 - 12:00 #7
Og hvis du kun skal have et antal, plejer det at være hurtigere at bruge konstruktionen
  SELECT count(*) AS antal ....
Avatar billede steen-h Mester
28. august 2005 - 12:15 #8
Tak for hjælpen, jeg havde klippet fra en anden funktion men glemt
global $config;

lægger du et svar erik
Avatar billede erikjacobsen Ekspert
28. august 2005 - 12:18 #9
Nej tak, jeg samler slet ikke på point.
Avatar billede steen-h Mester
28. august 2005 - 12:34 #10
Ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester