Avatar billede abruscato Nybegynder
25. april 2001 - 02:50 Der er 25 kommentarer og
1 løsning

mySQL probs

Lidt nattearbejde til eksperterne:

Hvad er der galt i disse linier?

<?php
    if (\"$submit == Ret\")
    {
    mysql_query(\"UPDATE db_soeg SET dlink = $dlink WHERE URL = \'$URL\';\")
    or die(mysql_error());
    echo \"<font face=\\\"verdana, arial, sans-serif\\\" size=\\\"1\\\">Retter $URL dlink til <b>$dlink</b></font>\";
    }
?>
Avatar billede BacceDK Juniormester
25. april 2001 - 03:19 #1
hvilke fejl får du ??
Avatar billede abruscato Nybegynder
25. april 2001 - 03:27 #2
You have an error in your SQL syntax near \'WHERE URL = \'\';\' at line 1
Avatar billede abruscato Nybegynder
25. april 2001 - 03:31 #3
Formen der sender data til scriptet:
              <form name=\"ret\" method=\"POST\" action=\"actions.php\">
                <input type=\"hidden\" name=\"submit\" value=\"Ret\">
                <input type=\"text\" name=\"URL\" maxlength=\"50\" value=\"http://www.test.dk\"><br>
                <input type=\"text\" name=\"dlink\" maxlength=\"3\" size=\"3\" value=\"7\"><br>
                <input type=\"submit\" name=\"submit\" value=\"Ret\">
              </form>

Måske kan dette hjælpe?
Avatar billede tupsy Nybegynder
25. april 2001 - 03:51 #4
Skal der ikke være et ; efter WHERE URL = \'$URL\';\")
   
Altså så der står WHERE URL = \'$URL\';\");

Ikke testet....

Tupsy!!
   
Avatar billede abruscato Nybegynder
25. april 2001 - 04:01 #5
tupsy -> Nej, semikolon\'et kommer efter \"or die(mysql_error());\"
Avatar billede tupsy Nybegynder
25. april 2001 - 04:09 #6
Prøv at ændre :   
db_soeg SET dlink = $dlink    til
db_soeg SET dlink = \'$dlink\'

Tupsy!!
Avatar billede abruscato Nybegynder
25. april 2001 - 04:14 #7
Tupsy -> Det skal siges at dlink er en integer
Avatar billede tupsy Nybegynder
25. april 2001 - 04:24 #8
Så står jeg nok af..
Ved faktisk ikke engang hvad en integer er???

Tupsy!!
Avatar billede abruscato Nybegynder
25. april 2001 - 04:27 #9
Det er såmænd bare det engelske ord for hel-tal :)
Avatar billede tupsy Nybegynder
25. april 2001 - 04:33 #10
Det kunne du jo da bare have skrevet.. :-)
He he.. Snak dog dansk... :-)

Men, hvorfor har du egentlig et ; her \'$URL\';\")
imellem \'og\"?????

Tupsy!!

Avatar billede tupsy Nybegynder
25. april 2001 - 04:33 #11
Sidder på arbejdet, derfor kan jeg ikke teste om mine ideer virker inden jeg kommer med dem..
Sorry..

Tupsy!!
Avatar billede abruscato Nybegynder
25. april 2001 - 04:37 #12
Tupsy -> mht. mit sprog: Jeg snakker engelsk når det passer i mit programmeringssprog. Basta! :)

mht. semikolon: Det er fordi den *skal* være der.

God arbejdslyst :)
Avatar billede tupsy Nybegynder
25. april 2001 - 04:41 #13
Nå nå, men så skidt da..
Snak du båre \"Benny\".. :-)

Og takker..
Held og lykke med dig script...

Tupsy!!
Avatar billede lauer Nybegynder
25. april 2001 - 06:37 #14
Der skal da ikke være et ; i WHERE URL = \'$URL\';\") !!!
men det har du sikkert fundet ud af.
Avatar billede alvion Nybegynder
25. april 2001 - 07:25 #15
Er du sikker på, at $dlink har en værdi?

Prøv at udskrive din query inden du udfører den:

$sql = \"UPDATE db_soeg SET dlink = $dlink WHERE URL = \'$URL\';\";
echo $sql;
mysql_query($sql) or die(mysql_error());

Hvis den ikke er udfyldt kan det skyldes

1) at du kører med \"register_globals = off\" og at du så har glemt at indføre denne linie et sted:

$dlink = $HTTP_POST_VARS[\"dlink\"];

2) at du faktisk kører med \"register_globals = on\", men at denne stump kode ligger inde i en funktion og du har glemt at deklarere $dlink som en \"global\"
Avatar billede alvion Nybegynder
25. april 2001 - 07:27 #16
Jeg mener i øvrigt at machomann har ret. Der må ikke (eller behøver ikke?) at være et \";\" inde i din sql-sætning.
Avatar billede lauer Nybegynder
25. april 2001 - 07:32 #17
Alvion -> Den vil kommer med en anden fejl hvis den ikke selecter noget.
Så er der altså noget i $dlink.

Problemmet er helt klart at der er et ; for meget.
Avatar billede erikjacobsen Ekspert
25. april 2001 - 07:35 #18
if (\"$submit == Ret\")

rettes til

if ($submit == \'Ret\')
Avatar billede alvion Nybegynder
25. april 2001 - 10:16 #19
machomann >>

You have an error in your SQL syntax near \'WHERE URL = \'\';\' at line 1

betyder at der er en syntaksfejl i sætningen umiddelbart før \'WHERE URL...\'

Den vil typisk komme, hvis nu der står

\"UPDATE db_soeg SET dlink =  WHERE ...\"

som der vil stå, hvis $dlink ikke indeholder noget. Derfor:

abruscato >> Prøv at udskrive din SQL
Avatar billede abruscato Nybegynder
25. april 2001 - 15:42 #20
Følgende kode virker :)

<?php
$dlink = $HTTP_POST_VARS[\"dlink\"];

    if (\"$submit == Ret\")
    {
                mysql_query(\"UPDATE database SET dlink = $dlink WHERE URL=\'$URL\';\");
    }
?>
Avatar billede erikjacobsen Ekspert
25. april 2001 - 15:45 #21
Det er stadig en fejl:
 
  if (\"$submit == Ret\")

den giver altid true, som den står....
Avatar billede abruscato Nybegynder
25. april 2001 - 15:51 #22
Dvs. at:
erikjacobsen -> (\"$submit == Ret\")  er lige så godt som ($submit == Ret\') 

machomann -> Jeg retter min påstand om at der *skal* være et semikolon i $dlink WHERE URL=\'$URL\'>>>;<<<<\"); - Til at det *kan* være der.

Så har I også lært lidt idag :)

Tak for svarene.
Avatar billede abruscato Nybegynder
25. april 2001 - 15:52 #23
ericjacobsen -> Er du sikker på det?
Avatar billede erikjacobsen Ekspert
25. april 2001 - 15:53 #24
nej det er ikke ligeså godt ab... Nu skal du lave $submit på samme måde som $dlink,
men ellers sikrer min rettelse at der kun kommer noget i databasen, når der bliver
trykket på knappen.
Avatar billede abruscato Nybegynder
25. april 2001 - 16:07 #25
DOH!

erikjacobsen -> Du har ret....

Ikke nogen dårlig ting at vide :)

Avatar billede erikjacobsen Ekspert
26. april 2001 - 08:13 #26
:)
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