Avatar billede venchil Nybegynder
01. september 2005 - 18:32 Der er 7 kommentarer og
2 løsninger

Update-problem

Nu lægger jeg så hele scriptet (har oprettet nogle forskellige spørgsmål om nogle småting i det... Problemet er, at scriptet ikke opdaterer MySQL-tabellen, når jeg beder det om det, hvad gør jeg?


<?php

$r_brugernavn = "bruger";

$r_password = "pass";



if (empty($_SESSION['brugernavn']) || empty($_SESSION['password'])) {

echo "Angiv brugernavn / password igen.";

}

elseif ( ($_SESSION['brugernavn'] == $r_brugernavn) && ($_SESSION['password'] == $r_password) ) {



$conn = mysql_connect("localhost", "brugernavn", "password");

mysql_select_db("database");


$query = mysql_query("SELECT * FROM profil limit 1");



while($hent = mysql_fetch_array($query)) {

       

    $navn = stripslashes($hent[navn]);
    $alder = stripslashes($hent[alder]);
    $bopael = stripslashes($hent[bopael]);
    $civilstatus = stripslashes($hent[civilstatus]);
    $uddannelse = stripslashes($hent[uddannelse]);
    $kontakt = stripslashes($hent[kontakt]);
    $intro = nl2br(stripslashes($hent[intro]));
    $tekst = nl2br(stripslashes($hent[tekst]));

    $navn_ny = $_REQUEST["navn"];
    $alder_ny = $_REQUEST["alder"];
    $bopael_ny = $_REQUEST["bopael"];
    $civilstatus_ny = $_REQUEST["civilstatus"];
    $uddannelse_ny = $_REQUEST["uddannelse"];
    $kontakt_ny = $_REQUEST["kontakt"];
    $intro_ny = $_REQUEST["intro"];
    $tekst_ny = $_REQUEST["tekst"];

if ( ($navn != $navn_ny) || ($alder != $alder_ny) || ($bopael != $bopael_ny) || ($civilstatus != $civilstatus_ny) || ($uddannelse != $uddannelse_ny) || ($kontakt != $kontakt_ny) || ($intro != $intro_ny) || ($tekst != $tekst_ny) ) {

$updateSQL = "update profil set navn='addslashes($navn_ny)', alder='addslashes($alder_ny)', bopael='addslashes($bopael_ny)', civilstatus='addslashes($civilstatus_ny)', uddannelse='addslashes($uddannelse_ny)', kontakt='addslashes($kontakt_ny)', intro='addslashes($intro_ny)', tekst='addslashes($tekst_ny)' where id=1";

mysql_query($insertSQL);

echo "Ændringerne blev gemt.<p>";

}


echo "<form action='?id=content_admin_profil.php' method='post'>";
echo "Navn:";
echo "<br><input type='text' name='navn' value='$navn'>";
echo "<p>";
echo "Alder:";
echo "<br><input type='text' name='alder' value='$alder'>";
echo "<p>";
echo "Bopæl:";
echo "<br><input type='text' name='bopael' value='$bopael'>";
echo "<p>";
echo "Civilstatus:";
echo "<br><input type='text' name='civilstatus' value='$civilstatus'>";
echo "<p>";
echo "Uddannelse:";
echo "<br><input type='text' name='uddannelse' value='$uddannelse'>";
echo "<p>";
echo "Kontakt:";
echo "<br><textarea name='kontakt' cols='85' rows='5'>$kontakt</textarea>";
echo "<p>";
echo "Introduktion:";
echo "<br><textarea name='intro' cols='85' rows='5'>$intro</textarea>";
echo "<p>";
echo "Fritekst:";
echo "<br><textarea name='tekst' cols='85' rows='8'>$tekst</textarea>";
echo "<br>";
echo "<input type='submit' value='Gem'>";
echo "</form>";


}


}

else {

echo "Brugernavnet / Passwordet var desværre forkert";

}

?>
Avatar billede jakobdo Ekspert
01. september 2005 - 18:34 #1
Prøv efter sætningen:

mysql_query($insertSQL);
at lave:
if(mysql_affected_row()>0)
{
echo "opdateringen gik godt";
}
else
{
echo mysql_errno() . ": " . mysql_error() . "\n";
}
Avatar billede venchil Nybegynder
01. september 2005 - 18:39 #2
PHP giver mig denne error, hvis jeg sætter din kode ind jakobdo

Fatal error: Call to undefined function: mysql_affected_row() in /customers/madskjaer.dk/madskjaer.dk/httpd.www/content_admin_profil.php on line 39

Iøvrigt ændrede jeg lige mysql_query($insertSQL); til mysql_query($updateSQL);
Avatar billede venchil Nybegynder
01. september 2005 - 18:40 #3
Nå, har fået det til at virke, men tak for hjælpen anyway.
Avatar billede venchil Nybegynder
01. september 2005 - 18:41 #4
du må gerne lægge et svar (vi deler point), jakobdo
Avatar billede jakobdo Ekspert
01. september 2005 - 18:57 #5
Svar!
Avatar billede venchil Nybegynder
01. september 2005 - 19:26 #6
Well... nu er jeg så igen løbet ind i lidt problemer. Jeg var åbenbart lidt for hurtig på aftrækkeren...

Scriptet virker fint, men:

$navn_ny = "test";
$updateSQL = "update profil set navn='addslashes($navn_ny);' where id=1";
virker ikke. Den putter bare teksten "addslashes(test);" ind i tabellen, og det er jo ikke meningen... Hvordan løser jeg dette?
Avatar billede dmdisco Nybegynder
01. september 2005 - 19:30 #7
prøv med:
$updateSQL = "UPDATE profil SET navn=addslashes('$navn_ny') WHERE id=1";
Avatar billede jaw Nybegynder
01. september 2005 - 19:38 #8
Korrekt er :

$updateSQL = "UPDATE profil SET navn='".addslashes($navn_ny)."' WHERE id=1";
Avatar billede jakobdo Ekspert
01. september 2005 - 20:13 #9
Takker for point!
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