29. januar 2009 - 20:09Der er
18 kommentarer og 1 løsning
mysqli_query update?
Hejsa. er der nogen der kan fortælle mig hvorfor scriptet herunder ikke opdaterer det jeg har i min DB når jeg trykker ret artikel?
<?php IF(!empty($_GET['id'])){ $conn = mysqli_connect ("localhost","root","1234","webdes"); $getid = $_GET['id']; $getData = mysqli_query($conn, "SELECT * FROM artikeldb WHERE id = '$getid' ORDER BY id DESC LIMIT 1"); while($row = mysqli_fetch_array($getData)){
mysqli_query($conn, "UPDATE artikeldb SET overskrift = '$newoverskrift', navn = '$newnavn', artikel = 'newartikel' WHERE id = '".$_GET['id']."' LIMIT 1");
Når jeg skriver mysql_error(); får jår jeg følgende Warning: mysqli_error() expects exactly 1 parameter, 0 given in C:\wamp\www\Nyhed\index.php on line 12
Dette løser ikke problemet, tror jeg. Men her er der da en fejl: mysqli_query($conn, "UPDATE artikeldb SET overskrift = '$newoverskrift', navn = '$newnavn', artikel = 'newartikel' WHERE id = '".$_GET['id']."' LIMIT 1");
burde vist være mysqli_query($conn, "UPDATE artikeldb SET overskrift = '$newoverskrift', navn = '$newnavn', artikel = '$newartikel' WHERE id = '".$_GET['id']."' LIMIT 1");
Og ville det ikke være smart at rykke dette stykke: IF($_POST['editNews'] == "yes"){ $newoverskrift = addslashes($_POST['overskrift']); $newnavn = addslashes($_POST['overskrift']); $newartikel = addslashes($_POST['artikel']); $conn = mysqli_connect ("localhost","root","1234","webdes");
mysqli_query($conn, "UPDATE artikeldb SET overskrift = '$newoverskrift', navn = '$newnavn', artikel = 'newartikel' WHERE id = '".$_GET['id']."' LIMIT 1");
}
op oven over, hvor du udskriver det? dvs. op efter IF(!empty($_GET['id'])){ $conn = mysqli_connect ("localhost","root","1234","webdes");
og så kan du i det stykke udelade der hvor du connecter, så skriv i stedet
mysqli_query($conn, "UPDATE artikeldb SET overskrift = '$newoverskrift', navn = '$newnavn', artikel = 'newartikel' WHERE id = '".$_GET['id']."' LIMIT 1");
Btw, du laver flere af disse linjer: $conn = mysqli_connect ("localhost","root","1234","webdes"); én er vel nok, skulle jeg mene (og den skal stå øverst)
I alle dine sql-kald, skriver du sql uden ``-anførselstegn. Jeg ved ikke, om det har nogen indflydelse, men jeg plejer altid at bruge ``-anførselstegn om tabelnavne og tabel-værdier (eller hvad man kalder dem) Din sql ser sådan ud mysqli_query($conn, "UPDATE artikeldb SET overskrift = '$newoverskrift', navn = '$newnavn', artikel = '$newartikel' WHERE id = '".$_GET['id']."' LIMIT 1"); Jeg ville rette det til: mysqli_query($conn, "UPDATE `artikeldb` SET `overskrift` = '$newoverskrift', `navn` = '$newnavn', `artikel` = '$newartikel' WHERE `id` = '".$_GET['id']."' LIMIT 1");
Nu er jeg da kommet med nogle forslag. Prøv lige at se, om noget af det hjælper - det kunne være, da der egentlig er ret meget rod i din side. Forreste, kan jeg anbefale, at man har en side for sig, der opdaterer SQL'en, så det ikke sker på samme side, som man udskriver den, eller hvad man gør. PHP kan nemt sende én retur til den side, man vil se efterfølgende. (bare et lille tip).
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.