Een hele goede morgen allemaal,
Misschien dat 1 van jullie geweldenaren nog een helpdende hand kan toesteken;
Ik ben nu (eindelijk) zover dat ik een soort 'hoofdscherm' heb, waaruit ik kan kiezen
voor een overzicht van alle adressen, een adres toevoegen, een adres verwijderen
,een adres updaten en een enkel adrs opvragen.
Eerlijkheide gebied mij er wél bij te vertellen dat ik het heb van de basiscursus php5.
Je moet tenslotte ergens beginnen. Het probleem is dat de basiscursus
werkt met sqllite en op de server van mijn provider Msql 4.1.10 standaard. Ik heb dus alle
commando's aan proberen te passen met de mysql commando's. Mbv van jullie,
zoeken op internet en zoeken in boeken. Ik moet zeggen dat het steeds leuker wordt!
Nu terug naar de realiteit, de volgende problemen komen nog op waar ik geen raad mee weet:
Bij het 'overzicht van alle adressen' staan er in de laatste kolommen
een link naar del (roept 'verwijderadres.php op), in krijg en blijf ik de foutmelding houden:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/xxx/xxx/xxx/adres/verwijderadres.php on line 41.
De code voor het adressen overzicht:
<?php
// variabelen initialiseren
//=============================
include ("connect.php");
$query= "SELECT * FROM adres ORDER BY id";
$result = mysql_query("$query") or die ("Fout opgetreden bij het maken van een verbinding");
// ============================
?>
<html>
<head>
<title>Overzicht adressen</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><style type="text/css">
<!--
body,td,th {
color: #FFFFFF;
}
body {
background-color: #00CCFF;
}
-->
</style>
</head>
<body>
<!-- eerst de kolomkoppen voor de tabel in plain HTML schrijven -->
<table border="1" width="80%" align="center">
<tr>
<td colspan="6"><h2 align="center">Adressen overzicht</h2></td>
</tr>
<tr>
<th>ID</th>
<th>Naam</th>
<th>Achternaam</th>
<th>Adres</th>
<th>Nr</th>
<th>P-code</th>
<th>Plaats</th>
<th>Tel.</th>
<th>Mobiel</th>
<th>@-1</th>
<th>@-2</th>
<th>Www</th>
<th>Del</th>
<th>Upd</th>
</tr>
<!-- Vanaf hier de PHP while()-lus. Elke lusdoorgang schrijft
een tabelrij naar het scherm -->
<?php
while ($rij = mysql_fetch_array($result)) {
echo ("<tr>
<td>" . $rij['id'] .
"<td>" . $rij['voornaam'] .
"<td>" . $rij['achternaam'] .
"<td>" . $rij['adres'] .
"<td>" . $rij['nummer'] .
"<td>" . $rij['postcode'] .
"<td>" . $rij['woonplaats'] .
"<td>" . $rij['telefoon'] .
"<td>" . $rij['mobiel'] .
"<td>" . $rij['email1'] .
"<td>" . $rij['email2'] .
"<td>" . $rij['url'] .
"<td><a href=\"verwijderadres.php?id=" . $rij['id'] . "\">Del</a></td>" .
"<td><a href=\"bewerkadres.php?id=" . $rij['id'] . "\">Upd</a></td></tr>");
}
?>
<!-- Einde van de lus, tabel afsluiten -->
</table>
<hr>
<!-- Eventueel rest van de pagina -->
</body>
</html>
Het adressenoverzicht werkt volgens mij, alleen laat hij in het overzicht het 'id' nummer niet zien.
Misschien dat hier het addertje verscholen zit?
Nu, vanuit dit overzicht op de 'Del' link klikken geeft bovenstaande fout:
(Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/xxx/xxx/xxx/adres/verwijderadres.php on line 41.)
Hier de code van verwijderadres.php:
<?php
// verbinding met database invoegen
include("connect.php");
// controleren of pagina zichzelf heeft aangeroepen
// via hidden-field uit het formulier
if (isset($_POST["bevestiging"])){
$query="DELETE FROM adres WHERE id=" .$_POST["id"];
$result = mysql_query("query") or die ("Fout opgetreden bij het maken van een verbinding");
echo("De volgende opdracht is uitgevoerd: <b>$query</b><br>\n");
if ($result){
echo ("Record nummer " .$_POST["id"] . " is verwijderd<br>\n");
echo ("<a href=\"verwijderadres.php\">Terug naar het overzicht</a>");
}
}else{
// pagina heeft zichzelf nog niet aangeroepen,
// eerst om bevestiging vragen
$query="SELECT * FROM adres WHERE id=" .$_GET["id"];
$result = mysql_select_db("$db") or die ("Fout opgetreden bij het maken van een verbinding");
?>
<html>
<head>
<title>Verwijderen: weet u het zeker?</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><style type="text/css">
<!--
body,td,th {
color: #FFFFFF;
}
body {
background-color: #FF0000;
}
-->
</style></head>
<body>
<h2>Let op: wilt u deze gegevens verwijderen?</h2>
<?php
include ("connect.php");
//while ($rij = sqlite_fetch_array($result)) // oude regel
while($rij = mysql_fetch_row($result)){
echo("ID = " . $rij['id'] . "<br>\n");
echo("Naam = ". $rij['voornaam'] . "<br>\n");
echo("Achternaam = " . $rij['achternaam'] . " <br>\n");
echo("Adres = ". $rij['adres'] . "<br>\n");
echo("Nummer = ". $rij['nummer'] . "<br>\n");
echo("Postcode = ". $rij['postcode'] . "<br>\n");
echo("Woonplaats = ". $rij['woonplaats'] . "<br>\n");
echo("Telefoon = ". $rij['telefoon'] . "<br>\n");
echo("Mobiel = ". $rij['mobiel'] . "<br>\n");
echo("Email1 = ". $rij['email1'] . "<br>\n");
echo("Email2 = ". $rij['email2'] . "<br>\n");
echo("Url = ". $rij['url'] . "<br><hr>\n");
}?>
<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"]);?>">
<input type="Submit" value="Ja, verwijderen">
<input type="Button" value="Nee, terug" onclick="javascript:history.back();">
</form>
<?php
// else-blok correct afsluiten
}
?>
</body>
</html>
Ik kan op de button 'ja, verwijderen' klikken wat ik wil, maar er gebeurt niets. Krijg alleen
na korte tijd 'fout bij maken van verbinding', terwijl dezelfde connect.php wordt gebruikt
als bij overzichtadressen.php. Ook een 2e keer connent includen maakt niet uit. Dan maar helemaal terug
naar het adressenoverzicht.
Nu wil ik die ene regel die in de database staat updaten via de link, en je raad het al, er komt weer een mysqlwarning op,
het formulier wordt wél correct aangeroepen.
Dit is de foutmelding/waarschuwing:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/xxx/xxx/xxx/adres/bewerkadres.php on line 51
en dit is de code:
<?php
// verbinding met database invoegen
include("connect.php");
// controleren of pagina zichzelf heeft aangeroepen
// via hidden-field uit het formulier
if (isset($_POST["bevestiging"])){
// query samenstellen
$query="UPDATE adres SET
voornaam = '". $_POST["voornaam"] ."',
achternaam = '". $_POST["achternaam"] . "',
adres = '". $_POST["adres"] ."',
nummer = '". $_POST["nummer"] ."',
postcode = '". $_POST["postcode"] ."',
woonplaats = '". $_POST["woonplaats"] ."',
telefoon = '". $_POST["telefoon"] ."',
mobiel = '". $_POST["mobiel"] ."',
email1 = '". $_POST["email1"] . "'
email2 = '". $_POST["email2"] ."',
url = '". $_POST["url"] ."',
WHERE id=" .$_POST["id"];
$result = mysql_query("$query") or die ("Fout opgetreden bij het maken van een verbinding");
echo("De volgende opdracht is uitgevoerd: <b>$query</b><br>\n");
if ($result){
echo ("Record nummer " .$_POST["id"] . " is bijgewerkt<br>\n");
echo ("<a href=\"overzichtadressen.php\">Terug naar het overzicht</a>");
}
}else{
// pagina heeft zichzelf nog niet aangeroepen,
// formulier tonen om gegevens te bewerken
$query="SELECT * FROM adres WHERE id=" . $_GET["id"];
$result = mysql_select_db("$db") or die ("Fout opgetreden bij het maken van een verbinding");
?>
<html>
<head>
<title>Bewerken: wijzig de adres gegevens</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><style type="text/css">
<!--
body,td,th {
color: #FFFFFF;
}
body {
background-color: #FF0000;
}
-->
</style></head>
<body>
<h2>Wijzig deze gegevens:</h2>
<?php
// gegevens ophalen en toekennen aan tijdelijke variabelen
While ($rij = mysql_fetch_array($result)) {
$vn = $rij['voornaam'];
$an = $rij['achternaam'];
$ad = $rij['adres'];
$nr = $rij['nummer'];
$pc = $rij['postcode'];
$wp = $rij['woonplaats'];
$tf = $rij['telefoon'];
$mb = $rij['mobiel'];
$e1 = $rij['email1'];
$e2 = $rij['email2'];
$url = $rij['url'] ;
}?>
<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"]);?>">
Voornaam:<br> <input type="text" name="voornaam" value="<?php echo($vn);?>" size="50"><br>
Achternaam:<br> <input type="text" name="achternaam" value="<?php echo($an);?>" size="50"><br>
Nummer:<br> <input type="text" name="nummer" value="<?php echo($nr);?>" size="4"><br>
Postcode:<br> <input type="text" name="postcode" value="<?php echo($pc);?>" size="7"><br>
Woonplaats:<br> <input type="text" name="woonplaats" value="<?php echo($wp);?>" size="50"><br>
Telefoon:<br> <input type="text" name="telefoon" value="<?php echo($tf);?>" size="11"><br>
Mobiel:<br> <input type="text" name="mobiel" value="<?php echo($mb);?>" size="11"><br>
Email1:<br> <input type="text" name="email1" value="<?php echo($e1);?>" size="50"><br>
Email2:<br> <input type="text" name="email2" value="<?php echo($e2);?>" size="50"><br>
Www:<br> <input type="text" name="website" value="<?php echo($url);?>" size="100"><br>
<hr>
<input type="Submit" value="Bijwerken">
<input type="Button" value="Terug" onclick="javascript:history.back();">
</form>
<?php
// else-blok correct afsluiten
}
?>
</body>
</html>
Om het verhaal compleet te maken, hierbij ook mijn connect.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Connect</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
$host = "localhost";
$dbusername = "xxxxxx";
$password = "xxxxxxx";
$db = "xxxxx";
mysql_connect("$host", "$dbusername", "$password");
mysql_select_db("$db") or die ("Fout opgetreden bij het maken van een verbinding");
?>
</body>
</html>
en de startpagina:
<html>
<head>
<title>De database: adressen</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body,td,th {
color: #FFFFFF;
}
body {
background-color: #00CC66;
}
a:link {
color: #FFFFFF;
}
a:visited {
color: #FFFFFF;
}
-->
</style></head>
<body>
<h2>De Adresdatabase</h2>
<table width="90%" border="1">
<tr>
<td><p><strong>Maak een keuze</strong></p>
<ul>
<li><a href="../adres/overzichtadressen.php">Overzicht van alle adressen</a></li>
<li><a href="../adres/adrestoevoegen.php">Adres toevoegen</a></li>
<li><a href="../adres/verwijderadres.php">Adres verwijderen</a></li>
<li><a href="../adres/bewerkadres.php">Adres wijzigen</a></li>
<li><a href="../adres/zoekadres.php">Zoeken naar adres</a></li>
</ul>
</td>
</tr>
</table>
<p> </p>
</body>
</html>
en de code van de zoekpagina:
<html>
<head>
<title>Records zoeken</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><style type="text/css">
<!--
body,td,th {
color: #FFFFFF;
}
body {
background-color: #00CCFF;
}
-->
</style></head>
<body>
<h2>U kunt hier zoeken op (deel van) achternaam:</h2>
<form action="overzichtadressen.php" method="post">
<input type="text" name="achternaam" value="" size="50">
<input type="Submit" value="Zoeken">
<input type="Button" value="Terug" onclick="javascript:history.back();">
</form>
</body>
</html>
Hoop dat jullie iets voor me kunnen betekenen. Tuur.
3.215 views