Avatar billede melange Nybegynder
25. april 2003 - 17:45 Der er 8 kommentarer og
1 løsning

Vrøvl med simpel UPDATE'query

SIdder her og er  igang med at pussle lidt med min private side. Men lige pludselig er der en UPDATE-query som driller.
Jeg forstår ikke hvor fejlen ligger, men det er vel nok bare mig som har stirret mig blind på den efter at have kodet i lidt for mange timer :)

Her er koden i en kraftigt reduceret version af koden som ikke virker, men fejlen er det stadigvæk :)

<code>
class random {

    function quote() {

        $select_query = "SELECT * FROM quote ORDER BY RAND() LIMIT 1";
        $result = mysql_query($select_query) or die(mysql_error());

        $quote_data = mysql_fetch_array($result);

        $update_query = "UPDATE quote SET show = " . ++$quote_data['show'] . " WHERE id = " . $quote_data['id'];
        mysql_query($update_query) or die(mysql_error());

        return $quote_data;

    }

}
</code>

Den henter dataen fint, og $quote_data['show'] samt $quote_data['id'] indeholder de rigtige værdier.

fejlen jeg får er:
"You have an error in your SQL syntax near 'show = 1 WHERE id = 2' at line 1"

ved ikke helt hvorfor jeg ikke kan finde ud af det, men det idag hader PHP mig åbenbart ;)
Avatar billede mjl Nybegynder
25. april 2003 - 17:49 #1
Du mangler gåseøjne her...

$update_query = "UPDATE quote SET show = " . ++$quote_data['show'] . " WHERE id = " . $quote_data['id']>>>>>>>>>>";
Avatar billede jakoba Nybegynder
25. april 2003 - 17:49 #2
Umiddelbart ser det OK ud.
Hvad datatyper har de forskellige felter ?
Avatar billede jakoba Nybegynder
25. april 2003 - 17:50 #3
Nåja.
Avatar billede jakoba Nybegynder
25. april 2003 - 17:52 #4
mjl > Næe. det er ikke det :(  variablen er concateneret til en korrekt streng så det er OK.
Avatar billede melange Nybegynder
25. april 2003 - 17:54 #5
jakoba << jeg bruger bare INT som datatype.

her er et dump af min tabel:

CREATE TABLE quote (
  id int(11) NOT NULL auto_increment,
  show int(11) NOT NULL default '0',
  quote tinytext NOT NULL,
  author tinytext NOT NULL,
  PRIMARY KEY  (id)
) TYPE=MyISAM;
Avatar billede jakoba Nybegynder
25. april 2003 - 17:58 #6
fandt den: http://www.mysql.com/doc/en/Reserved_words.html
dit feltnavn 'show' er et reserveret ord i mysql.
desværre kan man godt lave tabeller med ulovlige feltnavne via mysqladmin

mvh JakobA
Avatar billede melange Nybegynder
25. april 2003 - 18:01 #7
jakoba << ohh....så er jeg ikke så dum alligevel :) Omdøber lige feltet, og ser hvordan det går :)

mange tak for hjælpen
Avatar billede jakoba Nybegynder
25. april 2003 - 18:03 #8
pas nu på ikke at drage forhastede slutninger :-))
Avatar billede melange Nybegynder
25. april 2003 - 18:06 #9
jakoba << jeg har en dårlig vane med (næsten) altid at drage forhastede beslutning :) Dog var jeg heldig denne gang, og scriptet virker nu :D
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

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