20. september 2006 - 19:22Der er
3 kommentarer og 1 løsning
Update SQL inde i en åben database løkke
Jeg har en fil der bl.a. indeholder:
<? $con = mysql_connect("DBHOST","BRUGERNAVN","KODEORD"); if (!$con) { die('Could not connect: ' . mysql_error()); }
mysql_select_db("DBNAVN", $con); $id = $_POST['bordnr']; $dbstr = "SELECT * FROM lan_bordres Where bordnr =$id"; $qresultat = mysql_query($dbstr);
while($resultat = mysql_fetch_array($qresultat)) { if (($resultat['navn'] == '') || ($resultat['nick'] == '')) //tjek om der står et navn eller nick i forvejen i databasen { $dbnick = $_POST['nick']; $dbbordnr = $_POST['bordnr']; $dbnavn = $_POST['navn']; $dbclan = $_POST['clan']; $dbmisc = $_POST['div']; $dbq = "\"UPDATE lan_bordres SET nick=\"" .$dbnick. "\", navn=\"" .$dbnavn. "\", clan=\"" .$dbclan. "\", misc=\"" .$dbmisc. " WHERE bordnr=\"" .$dbbordnr. "\""; echo $dbq; //Skriv sql strengen til skærmen - midlertidig mysql_query($dbq); echo "<table border=\"0\" width=\"150\" align=\"center\" class=\"bord\" cellpadding=\"0\" cellspacing=\"0\"><tr><td width=\"100%\"><h5>Tak for din tilmelding</h5>Du kan nu lukke dette vindue<a href=\"java script:window.close()\"> - Luk Vinduet!</a></td></tr></table>"; } else { echo "<table border=\"0\" width=\"150\" align=\"center\" class=\"bord\" cellpadding=\"0\" cellspacing=\"0\"><tr><td width=\"100%\">Du har forsøgt at tage en plads der er optaget. Luk venligst dette vindue og prøv igen!</td></tr></table>"; } } mysql_close($con); ?>
Håber at i kan forstå nogenlunde hvad det er filen laver. Jeg vil gerne om den opdaterede min tabel med de indtastede værdier fra en form, den skriver værdierne fint nok, men den opdaterer dem ikke... Nogen der har en ide om hvorfor og hvordan man løser det? Kan det være fordi min "mysql_query($dbq);" ligger inde i min while løkke der åbner den selvsamme tabel ? I givet fald hvordan løser jeg problemet ?
<? $con = mysql_connect("DBHOST","BRUGERNAVN","KODEORD"); if (!$con) { die('Could not connect: ' . mysql_error()); }
mysql_select_db("DBNAVN", $con); $id = $_POST['bordnr']; $dbstr = "SELECT * FROM lan_bordres Where bordnr =$id"; $qresultat = mysql_query($dbstr);
while($resultat = mysql_fetch_array($qresultat)) { if (($resultat['navn'] == '') || ($resultat['nick'] == '')) //tjek om der står et navn eller nick i forvejen i databasen { $dbnick = $_POST['nick']; $dbbordnr = $_POST['bordnr']; $dbnavn = $_POST['navn']; $dbclan = $_POST['clan']; $dbmisc = $_POST['div']; $dbq = "UPDATE lan_bordres SET nick='$dbnick', navn='$dbnavn', clan='$dbclan', misc='$dbmisc' WHERE bordnr=$dbbordnr"; echo $dbq; //Skriv sql strengen til skærmen - midlertidig mysql_query($dbq); echo "<table border='0' width='150' align='center' class='bord' cellpadding='0' cellspacing='0'><tr><td width='100%'><h5>Tak for din tilmelding</h5>Du kan nu lukke dette vindue<a href='java script:window.close()'> - Luk Vinduet!</a></td></tr></table>"; } else { echo "<table border='0' width='150' align='center' class='bord' cellpadding='0' cellspacing='0'><tr><td width='100%'>Du har forsøgt at tage en plads der er optaget. Luk venligst dette vindue og prøv igen!</td></tr></table>"; } } mysql_close($con); ?>
ja jeg har lige gjort det samme med en search & replace på min egen kode...
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.