Mag ik nogmaals om hulp vragen?

ik krijg een query fout
het komt er op neer, dat voor de nieuwe input in de dbase geplaatst word,
er nagezien word of het mail en naam er al niet instaan
indien niet mag die dus in een record komen
indien wel, dan gewoon de datum update doen


<?php

{
$query = mysql_query("SELECT name, email FROM donatie ");
$dbn = $tabel[name];
$dbm = $tabel[email];

if($dbn == $naam AND $dbm == $email);
{
$sql = " UPDATE donatie
SET datum = NOW()" ;

}
else

{

$sql = "
INSERT INTO donatie
SET
name = '" . $naam . "',
email = '" . $email . "',
datum = NOW()";
if (!mysql_query ($sql)) {
trigger_error (mysql_error ());
}
else
{
header("Location http://127.0.0.1/testen/index1.php";);
exit(0);
}
}
}
?>
op lijn 14 hier krijg ik dus de foutmelding
met dank
Wat is de foutmelding, zonder die foutmelding weet je ook niet wat er fout gaat.

Maar dit klopt in ieder geval niet:
<?php
$dbn = $tabel[name];
$dbm = $tabel[email];
?>
Dat moet natuurlijk zijn:
<?php
$dbn = $tabel['name'];
$dbm = $tabel['email'];
?>

ps. Ik zie nu dat je op regel 8 een ; achter je if-statement hebt staan. Die hoort daar niet.
Haakjes op lijn 3 en 33 zijn zinloos
Lijn 8 de ; moet weg.
Lijn 8 $naam ??? $email ????? waar dien die voor ??
Waar vul je de array ?

bovenaan connecten met database.

regel met header geeft foutmelding
<?
$sql = " UPDATE donatie
SET datum = NOW()" ;
?>
Hiermee worden ALLE records in de tabel 'donatie' bijgewerkt. Ik heb het idee dat je een WHERE bent vergeten...

Echter, i.p.v. met 3 queries (SELECT, UPDATE/INSERT) de boel verwerken, kun je dat ook met 1 query doen. Dat maakt jouw script vele malen eenvoudiger en de database robuster.

Zie http://dev.mysql.com/doc/refman/4.1/en/insert-on-duplicate.html hoe je dat kunt aanpakken. Je hebt wel minimaal MySQL 4.1.0 nodig, maar dat lijkt mij anno 2006 toch wel een minimale vereiste.
Je sluit de if() direct weer af door de ; die er achter staat.

if($dbn == $naam AND $dbm == $email);

Moet zijn:

if($dbn == $naam AND $dbm == $email)
sorry mensen, ikzelf vind het gee exuus
maar ben nog niet lang uit het ziekenhuis, en ik denk dat mijn rein wetvan de pillen die ikmoet slikken
ik plaats hier het script, waar ik nu al enige tyd mee bezig ben
en die het niet doet
ik denk niet dat het een grote fout is
maar ik zie het niet meer
ik val niemand graag lastig
en als beginneling moet ik hetzelf zoveel mogelijk zien
maar nu zit ik vast
de foutregel op mijn pc is regel:
43
ikzelf heb al enkelle fouten eruitgevist


het script:

<?php




$username = 'tester';
$password = 'test';
$db = 'forum';

mysql_connect('localhost',$username,$password)or die('Er kon geen connectie gemaakt worden met de database');
mysql_select_db($db) or die('De database kon niet worden geselecteerd');
ini_set ('display_errors', 1);
error_reporting (E_ALL);



function valid_email ($email) {
return eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email);
}

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$errors = array ();
$naam = strip_tags ($_POST['naam']);
$naam = trim ($naam);
if (empty ($naam)) {
array_push ($errors, '<p>Geen naam ingevuld</p>');
}
if (!valid_email ($_POST['email'])) {
array_push ($errors, '<p>Ongeldig e-mailadres</p>');
}
$naam = mysql_real_escape_string ($naam);
$email = mysql_real_escape_string ($_POST['email']);
if (empty ($errors))

$query = mysql_query("SELECT name, email FROM donatie ");
$dbn = $tabel['naam'];
$dbm = $tabel['email'];

if($dbn == $naam AND $dbm == $email)
{
$sql = UPDATE donatie WHERE naam ,email = ' . $naam . ',' . $email . "',SET datum = NOW() ;

}



else
{
header("Location http://127.0.0.1/forum";);
exit(0);
}
}


$sql = "
INSERT INTO donatie
SET
name = '" . $naam . "',
email = '" . $email . "',
datum = NOW()";
if (!mysql_query ($sql)) {
trigger_error (mysql_error ());
}
else
{
header("Location: http://127.0.0.1//forum";);
exit(0);
}
}


?>


<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Mail Formulier</title>
<style type="text/css">
...
body {
background-color: FFFFFF;
}
</style>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
</script>

</head>

<body>
<h1>Vul uw gebruikersnaam en een geldig e-mailadres in om uw VIP status te bekomen</h1>
<div id="Layer2" style="position:absolute; width:92px; height:18px; z-index:4; left: 53px; top: 166px;"><a href="http://127.0.0.1/forum/"><img src="naarforum.JPG" width="93" height="22" border="0"></a></div>
<form method="post" action="#">
<p>
<label for="naam">naam:</label>
<input name="naam" type="text" value="<?php if (isset ($_POST['naam'])) echo htmlentities ($_POST['naam']); ?>">
</p>
<p>
<label for="email">e-mail:</label>
<input name="email" type="text" value="<?php if (isset ($_POST['email'])) echo htmlentities ($_POST['email']); ?>">
<input type="submit" value="verzenden">
</p>
</form>
</div>
<div id="Layer1" style="position:absolute; width:298px; height:346px; z-index:1; left: 1px; top: 180px;"><img src="2.gif" width="248" height="350"></div>
<div id="Layer3" style="position:absolute; width:200px; height:185px; z-index:3; left: 499px; top: 206px;"><img src="dollar20.jpg" width="199" height="199"></div>
<?php
if (!empty ($errors)) {
?><div id="errors"><?php
foreach ($errors as $value) {
echo $value;
}

}
?>

</body>

kan, wil me iemand helpen aub?
en ook, als iemand me helpt me zeggen wat ik fout doe dan kan ik weer bijleren
met enorm en erg veel dank



Reageren