Vinnaren i pepparkakshustävlingen!
  • 1
  • 2
2018-05-11, 18:00
  #1
Medlem
Hej, jag blir inte klok på dessa jäkla mysqlquerys. Har letat efter lösningar i en timma på google nu och testat ett antal olika varianter men jag får inte detta att fungera:

Kod:
$id $_GET['ID'];
    
echo 
$id;

$sql "UPDATE CALENDAR SET TEXT='$comment', DATE='$date', AVDELNING='$avdelning' WHERE ID = '$id'"

Om jag byter ut $id i queryn emot tex 32 så fungerar det klockrent att uppdatera raden, men itne när jag använder mig av $id.
Som ni ser så kollar jag även så att $id faktiskt innehåller något och visst gör den det.

Antar att jag missar några tecken :/

EDIT: Ska förövrigt fixa skydd mot sql injection innan någon påpekar det
Citera
2018-05-11, 18:16
  #2
Medlem
fittslems avatar
Pröva att ta bort ' .

Alltså istället för : WHERE ID = '$id'
Testa : WHERE ID = $id
Citera
2018-05-11, 18:18
  #3
Medlem
Ta bort ' runt variabeln och testa igen.
Citera
2018-05-11, 19:39
  #4
Medlem
Citat:
Ursprungligen postat av fittslem
Pröva att ta bort ' .

Alltså istället för : WHERE ID = '$id'
Testa : WHERE ID = $id

Citat:
Ursprungligen postat av DJ-Emerald
Ta bort ' runt variabeln och testa igen.

Fungerar dessvärre inte.
Citera
2018-05-11, 19:43
  #5
Moderator
Protons avatar
Citat:
Ursprungligen postat av abiz2
Hej, jag blir inte klok på dessa jäkla mysqlquerys. Har letat efter lösningar i en timma på google nu och testat ett antal olika varianter men jag får inte detta att fungera:

Kod:
$id $_GET['ID'];
    
echo 
$id;

$sql "UPDATE CALENDAR SET TEXT='$comment', DATE='$date', AVDELNING='$avdelning' WHERE ID = '$id'"

Om jag byter ut $id i queryn emot tex 32 så fungerar det klockrent att uppdatera raden, men itne när jag använder mig av $id.
Som ni ser så kollar jag även så att $id faktiskt innehåller något och visst gör den det.

Antar att jag missar några tecken :/

EDIT: Ska förövrigt fixa skydd mot sql injection innan någon påpekar det
Har du läst igenom tråden (FB) Ska du sätta ihop en SQL dynamiskt, SE HIT!! till att börja med? Vad händer till exempel om du enligt trådens instruktioner skriver ut din sammansatta SQL som du tänkt köra? Hur ser den ut?

För det andra undrar jag om du i din querystring skickar med ett "ID", är du säker på att det inte heter "id" där?
Citera
2018-05-11, 20:04
  #6
Medlem
Citat:
Ursprungligen postat av Proton
Har du läst igenom tråden (FB) Ska du sätta ihop en SQL dynamiskt, SE HIT!! till att börja med? Vad händer till exempel om du enligt trådens instruktioner skriver ut din sammansatta SQL som du tänkt köra? Hur ser den ut?

För det andra undrar jag om du i din querystring skickar med ett "ID", är du säker på att det inte heter "id" där?

Den tråden gav dessvärre inte mycket.

Nope det heter ID i databasen, använder det på många andra ställen
Citera
2018-05-11, 20:07
  #7
Medlem
Prova att eka ut hela queryn så borde man se vad som är knasigt, dvs echo $sql. Vad får du för felmeddelande?
Citera
2018-05-11, 20:23
  #8
Medlem
B4RR4845s avatar
Testa att använda `, sql kan spöka ibland.

Kod:
$sql = "UPDATE `CALENDAR` SET `TEXT`='$comment', `DATE`='$date', `AVDELNING`='$avdelning' WHERE `ID` = '$id'";

även denna kan vara värd att pröva:

Kod:
$sql = "UPDATE `CALENDAR` SET `TEXT`=$comment, `DATE`=$date, `AVDELNING`=$avdelning WHERE `ID` = $id";
Citera
2018-05-11, 21:08
  #9
Medlem
Citat:
Ursprungligen postat av mystikern87
Prova att eka ut hela queryn så borde man se vad som är knasigt, dvs echo $sql. Vad får du för felmeddelande?

Detta får jag då:
UPDATE CALENDAR SET TEXT=1, DATE=2018-05-16, AVDELNING=Truck WHERE ID = 32

Citat:
Ursprungligen postat av B4RR4845
Testa att använda `, sql kan spöka ibland.

