Foutmelding 'Row 1'
Drieske - 04/05/2006 19:43
Lid
Hey,
Dit is mijn code
<DIV style="background-color:white;border: 1px solid #CCCCCC; width: 700px;margin:10px;font-family:verdana;font-size:10px;padding:5px;">
<?
function check_email($adres) {
list($local, $host) = explode("@", $adres);
$pattern_local = "^([0-9a-z]*([-|_]?[0-9a-z]+)*)(([-|_]?)\.([-|_]?)[0-9a-z]*([-|_]?[0-9a-z]+)+)*([-|_]?)$";
$pattern_host = "^([0-9a-z]+([-]?[0-9a-z]+)*)(([-]?)\.([-]?)[0-9a-z]*([-]?[0-9a-z]+)+)*\.[a-z]{2,4}$";
$match_local = eregi($pattern_local, $local);
$match_host = eregi($pattern_host, $host);
if($match_local && $match_host) {
return 1;
} else {
return 0;
}
}?>
<?
include('config.php');
if(isset($_POST['verzenden']))
{
if (!trim($_POST['naam'])) {
$error="Je moet je naam invullen";
}
elseif (!trim($_POST['naam1'])) {
$error="Je moet je Familienaam invullen";
}
elseif(!check_email($_POST['email'])) {
$error="Je moet een geldig e-mailadres invullen";
}
if ($error != "") {
?>
<center>
<table width="100%" border="1" cellspacing="0" cellpadding="2">
<tr>
<td>
<center>
<b><?=$error?></b><br>
<form method="post" action="javascript:history.go(-1)">
<input type="submit" name="Terug" value="Terug" />
</form>
</center>
</td>
</tr>
</table>
</center>
<?php
} else {
//Als alles correct is ingevuld gaan we over naar het posten van de gegevens naar de database
mysql_query ("INSERT INTO petitie (aam, naam1, email) VALUES ('".$_POST['naam']."', '".$_POST['naam1']."', '".$_POST['email']."', NOW())") or die (mysql_error());
print "Je hebt de petitie succesvol ondertekent, klik <a href='http://www.gamefactor.be'>hier</a> om terug te gaan...";
}
}
else
{
?>
<center>
<form action=" <?=$_SERVER['PHP_SELF']?> " method="POST">
Naam: <br><input type="text" name="naam"><br />
Familienaam: <br><input type="text" name="naam1"><br />
E-mail: <br><input type="text" name="email"><br />
<input type="submit" name="verzenden" value="verzenden">
</form> </center>
<?
}
?>
</div>
<DIV style="background-color:white;border: 1px solid #CCCCCC; width: 700px;margin:10px;font-family:verdana;font-size:10px;padding:5px;">
<?
function check_email( $adres ) {
$pattern_local = "^([0-9a-z]*([-|_]?[0-9a-z]+)*)(([-|_]?)\.([-|_]?)[0-9a-z]*([-|_]?[0-9a-z]+)+)*([-|_]?)$" ;
$pattern_host = "^([0-9a-z]+([-]?[0-9a-z]+)*)(([-]?)\.([-]?)[0-9a-z]*([-]?[0-9a-z]+)+)*\.[a-z]{2,4}$" ;
$match_local = eregi ( $pattern_local , $local ) ; $match_host = eregi ( $pattern_host , $host ) ;
if ( $match_local && $match_host ) {
return 1 ;
} else {
return 0 ;
}
} ?>
<?
include ( 'config.php' ) ;
if ( isset ( $_POST [ 'verzenden' ] ) ) {
if ( ! trim ( $_POST [ 'naam' ] ) ) { $error = "Je moet je naam invullen" ;
}
elseif ( ! trim ( $_POST [ 'naam1' ] ) ) { $error = "Je moet je Familienaam invullen" ;
}
elseif ( ! check_email( $_POST [ 'email' ] ) ) {
$error = "Je moet een geldig e-mailadres invullen" ;
}
if ( $error != "" ) {
?>
<center>
<table width="100%" border="1" cellspacing="0" cellpadding="2">
<tr>
<td>
<center>
<b><?= $error ?> </b><br>
<form method="post" action="javascript:history.go(-1)">
<input type="submit" name="Terug" value="Terug" />
</form>
</center>
</td>
</tr>
</table>
</center>
<?php
} else {
//Als alles correct is ingevuld gaan we over naar het posten van de gegevens naar de database
mysql_query ( "INSERT INTO petitie (aam, naam1, email) VALUES ('" . $_POST [ 'naam' ] . "', '" . $_POST [ 'naam1' ] . "', '" . $_POST [ 'email' ] . "', NOW())" ) or
die ( mysql_error ( ) ) ;
print "Je hebt de petitie succesvol ondertekent, klik <a href='http://www.gamefactor.be'>hier</a> om terug te gaan..." ; }
}
else
{
?>
<center>
<form action=" <?= $_SERVER [ 'PHP_SELF' ] ?> " method="POST">
Naam: <br><input type="text" name="naam"><br />
Familienaam: <br><input type="text" name="naam1"><br />
E-mail: <br><input type="text" name="email"><br />
<input type="submit" name="verzenden" value="verzenden">
</form> </center>
<?
}
?>
</div>
en mijn Mysql ziet er als volgt uit:
CREATE TABLE `petitie` (
`id` smallint(6) NOT NULL auto_increment,
`naam` varchar(60) NOT NULL default '',
`naam1` varchar(100) NOT NULL default '',
`email` varchar(60) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;
CREATE TABLE `petitie` (
`id` smallint( 6 ) NOT NULL auto_increment,
`naam` varchar( 60 ) NOT NULL default '' ,
`naam1` varchar( 100 ) NOT NULL default '' ,
`email` varchar( 60 ) NOT NULL default '' ,
) TYPE= MyISAM AUTO_INCREMENT= 3 ;
Nu wanneer ik een naam, familienaam en emailadres invul krijg ik steets deze foutmelding:
Citaat:
Column count doesn't match value count at row 1
Wat is hier het probleem?
4 antwoorden
Gesponsorde links
lasdesigner - 04/05/2006 19:46
PHP beginner
zie je hier zelf geen fout?
<?php
mysql_query ("INSERT INTO petitie (aam, naam1, email) VALUES ('".$_POST['naam']."', '".$_POST['naam1']."', '".$_POST['email']."', NOW())") or die (mysql_error());
?>
<?php
mysql_query ( "INSERT INTO petitie (aam, naam1, email) VALUES ('" . $_POST [ 'naam' ] . "', '" . $_POST [ 'naam1' ] . "', '" . $_POST [ 'email' ] . "', NOW())" ) or
die ( mysql_error ( ) ) ; ?>
Kijk eens hier:
petitie (aam, naam1, email)
die aam, zie jij die ook in je database?
Groet,
Ultimatum - 04/05/2006 19:47 (laatste wijziging 04/05/2006 19:50)
PHP expert
je geeft meer values aan dan dat je velden aangeeft, want je geeft met NOW() aan dat hij de seconden in de database moet zetten maar je defineerd geen veld, het veld is ook niet in je tabel trug te vinden, dus je moet het als volgt doen, zet dit in je tabel
`tijd` INT( 10 ) NOT NULL,
`tijd` INT( 10 ) NOT NULL ,
(zet je onder email)
en dan vervang je deze regel
mysql_query ("INSERT INTO petitie (aam, naam1, email) VALUES ('".$_POST['naam']."', '".$_POST['naam1']."', '".$_POST['email']."', NOW())") or die (mysql_error());
mysql_query ( "INSERT INTO petitie (aam, naam1, email) VALUES ('" . $_POST [ 'naam' ] . "', '" . $_POST [ 'naam1' ] . "', '" . $_POST [ 'email' ] . "', NOW())" ) or
die ( mysql_error ( ) ) ;
door
mysql_query ("INSERT INTO petitie (naam, naam1, email, tijd) VALUES ('".$_POST['naam']."', '".$_POST['naam1']."', '".$_POST['email']."', NOW())") or die (mysql_error());
mysql_query ( "INSERT INTO petitie (naam, naam1, email, tijd) VALUES ('" . $_POST [ 'naam' ] . "', '" . $_POST [ 'naam1' ] . "', '" . $_POST [ 'email' ] . "', NOW())" ) or
die ( mysql_error ( ) ) ;
edit: lasdesigner zag een fout die ik niet zag , ook daar zat weer een foutje dus
trouwens, als je leest begrijp je de foutmelding er staat
het aantal kolommen komt niet overeen met het aantal values (iets in die richting )
TriX - 04/05/2006 19:48 (laatste wijziging 04/05/2006 19:49)
HTML interesse
Vervang:
mysql_query ("INSERT INTO petitie (aam, naam1, email)
mysql_query ("INSERT INTO petitie (naam, naam1, email)
Spel fout @ naam
ikkedikke - 05/05/2006 18:01
PHP expert
je probeert 4 kolommen in te voegen terwijl je maar 3 kolommen benoemt in het begin van je query
Gesponsorde links
Dit onderwerp is gesloten .