De casus die gesteld wordt:

Bouw een interactieve site die wordt gekoppeld aan een MySQL-database.

•Gegevens invoeren in de database.
•Gegevens uit de database presenteren.

Ik heb een formulier gemaakt dat de database aanmaakt (database makennieuw.php):

<?php

mysql_connect;

mysql_query('create database klantgegevens_hema');

mysql_select_db('klantgegevens_hema');
print '<p>De database is geselecteerd</p>';

// kgh = klantgegevens hema
$query='CREATE TABLE kgh(
klantnummer INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
voornaam VARCHAR(20) NOT NULL,
achternaam VARCHAR(20) NOT NULL,
email VARCHAR(20) NOT NULL,
commentaar VARCHAR(100))';

if (@mysql_query($query)){;
print'<p>de tabel is gemaakt</p>';
} else {
die('<p>tabel niet gemaakt omdat:<b>'.mysql_error().'</b>.</p>De gevraagde query was:'.$query.'</p>');
}

mysql_close();

?>


en het andere wat de gegevens erin moet stoppen(gegevensinvoerenEDIT.php):


<html>
<head>
<title>een blog entry toevoegen</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">

<?php
ini_set('display_errors',1);
error_reporting(E_ALL&~E_NOTICE);

if(isset($_POST['submit'])){//behandeld het formulier

//connect en selecteer
if($dbc=@mysql_connect){//hier nog zonder root en qwerty voor school

if(!@mysql_select_db('klantgegevens_hema')){
die('<p>Could not select the database because:<b>'.mysql_error().'</b></p>');
}

}else{
die('<p>Could not connect to MySQL because:<b>'.mysql_error().'</b></p>');
}

//Definieer de query
$query="INSERT INTO `kgh`(klantnummer,voornaam,achternaam,telefoonnummer,email,commentaar)
VALUES('','{$_POST['voornaam']}','{$_POST['achternaam']}','{$_POST['telefoonnummer']}','{$_POST['email']}','{$_POST['commentaar']}')";

//voer de query uit
if(@mysql_query($query))
{
(print"<p><i>Uw gegevens zijn toegevoegd. Bedankt voor uw bijdrage</i>&nbspHEMA NEDERLAND</p>");


}else{
(print"<p>Kan het niet toevoegen omdat:<b>".mysql_error()."</b>. De query was $query.</p>");
}

mysql_close();

}
//}
//laat het formulier zien
?>

<form action="GegevensinvoerenEDIT.php" method="post">
<!--Hier wordt de voor- en achternaam gevraagd-->
<br>
<table width="75%" border="0">
<tr>
<td width="21%">
<div align="right">Voornaam:&nbsp&nbsp</div>
</td>
<td width="77%">
<input type="text" name="voornaam" size="20"/>
</td>
<td width="2%">&nbsp;</td>
</tr>
<tr>
<td width="21%">&nbsp;</td>
<td width="77%">&nbsp;</td>
<td width="2%">&nbsp;</td>
</tr>
<tr>
<td width="21%">
<div align="right">Achternaam:&nbsp&nbsp</div>
</td>
<td width="77%">
<input type="text" name="achternaam" size="20"/>
</td>
<td width="2%">&nbsp;</td>
</tr>
<tr>
<td width="21%">&nbsp;</td>
<td width="77%">&nbsp; </td>
<td width="2%">&nbsp;</td>
</tr>
<tr>
<td width="21%">
<div align="right">Telefoon nummer: </div>
</td>
<td width="77%">
<input type="text" name="telefoonnummer" size="10">
</td>
<td width="2%">&nbsp;</td>
</tr>
<tr>
<td width="21%">&nbsp;</td>
<td width="77%">&nbsp;</td>
<td width="2%" rowspan="3">&nbsp;</td>
</tr>
<tr>
<td width="21%">
<div align="right">E-mailadres:&nbsp&nbsp</div>
</td>
<td width="77%">
<input type="text" name="email" size="20"/>
</td>
</tr>
<tr>
<td width="21%">&nbsp;</td>
<td width="77%">&nbsp;</td>
</tr>
<tr>
<td width="21%" height="39">
<div align="right">Opmerkingen:&nbsp&nbsp</div>
</td>
<td width="77%" rowspan="2">
<textarea name="commentaar"
rows="4" cols="30"></textarea>
</td>
<td width="2%" rowspan="2">&nbsp;</td>
</tr>
<tr>
<td width="21%">&nbsp;</td>
</tr>
</table>
<br>
<table width="75%" border="0">
<tr>
<td width="21%">&nbsp; </td>
<td width="30%">
<input type="submit" name="submit" value="Verstuur mijn gegevens"/>
</td>
<td width="49%">
<input type="reset" name="reset" value="Leeg het formulier"/>
</td>
</tr>
</table>

