16. juli 2002 - 10:37Der er
12 kommentarer og 1 løsning
PHP/MySQL-problem
Hej
Jeg har et problem med en PHP side. Jeg er igang med at lave et admin-system til en stor side. Fra den skal man kunne oprette, slette og rette noget tekst fra en MySQL-database. Det går godt nok med at lave en form og så oprette og en side hvor fra man kan slette.. Men der er nogle problemer med updatesiden..
<? mysql_connect($host,$user,$pass); mysql_select_db($db); $query = "UPDATE databasenavn SET data2='$data2' , data3='$data3' , data4='$data4' , data5='$data5' WHERE data1='$data1'";
Kollonenavnene fra databasen har jeg af sikkerhedsmedsige årsagder udskiftet med $dataX og databasens navn med databasenavn. Men du kan vel se ideen i det.
Det der så er problemet er at den man kører den og viser at den er blevet gennemført.. Men der sker ikke en skid.. Den loader ikke særlig langt tid.. Ikke længere end det vil tage at loade Godkend-siden.. Så det er som om den ikke forstår komandoen ordentligt..
data4 er det der står i databasen, og '$data4' er det der kommer fra formen på den foregående side.. Det er rigtigt ikke??
Hvordan kommer min updateform til at virke ordentligt??
Jeg har en C30 webhotel fra Cliche.dk hvis det har nogen indflydelse.. Kan man evt bruge en anden komando til at update??
Håber i kon hjælpe, og på forhånd tak.. /Nicklas B.
prøv at lave en echo "UPDATE databasenavn SET data2='$data2' , data3='$data3' , data4='$data4' , data5='$data5' WHERE data1='$data1'";
og se om specielt data1='$data1' indeholder hvad du forventer og specielt om der findes en post med netop den kombination (case sensitive und alles - de skal være 110% ens)
ljweb-> Jeg har prøvet at tilføje det du skriver til min echo-sætning.. Og den skriver bare:
UPDATE databasenavn SET data2='', data3='' , data4='' , data5='' WHERE data1=''
Så fejlen må åbenbart ligge et andet sted..
Er der en der vil kigge på formen før og forklare mig hvad der er galt.. Jeg er ikke meget for at skrive den hele ind her, da der står data fra databasen..
Så hvis en af jeg gidder hjælpe over mail..
Jeg skal nok skrive formen ind her, men andre navne ved de forskellige variabler, hvis det er den der er noget galt med..
(Coadmins-> Det er lovligt ikke?? Nu da alle har fået tilbudet, og jeg ligger svaret ud efter jeg har fået det til at virke.. ikk'??)
Håber der er en god PHP-haj der lige kan hjælpe mig..
niklas >> hvis min echo udskriver UPDATE databasenavn SET data2='', data3='' , data4='' , data5='' WHERE data1=''
hvor der ikke er noget mellem '', beder du reelt databasen om at nulstille data2-data5 hvor data1 feltet er tomt ?
Men du skriver ... (mine kommentarer med # foran) <? mysql_connect($host,$user,$pass); mysql_select_db($db); # okay connectionen er vi enige om
$query = "UPDATE databasenavn SET data2='$data2', data3='$data3' , data4='$data4' , data5='$data5' WHERE data1='$data1'"; # her skriver du din query til en streng, uden at udføre det
$data1 = $r["data1"]; $data2 = $r["data2"]; $data3 = $r["data3"]; $data4 = $r["data4"]; $data5 = $r["data5"]; # her sætter du de variable, du reelt vil have i databasen ? skulle de ikke sættes foran $query ?
echo "Nyheden er tilføjet databasen"; ?>
så mit forslag er - burde det ikke se sådan ud <? mysql_connect($host,$user,$pass); mysql_select_db($db);
står der efter for at jeg kan bruge de nye resultater videre på siden. Fx at skrive:
Nyheden $data1 er nu opdateret.
i en echosætning..
Hvis jeg gør som du skriver laver jeg jo først variablerne om til det de er i forvejen.. Og så opdatatere dem med det.. Det andet virker også godt nok ved oprettelse..
varny-> Jeg har prøvet at gøre som du skriver.. Lidt lige som finn34's.. Det virker vist heller ikke...
Men jeg er ikke sikker.. Er der ikke en der vil kigge på koderne.. Jeg kan sende dem via mail... Og jeg skal nok skrive resultatet her inde..
Hvad er forskellen på ` og '??
Kan det være fordi Cliches server ikke forstår Udate?? og kan man i så fald bruge en anden komando..
Jeg takker mange gange for hjælpen ind til videre.. Og håber da det kommer til at virke.. (men det gør det jo, så gode som i er.. :)
er der ingen der lige har lyst til at kigge på mine koder?? Jeg vil ikke tro det er en særlig stor opgave.. De er meget simple.. Men jeg ved simpelthen ikke hvad jeg skulle skrive i stedet..
Prøv at lave nogle forsøg med databasen. Lav en mysql_query hvor du ikke bruger nogle $dataX. Eks.: $result = mysql_query("UPDATE `databasenavn` SET `data2` = 'test2', `data3` = 'test3', `data4` = 'test4', `data5` = 'test5' WHERE `data1` = 'test'"); <- test udskiftes med et eller andet der står i databasen. På den måde kan du sikre dig at database fordindelsen virker. Derefter kan du undersøge om variablerne bliver korrekt sendt til forespørgslen ved hjælp af ljweb's indslag. Det er næsten umuligt at overskue en kode hvis den indeholder flere småfejl. Så opdel koden i små stykker og få dem ale til at virke, og vupti så virker det hele til sidst.!! :) \Varny
jeg lukker igen.. kan ikke finde fejlen.. Nu har jeg sat den til først at slette dataene for så derefter at skrive dem ind igen.. Hmm.. jeg ved ikke hvordan jeg ellers skal få det til at virke.. Men det kommer nok en dag..
Synes godt om
Ny brugerNybegynder
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.