Vraag & Antwoord

Webprogrammeren & scripting

[php-mysql] script werkt half!

6 antwoorden
  • hoi hoi ik heb het volgende script geschreven naar een aan tutorials en met hulp van hier en daar wat mensen. Nou heb ik twee problemen er mee: * in de tabbelen staat altijd <br /> * als ik iets wil bewerken pakt die altijd de laatste regel. Hier mijn script: [code:1:7aa0575de8] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>IT-Berheer op Newman College Breda</title> <link rel="stylesheet" type="text/css" href="base.css" /> </head> <body> <div id="page"> <h1><a href="/"></a></h1> <h4>IT-Beheer van Newman College</h4> <div class="clear"></div> <div id="sidebar"> <ul id="nav"> <li><a href="index.html">Home</a></li> <li><a href="netwerk.html">Netwerk</a></li> <li><a href="patchpaneel.html">Patchpaneel</a></li> <li><a href="http://www.newmancollege.nl/" target="_blank">Newman College</a></li> </ul> </div> <div id="main_column"> <h3>Patchpaneel</h3> <?php $db = mysql_connect("localhost","root","P@ssword") or die ("Kan niet verbinden: ".mysqlerror()); mysql_select_db("sportinstuif",$db); $sql ="SELECT * FROM inschrijvingen"; $resultaat = mysql_query($sql); if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) { // query samenstellen $query="UPDATE inschrijvingen SET Patchkast = '". $_POST["Patchkast"] ."', Patchbay = '". $_POST["Patchbay"] . "', Nr = '". $_POST["Nr"] ."', Lokaal = '". $_POST["Lokaal"] ."', Plaats = '". $_POST["Plaats"] . "', Kabelnr = '". $_POST["Kabelnr"] . "', Notitie = '". $_POST["Notitie"] . "' WHERE inschrijvingen_id =" .$_POST["id"]; $result = mysql_query($query) or die (mysql_error()); if ($result){ echo '<p>Gegevens zijn succesvol Bijgewerkt</p>'; echo "<p>Je wordt binnen 3 seconden door verwezen naar de tabel</p>"; echo "<meta http-equiv='refresh' content='3;url=patchpaneel_bewerk.php'>"; echo "<p>Als je niet kan wachten klik dan"; echo "<a href=\"patchpaneel_bewerk.php\"> hier</a></p>"; } }else{ // pagina heeft zichzelf nog niet aangeroepen, // formulier tonen om gegevens te bewerken $query = "SELECT * FROM inschrijvingen WHERE inschrijvingen_id=" .$_GET['id']; $result = mysql_query($sql) or die ("FOUT: ".mysqlerror()); ?> <html> <head> <title>IT</title> </head> <body> <p>Wijzig Gegevens</p> <?php // gegevens ophalen en toekennen aan tijdelijke variabelen while ($rij = mysql_fetch_array($result)){ $Patchkast = $rij['Patchkast']; $Patchbay = $rij['Patchbay']; $Nr = $rij['Nr']; $Lokaal = $rij['Lokaal'] ; $Plaats = $rij['Plaats']; $Kabelnr = $rij["Kabelnr"]; $Notitie = $rij["Notitie"]; }?> <table border=1 align="center"> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" /> <input type="hidden" name="bevestiging" value="1"> <input type="hidden" name="id" value="<?php echo($_GET["id"]);?>"> <tr align = center> <td> Patchkast <input type="text" size="8" name="Patchkast" value="<?php echo $Patchkast; ?>" /></td> <td> Patchbay <input type="text" size="8" name="Patchbay" value="<?php echo $Patchbay; ?>" /></td> <td> Nr <input type="text" size="6" name="Nr" value="<?php echo $Nr; ?>" /></td> <td> Lokaal <input type="text" size="10" name="Lokaal" value="<?php echo $Lokaal; ?>" /></td> <td> Plaaats<input type="text" size="8" name="Plaats" value="<?php echo $Plaats; ?>" /></td> <td> Kabelnr<input type="text" size="8" name="Kabelnr"value="<?php echo $Kabelnr; ?>" /></td> <td> Notitie <input type="text" size="8" name="Notitie" value="<?php echo $Notitie; ?>" /></td> </table> <br> <input type="Submit" value="Wijzigingen opslaan"> <input type="Button" value="Terug" onclick="javascript:history.back();"> </form> <?php } ?> </body> </html> [/code:1:7aa0575de8] hoop dat iemand voor miij de oplossing heeft
  • Beschrijf je probleem eerst nog eens even goed. Ik kan uit je beschrijving niet veel opmaken en anders moet ik eerst het hele script gaan onderzoeken voordat ik je kan helpen.
  • dit script vormt heel veel tabellen met daartussen inderdaad een <br>. Om alles in een tabel te plaatsen moet je de table-tags buiten de while-loop plaatsen. Voor het tweede probleem: wijzig <input type="hidden" name="id" value="<?php echo($_GET["id"]);?>"> in <input type="hidden" name="id" value="<?php echo($rij["inschrijvingen_id"];?>"> Overigens moet ik je erop wijzen dat dit script gevoelig is voor SQL-injection (google)
  • @marientje dat heb ik veranderd. allen was vergeten ) te zetten achter ....id"] ;) maar als ik dat heb gedaan krijg ik de volgende foutmelding: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 9 @carlobernardini Sorry dat het niet duidelijk hierbij een tweede poging :) Fout 1: Dat script maakt dus tabellen. Maar die tabellen hebben op een of andere manier een "standaard waarde". Daar bedoel ik mee dat als ik op "bewerken klik en ik krijg dan me tabel te zien dan staat er in elk vlak <br />.. Fout 2: Als ik een aantal regels in mijn tabel heb bv: Regel1: hoi - dag -- bewerken -- verwijderen regel 2: Hallo - doei -- bewerken -- verwijderen regel 3 ey - later -- bewerken -- verwijderen En als ik in regel 1 dan op bewerken klik gaat die toch regel 3 bewerken. Terwijl de link wel elke keer naar een ander ID verwijst. Hopelijk is het zo wat duidelijker!
  • Zo zouden er al een stuk fouten uit moeten zijn: [code:1:04eafd8867] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>IT-Berheer op Newman College Breda</title> <link rel="stylesheet" type="text/css" href="base.css" /> </head> <body> <div id="page"> <h1><a href="/"></a></h1> <h1 style="font-size:20px;">IT-Beheer van Newman College</h4> <div class="clear"></div> <div id="sidebar"> <ul id="nav"> <li><a href="index.html">Home</a></li> <li><a href="netwerk.html">Netwerk</a></li> <li><a href="patchpaneel.html">Patchpaneel</a></li> <li><a href="http://www.newmancollege.nl/" target="_blank">Newman College</a></li> </ul> </div> <div id="main_column"> <h2 style="font-size:18px;">Patchpaneel</h2> <?php $db = mysql_connect("localhost","root","") or die ("Kan niet verbinden: ".mysql_error()); mysql_select_db("sportinstuif"); $sql ="SELECT * FROM inschrijvingen"; $resultaat = mysql_query($sql); if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) { // query samenstellen $query="UPDATE inschrijvingen SET Patchkast='". $_POST["Patchkast"] ."',Patchbay='". $_POST["Patchbay"] . "',Nr='". $_POST["Nr"] ."',Lokaal='". $_POST["Lokaal"] ."',Plaats ='". $_POST["Plaats"] . "',Kabelnr = '". $_POST["Kabelnr"] . "',Notitie='". $_POST["Notitie"] . "' WHERE inschrijvingen_id ='" .$_POST["id"]. "'"; echo $query; $result = mysql_query($query) or die (mysql_error()); if ($result){ echo '<p>Gegevens zijn succesvol Bijgewerkt</p>'; echo "<p>Je wordt binnen 3 seconden door verwezen naar de tabel</p>"; echo "<meta http-equiv='refresh' content='3;url=patchpaneel_bewerk.php'>"; echo "<p>Als je niet kan wachten klik dan"; echo "<a href=\"patchpaneel_bewerk.php\"> hier</a></p>"; } }else{ // pagina heeft zichzelf nog niet aangeroepen, // formulier tonen om gegevens te bewerken $query = "SELECT * FROM inschrijvingen WHERE inschrijvingen_id=" . $_GET['id']; $result = mysql_query($sql) or die ("FOUT: ".mysql_error()); ?> <p>Wijzig Gegevens</p> <?php // gegevens ophalen en toekennen aan tijdelijke variabelen while ($rij = mysql_fetch_array($result)){ $Patchkast = $rij['Patchkast']; $Patchbay = $rij['Patchbay']; $Nr = $rij['Nr']; $Lokaal = $rij['Lokaal'] ; $Plaats = $rij['Plaats']; $Kabelnr = $rij["Kabelnr"]; $Notitie = $rij["Notitie"]; }?> <table border=1 align="center"> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" /> <input type="hidden" name="bevestiging" value="1"> <input type="hidden" name="id" value="<?php echo($_GET["id"]);?>"> <tr align = center> <td> Patchkast <input type="text" size="8" name="Patchkast" value="<?php echo $Patchkast; ?>" /></td> <td> Patchbay <input type="text" size="8" name="Patchbay" value="<?php echo $Patchbay; ?>" /></td> <td> Nr <input type="text" size="6" name="Nr" value="<?php echo $Nr; ?>" /></td> <td> Lokaal <input type="text" size="10" name="Lokaal" value="<?php echo $Lokaal; ?>" /></td> <td> Plaaats<input type="text" size="8" name="Plaats" value="<?php echo $Plaats; ?>" /></td> <td> Kabelnr<input type="text" size="8" name="Kabelnr"value="<?php echo $Kabelnr; ?>" /></td> <td> Notitie <input type="text" size="8" name="Notitie" value="<?php echo $Notitie; ?>" /></td> </table> <br> <input type="Submit" value="Wijzigingen opslaan"> <input type="Button" value="Terug" onclick="javascript:history.back();"> </form> <?php } ?> </body> </html> [/code:1:04eafd8867] Ten eerste had je 2x <html><head> en de hele hotemetoot gebruikt op één pagina, niet echt netjes dus. Daarnaast zat de fout dat hij de hele boel niet inserten in het feit dat je een aanhalingsteken was vergeten: [code:1:04eafd8867] WHERE inschrijvingen_id ='" .$_POST["id"] [/code:1:04eafd8867] moet zijn [code:1:04eafd8867] WHERE inschrijvingen_id ='" .$_POST["id"]. "'"; [/code:1:04eafd8867] Doet hij het nu beter? Ik heb hier je database gesimuleert, dus als je nog problemen hebt kan ik met je meekijken :) [quote:04eafd8867="Marientje"] Voor het tweede probleem: wijzig <input type="hidden" name="id" value="<?php echo($_GET["id"]);?>"> in <input type="hidden" name="id" value="<?php echo($rij["inschrijvingen_id"];?>"> [/quote:04eafd8867] Je maakt een foutje: [code:1:04eafd8867] <input type="hidden" name="id" value="<?php echo $rij["inschrijvingen_id"];?>"> of <input type="hidden" name="id" value="<?=$rij["inschrijvingen_id"];?>"> [/code:1:04eafd8867] Zo werkt het wel :wink:
  • Bedankt voor je duidelijk uitleg! Hij werkt :) Zit nog 1 probleem in.. Als ik bijvoorbeeld de eerste regel wil gaan bewerken dan zie ik dan komt dus de laatste regel op me scherm.. maar hij veranderd dan wel de eerste regel. snap je? Echt onwijs bedankt!! gr hugo

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.