</form>

</body>
</html>

-------------------------------



Is er misschien iemand die mij kan vertellen wat er fout is aan de code? Als n00b is het voor mij nog bijna allemaal magie wat er gebeurd ;)

Bvd Paul

edit: </form> toegevoegd, ; haakjes toegevoegd en { toegevoegd, ipadres en datum verwijderd bij INSERT en VALUES, 0 veranderd in '', ' toegevoegd
SanThe schreef op 08.06.2005 12:10
Maar nu heb je (5 items)VALUES(6 items)

Oh ok NOW heeft waarschijnlijk met de datum te maken die er niet meer inzit. Heb em verwijdert en krijg dit:

$query="INSERT INTO kgh(klantnummer,voornaam,achternaam,response,commentaar)VALUES(",'{$_POST['voornaam']}','{$_POST['achternaam']}','{$_POST['response']}','{$_POST['commentaar']})";

Alleen dat einde lijkt me een beetje raar, ziet er iig niet goed uit. Krijg nog steeds de parseerror dat er een , te veel staat in die regel
Probeer deze eens:
$query="INSERT INTO `kgh` (klantnummer, voornaam, achternaam, response, commentaar) VALUES ('', '{$_POST['voornaam']}', '{$_POST['achternaam']}', '{$_POST['response']}', '{$_POST['commentaar']})";

Je eertse value was een dubbelquote dat moet twee enkelquotes achter elkaar zijn.
Wanneer ik die 2 aanpassingen (" '' en 'kgh') heb gemaakt krijg ik deze foutmelding:

Kan het niet toevoegen omdat: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 ''kgh'(klantnummer,voornaam,achternaam,response,commentaar)VALUES('','Paul','naak' at line 1. De query was INSERT INTO 'kgh'(klantnummer,voornaam,achternaam,response,commentaar)VALUES('','Paul','naaktgeboren','\'s ochtends','test van mijn formulier).

Die 'kgh' moet `kgh` zijn. Quotes die bij de ~ staan.
Mooi, das al weer een error minder :)

Nu de error:

Kan het niet toevoegen omdat: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 ''commentaar dummy text)' at line 1.
VALUES('','Paul','naaktgeboren','\'s ochtends','test van mijn formulier).

Quootje na formulier?

VALUES('','Paul','naaktgeboren','\'s ochtends','test van mijn formulier').
SanThe schreef op 08.06.2005 16:25
VALUES('','Paul','naaktgeboren','\'s ochtends','test van mijn formulier).

Quootje na formulier?

VALUES('','Paul','naaktgeboren','\'s ochtends','test van mijn formulier').


JE BENT FANTASTISCH :d :THUMB:
Nu zit ik met het volgende probleem: Ongeacht wat er ingevuld wordt, ketst die in de database. Ik heb al een tijd zitten prutsen met het ! maar ik krijg het niet voorelkaar. Kan iemand mij vertellen hoe ik dit op een goede manier oplos? Er moet iig een aanpassing komen onder

if(isset($_POST['submit'])){

En last but not least, ook hoe er bij telefoonnummer dan ook alleen maar nummers komen. Zoals je kan zien aan de text vd database heb ik het zo getracht te doen, maar het werkt op 1 of andere manier niet.

Is er iemand die me met dit probleem kan helpen? Ik heb er echt veeeel moeite mee namelijk.
Wat voor een melding krijg je?
SanThe schreef op 09.06.2005 21:09
Wat voor een melding krijg je?


De database loopt \'goed\' maar ik wil voorkomen dat er lege velden worden opgestuurd, dat er dubbele gegevens komen en dat er bij bijvoorbeeld telefoonnummer geen text wordt gezet....

Reageren