Avatar billede pemo123456 Novice
19. april 2011 - 12:53 Der er 7 kommentarer og
1 løsning

PHP UPDATE funktion ser ud til at virke, men opdaterer ikke tabel.

Hej

Har brug for hjælp. Har lavet et simpelt kontrolpanel til at opdatere indholdet af en mysql database via et php script. Som udgangspunkt ser det også ud til at virke som det skal, da jeg scriptet bliver afviklet og jeg får OK tilbagemelding på, at opdatering er lykkedes. Men desværre når jeg så checker tabellen i databasen, så har opdateringen ikke fundet sted. Hvad har jeg lavet forkert i scriptet?

<?php

$pid = $_GET['pid'];
$name = $_POST['name'];
$address = $_POST['address'];
$lat = $_POST['lat'];
$lng = $_POST['lng'];
$jtdato = $_POST['jtdato'];
$type = $_POST['type'];
$diary = $_POST['diary'];
$memory = $_POST['memory'];

include_once "../scripts/connect_to_mysql.php";

$query = mysqli_query($myConnection, "UPDATE markers SET name='$name', address='$address', jtdato='$jtdato', lat='$lat', lng='$lng', type='$type', diary='$diary', memory='$memory' WHERE id='$pid'") or die (mysqli_error($myConnection));

echo 'Operation Completed Successfully! <br /><br /><a href="index.php">Click Here</a>';
exit();
?>
Avatar billede repox Seniormester
19. april 2011 - 13:00 #1
Det er sandsynligvis fordi din SQL sætning virker fint, men bare ikke rammer det du ønsker.

Prøv at udskrive din SQL sætning og afprøv den manuelt i phpMyAdmin - måske du under den process kan finde ud af hvad du gør galt.
Avatar billede erikjacobsen Ekspert
19. april 2011 - 13:14 #2
...dvs: har $id og dermed $_GET['pid'] den rigtige værdi.

(Og hvorfor bruge mysqli når du ikke sætter værdier ind med parameters?)
Avatar billede pemo123456 Novice
19. april 2011 - 21:11 #3
Det I skriver får en klokke til at ringe - ved nærmere eftertanke tror jeg ikke, at jeg får trukket en $pid værdi med over, og derfor ikke har en værdi, der skal opdatere databasen. Nogen gode forslag hertil? Jeg skal jo helst have en løsning, hvor jeg ikke har mulighed for at ændre værdien for pid.

Mht "Og hvorfor bruge mysqli når du ikke sætter værdier ind med parameters?" => jeg er lidt ny til dette. Jeg kigge blot rundt på nettet, og læser lidt her og der, og forsøger ud fra dette at stykke noget sammen. Lærer noget nyt hver dag, men har stadig lang vej endnu. Så med min begrænsede viden kan jeg ikke svare på dit spørgsmål, da jeg ikke ved nok om det endnu. Hvis du har et link til mig om emnet med hvilke muligheder, det omhandler, så må du meget gerne sende det. Eller en kort beskrivelse her, så jeg ved lidt om, hvad jeg skal søge efter.

Indtil videre tak.
Avatar billede erikjacobsen Ekspert
19. april 2011 - 21:24 #4
Ja, det kan være farligt at bruge google ... uden at vide om det man finder faktisk er i orden. Men du kan fx læse om prepared statements her: http://devzone.zend.com/article/686

Hvis du ikke vil give brugeren mulighed for at ændre værdi af din "pid" kan du evt gemme den i en sessionsvariabel.
Avatar billede pemo123456 Novice
19. april 2011 - 23:11 #5
Det er vel ligegyldigt, hvad og hvor man finder noget, så er det altid godt at være lidt kritisk og i dette tilfælde prøve, rette og prøve igen (og så nogle gange spørge eksperterne).

Men har løst mit problem med $_SESSION['id'] = $pid;

Så smid venligst et svar - har set dit brugernavn, så hvis du ikke vil have point, må alle gå til repox.

Og tak for hjælpen. :-)
Avatar billede pemo123456 Novice
28. april 2011 - 10:08 #6
Hej igen

Kan jeg få en af jer til at smide et svar, så vi kan få lukket den her?

Igen tak for hjælp.
Avatar billede repox Seniormester
05. maj 2011 - 13:58 #7
Jeg smider lige et svar her i henhold til kommentaren her: http://www.eksperten.dk/spm/938000#reply_7775150
Avatar billede pemo123456 Novice
05. maj 2011 - 14:02 #8
Super - tak for hjælp til jer begge - både i denne og anden nævnte trå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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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