insert data
Ik heb net een extra tabel toegevoegd. 'User_age' en nu kunnen bestaande leden daar hun leeftijd invullen, maar nu kunnen nieuwe leden zich niet langer registeren. je krijgt dan deze error:
Column count doesn't match value count at row 1
dan heb je een foutje in je query met betrekking tot een veld, laat je query eens zien?
http://84.29.179.219/leden/index2.php
username: test
ww: testtest
beetje code mag, dan snappen we het beter;)
Verder is het niet handig om een leeftijd in te vullen, een geboortedatum/jaar is vele malen handiger. De leeftijd is ieder jaar anders (althans zolang je blijft leven...) en de geboortedatum blijft hetzelfde. Je moet de datum uiteraard wel in een kolom van het type DATE zetten.
De query is waarscheinlijk zo
INSERT INTO tbl VALUES ('id','naam','enz...');
Dus als jij opeens het 3e veld verandert (of 1 toevoegt als 3e)
Dan gaat de rest erna ook door, en pakt hij de verkeerde, velden.
Wat je moet doen is je query nalopen en kijken of het klopt ;)
Edit: Ik ben weer eens traag
Gewijzigd op 16/03/2006 21:33:00 door Han eev
en zo in phpmyadmin:
http://84.29.179.219/blaaa.JPG
Age, leeftijd, is een afgeleide van de geboortedatum. Het is dus veel handiger om een geboortedatum, of alleen het geboortejaar, op te slaan. En een datum sla je op in een DATE.
maar oké dat is even bijzaak, als ik er nu bijvoorbeeld Woonplaats had staan, hoe had het dan gemoeten?
Zet eerst eens de volledig query hier neer, nu moeten we er naar raden. Let op: Het aantal kolomnamen in je query moet gelijk zijn aan het aantal values in je query.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
mysql_query("
UPDATE
tbl_users
SET
user_name = '" . $_POST['user'] . "',
user_email = '" . $_POST['email'] . "',
user_age = '" . $_POST['age'] . "',
user_url = '" . $_POST['url'] . "',
user_dateformat = '" . $_POST['date'] . "',
user_showmail = '" . $_POST['showmail'] . "',
user_public = '" . $_POST['public'] . "',
user_pass = '" . md5($_POST['pass']) . "',
user_pm = '" . $_POST['pm'] . "'
WHERE
user_id = '" . $_SESSION['user_id'] . "'")
or die(mysql_error());
?>
mysql_query("
UPDATE
tbl_users
SET
user_name = '" . $_POST['user'] . "',
user_email = '" . $_POST['email'] . "',
user_age = '" . $_POST['age'] . "',
user_url = '" . $_POST['url'] . "',
user_dateformat = '" . $_POST['date'] . "',
user_showmail = '" . $_POST['showmail'] . "',
user_public = '" . $_POST['public'] . "',
user_pass = '" . md5($_POST['pass']) . "',
user_pm = '" . $_POST['pm'] . "'
WHERE
user_id = '" . $_SESSION['user_id'] . "'")
or die(mysql_error());
?>
Het is trouwens een slecht plan om de query binnen de functie mysql_query() te zetten. Dan kun je de query nooit meer echoen. Zet de query in een variabele en laat de functie mysql_query() deze variabele uitvoeren: mysql_query($query)
Code (php)
1
2
3
2
3
<?php
mysql_query("INSERT INTO tbl_users VALUES ('','" . $_POST['user'] . "','" . $_POST['email'] . "',NULL,'" . md5($_POST['pass']) . "',NOW(),'NULL','d-m-Y H:i:s',1,1,1,NULL,1,NULL,'" . $_ENV['REMOTE_ADDR'] . "')") or die(mysql_error());
?>
mysql_query("INSERT INTO tbl_users VALUES ('','" . $_POST['user'] . "','" . $_POST['email'] . "',NULL,'" . md5($_POST['pass']) . "',NOW(),'NULL','d-m-Y H:i:s',1,1,1,NULL,1,NULL,'" . $_ENV['REMOTE_ADDR'] . "')") or die(mysql_error());
?>
maar bij het registreren vraaft hij geen leeftijd... maar moet ik hier wat aan veranderen?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
$query = "
INSERT INTO
tbl_users
VALUES (
'',
'" . $_POST['user'] . "',
'" . $_POST['email'] . "',
NULL,
'" . md5($_POST['pass']) . "',
NOW(),
'NULL',
'd-m-Y H:i:s',
1,
1,
1,
NULL,
1,
NULL,
'" . $_ENV['REMOTE_ADDR'] . "'
)";
mysql_query($query) or die(mysql_error());
?>
$query = "
INSERT INTO
tbl_users
VALUES (
'',
'" . $_POST['user'] . "',
'" . $_POST['email'] . "',
NULL,
'" . md5($_POST['pass']) . "',
NOW(),
'NULL',
'd-m-Y H:i:s',
1,
1,
1,
NULL,
1,
NULL,
'" . $_ENV['REMOTE_ADDR'] . "'
)";
mysql_query($query) or die(mysql_error());
?>
Hoeveel kolommen heb je in je tabel en waarom noem je deze kolommen niet in je query? Wel zo duidelijk, maakt het debuggen wederom eenvoudiger. En doe ook eens echo $query; dan weet je wat er naar de server wordt gestuurd.
Verder is 'd-m-Y H:i:s' geen datum!!! Dan weet je al vast dat je daar nog een bug hebt zitten...
Ja ik heb dit script gedownload enzo.. en ik heb 16 kolommen in tabel...
oké maar ondertussen werkt hij nog steeds niet (?)
$query = "
INSERT INTO
tbl_users
VALUES (
'',
'" . $_POST['user'] . "',
'" . $_POST['email'] . "',
NULL,
'" . md5($_POST['pass']) . "',
NOW(),
'NULL',
'd-m-Y H:i:s',
1,
1,
1,
NULL,
1,
NULL,
'" . $_ENV['REMOTE_ADDR'] . "'
)";
mysql_query($query) or die(mysql_error());
??
Echo de query eens en welke foutmelding krijg je?
Code (php)
1
2
3
2
3
<?php
mysql_query("INSERT INTO tbl_users VALUES ('','" . $_POST['user'] . "','" . $_POST['email'] . "',NULL,'" . md5($_POST['pass']) . "',NOW(),'NULL','d-m-Y H:i:s',1,1,1,NULL,1,NULL,'" . $_ENV['REMOTE_ADDR'] . "')") or die(mysql_error());
?>
mysql_query("INSERT INTO tbl_users VALUES ('','" . $_POST['user'] . "','" . $_POST['email'] . "',NULL,'" . md5($_POST['pass']) . "',NOW(),'NULL','d-m-Y H:i:s',1,1,1,NULL,1,NULL,'" . $_ENV['REMOTE_ADDR'] . "')") or die(mysql_error());
?>
en als ik dat in z,n ding zet zoals jij net zei dan doet hij het helemaal niet meer, en ik krijg nog steeds dezelfde melding
Code (php)
1
2
3
4
2
3
4
<?php
$sql = mysql_query("INSERT INTO tbl_users VALUES ('','" . $_POST['user'] . "','" . $_POST['email'] . "',NULL,'" . md5($_POST['pass']) . "',NOW(),'NULL','d-m-Y H:i:s',1,1,1,NULL,1,NULL,'" . $_ENV['REMOTE_ADDR'] . "')") or die(mysql_error());
echo $sql;
?>
$sql = mysql_query("INSERT INTO tbl_users VALUES ('','" . $_POST['user'] . "','" . $_POST['email'] . "',NULL,'" . md5($_POST['pass']) . "',NOW(),'NULL','d-m-Y H:i:s',1,1,1,NULL,1,NULL,'" . $_ENV['REMOTE_ADDR'] . "')") or die(mysql_error());
echo $sql;
?>