Avatar billede danco Nybegynder
26. juli 2009 - 14:35 Der er 14 kommentarer og
1 løsning

Mysql Update problem

Hej eksperter,
så er jeg kommet på den igen.
Jeg sidder og arbejder på en bid kode (3 dokumenter) der gør det muligt for mig at opdatere min database.
jeg har et dokument der printer alle forekomster i databasen
derudover et dokument som tillade mig at foretage ændringer og dernæst et dokument der skulle gemme rettelserne i min database.

Det er formentlig en lille dum fejl jeg har lavet idet jeg ikke er så stærk i PHP endnu. Men jeg paster min kode herunder.

// dokumentet der gemmer//
<?php
include "connect.php";
$id=$_GET['side'];
$ny_overskrift=$_POST['ny_overskrift'];
$ny_indhold=$_POST['ny_indhold'];

// update data fra mysql database
$sql="UPDATE $tbl_name SET overskrift='$ny_overskrift', indhold='$ny_indhold' WHERE url='$id'";
$result=mysql_query($sql);

// hvis succesfuld update.
if($result){
echo "Opdateret !";
echo "<BR>";
echo "<a href='list_records.php'>Vis resultat</a>";
}

else {
echo "FEJL !!";
}

?>
Avatar billede repox Seniormester
26. juli 2009 - 14:41 #1
hvor er $tbl_name defineret henne?

Udover det, når du så debugger din kode og mysql ikke agerer som forventet, kan du med fordel tilføje or die(mysql_error()) til din mysql query.

F.eks:
$result = mysql_query($sql) or die(mysql_error());
Avatar billede danco Nybegynder
26. juli 2009 - 14:45 #2
Jeg har $tbl_name i connect.php

Jeg prøver at tilføje mysql_error
Avatar billede danco Nybegynder
26. juli 2009 - 14:48 #3
Hov, sendte vidst for tidligt, jeg tilføjede mysql_error som du sagde, og det gav ingenting, scriptet kører fint igennem men det opdaterer ikke databasen som det skal.

Hvis det kan hjælpe noget, har mine textfelter alle name="ny_overskrift" og "ny_indhold"
Avatar billede repox Seniormester
26. juli 2009 - 15:31 #4
Det hjælper ikke ret meget.
Prøv at echo din sql sætning ud og se om din sql sætning er som du forventer den skal være?
Avatar billede danco Nybegynder
26. juli 2009 - 15:38 #5
Hvordan mener du ?

Jeg har selv en ide om at fejlen ligger omkring mine $_post strings, men jeg ved som sagt ikke ret meget om PHP.
Avatar billede repox Seniormester
26. juli 2009 - 15:44 #6
echo $sql;

Ser den ud som du forventer den skal se ud?
Avatar billede danco Nybegynder
26. juli 2009 - 15:53 #7
Arg :) det var smart.

Det gør den ikke nej,
UPDATE sider SET overskrift='Side nummer 2', indhold='Indhold' WHERE url=''

Så må der være en fejl omkring min $id, eller har jeg misforstået noget ?
Avatar billede repox Seniormester
26. juli 2009 - 15:59 #8
Jaeh, din $id er jo tom og derfor kan din sql sætning ikke matche op mod den ønskede WHERE clause.
Avatar billede danco Nybegynder
26. juli 2009 - 16:05 #9
Godt nok, så har jeg forstået noget af det. Men hvad jeg ikke forstår er hvorfor der er en fejl.

Jeg henviser til en kolonne i min database der hedder 'url', den samme værdi bruger jeg så i mine dynamiske URL under 'side' derfor burde det vel være tilstrækkeligt med at $_GET['side']

Kan du finde en fejl i min kode ?
Avatar billede repox Seniormester
26. juli 2009 - 16:14 #10
Jeg kan kun udpege det åbenlyse og det er at din $_GET["side"] variabel er tom.

Men et gæt ville være at når du poster til den side der skal modtage disse oplysninger, så har du ikke oplysningen med. Måske du kunne sende den med som en postvariabel fra din oprindelige side istedet?

<input type="hidden" name="side" value="<?php echo $_GET["side"] ; ?>" />

Og så bruge din $_POST["side"] på modtager siden...
Avatar billede danco Nybegynder
26. juli 2009 - 16:23 #11
på min side hvor jeg redigere tekster har jeg følgende:
<input name="ny_url" disabled="disabled" type="text" id="url" value="<? echo $rows['url']; ?>" size="15">

Og på siden hvor jeg modtager bruger jeg så $_POST['ny_url']

Det bør gøre det samme, som dit forslag eller hvad?

jeg har naturligvis ændres i min Update så den hedder ...WHERE url='$url'
Avatar billede danco Nybegynder
26. juli 2009 - 16:24 #12
Hovsa, men det resultere i at den melder fejl omkring min update linje
Avatar billede danco Nybegynder
26. juli 2009 - 16:35 #13
Hovsa,,
Så virkerde det pludselig, det var fuldstændig korrekt at jeg aldrig sendt 'url' videre, det gjorde jeg simpelt i URL så jeg kunne nøjes med min GET igen.

jeg takker mange for hjælpen, du må endelig smide et svar så du kan få point.
Avatar billede repox Seniormester
26. juli 2009 - 16:48 #14
Det kom her
Avatar billede danco Nybegynder
26. juli 2009 - 16:51 #15
Sådan der.
Jeg takker mange gange for din hjælp
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