Kod:
$sql = "UPDATE `CALENDAR` SET `TEXT`='$comment', `DATE`='$date', `AVDELNING`='$avdelning' WHERE `ID` = '$id'";

även denna kan vara värd att pröva:

Kod:
$sql = "UPDATE `CALENDAR` SET `TEXT`=$comment, `DATE`=$date, `AVDELNING`=$avdelning WHERE `ID` = $id";

Har testat dom nu men dessvärre hjälpte inte det :/
Citera
2018-05-11, 21:12
  #10
Medlem
Citat:
Ursprungligen postat av B4RR4845
Testa att använda `, sql kan spöka ibland.

Kod:
$sql = "UPDATE `CALENDAR` SET `TEXT`='$comment', `DATE`='$date', `AVDELNING`='$avdelning' WHERE `ID` = '$id'";

även denna kan vara värd att pröva:

Kod:
$sql = "UPDATE `CALENDAR` SET `TEXT`=$comment, `DATE`=$date, `AVDELNING`=$avdelning WHERE `ID` = $id";


Får ta tillbaka det, nu fungerar det.

Jag får väl skylla på spriten som jag började dricka för 30 minuter sedan men formuläret gick till edit.php istället för edit.php?ID=<? echo $id; ?>

Detta gjorde så att när jag först gick in på sidan så var ID angivet ifrån förra sidan men när jag skickade formuläret så fanns det inte kvar. Riktigt nybörjarmisstag som jag nu tycker att vi alla tar och glömmer haha. Skål på er! och tack så mycket för hjälpen
Citera
2018-05-11, 21:17
  #11
Moderator
vhes avatar
Citat:
Ursprungligen postat av abiz2
Får ta tillbaka det, nu fungerar det.

Jag får väl skylla på spriten som jag började dricka för 30 minuter sedan men formuläret gick till edit.php istället för edit.php?ID=<? echo $id; ?>

Detta gjorde så att när jag först gick in på sidan så var ID angivet ifrån förra sidan men när jag skickade formuläret så fanns det inte kvar. Riktigt nybörjarmisstag som jag nu tycker att vi alla tar och glömmer haha. Skål på er! och tack så mycket för hjälpen

Nu när du fått det att fungera kan du ju ta en titt igen på (FB) Ska du sätta ihop en SQL dynamiskt, SE HIT!!, och skriva om koden på så sätt att den inte blir vidöppen för SQL-injection.
Citera
2018-05-13, 21:36
  #12
Medlem
Lånar min egna tråd då jag fått ett annat problem, tänkte bara fråga snabbt om någon akn se något fel på denna queryn:

Kod:
$sql "UPDATE `PRIO` SET `ARTNR`='$artnr', `ORDERNR`='$order', `AMOUNT`='$antal', `avdelning`='$avdelning', `WEEK`='$vecka', `VAGN`='$provavagn', `NOTE`='$comment', `batt105`='$batt105', `batt76`='$batt76', `battx2`='$battx2', `laddare16`='$laddare16', `laddare20`='$laddare20', `blixt`='$blixt', `esd`='$esd', `flask`='$flask', `pulpet`='$pulpet', `tillb`='$tillb', `cigg`='$cigarettuttag', `kombidrag`='$kombidrag', `stastod`='$stastod', `bluespot`='$bluespot', `framhylla`='$framhylla', `tillbforblixt`='$tillbforblixt', `blixtbak`='$blixtbak', `dragtapp`='$dragtapp', `utbral`='$utbral', `sopsack`='$sopsack', `stegev`='$stegev', `stegeh`='$stegeh', `forvaringslada`='$forvaringslada' WHERE `ID` = '$id'"

Istället för att uppdatera informationen på raden med det aktuella ID på så gör den en helt ny rad med ett nytt ID, blir fan inte klok på detta! Har kollat så att alla stavningar stämmer.

Jag har en till query på sidan men det är en SELECT så den bör inte påverka.
Citera
  • 1
  • 2

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback