table probleem
Ik heb een database gemaakt met een table genaamd profiles. Hier moeten dus profielen in komen te staan van leden van de site. Ik had dit helemaal af en toen ik eenmaal ook de hyperlinks en al af had. *dankzij hulp van deze site in mijn vorige post*. Maar ik kwam er nu achter dat ik vergeten was email toe te voegen aan de table. Nu heb ik dit gedaan.
Maar nu werkt het helemaal niet meer. Ik had wel email al in het form en het actie script gezet.
Ook heb ik al de hele table opnieuw gemaakt.
Ik heb dus met ID 13 rijen in mijn table. Ik weet niet wat er fout is .. misschien moet ik de INT waarde veranderen ?
Overigens heb ik alles varchar op id na. Kan dit wel met een email ? .. alle varchar zijn 100 .. alleen voor 1 ding waar url in komt te staan is 150.
Ik zal hier ff toevoegen de 2 doc's.:
Createprofile.php
<p>Maak hier je eigen Real Life profile</p>
<form name="form1" method="post" action="makeprofile.php">
<left>Naam:</left><center><input name="naam" type="text" id="naam" size="100" maxlength="100"><br></center>
<left>Nickname:</left><center><input name="nickname" type="text" id="nickname" size="100" maxlength="100"><br></center>
<left>Email:</left><center><input name="email" type="text" id="email" size="100" maxlength="100"><br></center>
<left>Geslacht:</left><center><input name="geslacht" type="text" id="geslacht" size="100" maxlength="100"><br></center>
<left>Leeftijd:</left><center><input name="leeftijd" type="text" id="leeftijd" size="100" maxlength="100"><br></center>
<left>Woonplaats:</left><center><input name="woonplaats" type="text" id="woonplaats" size="100" maxlength="100"><br></center>
<left>Opleiding:</left><center><input name="opleiding" type="text" id="opleiding" size="100" maxlength="100"><br></center>
<left>Favoriete Muziek:</left><center><input name="muziek" type="text" id="muziek" size="100" maxlength="100"><br></center>
<left>Hobby's:</left><center><input name="hobby" type="text" id="hobby" size="100" maxlength="100"><br></center>
<left>Favoriete Ras:</left><center><input name="ras" type="text" id="ras" size="100" id="ras" maxlength="100"><br></center>
<left>Clan Rank:</left><center><input name="clanrank" type="text" id="clanrank" size="100" maxlength="100"><br></center>
<left>Link naar bnet profile:<center></left><input name="bnetprofiel" type="text" id="bnetprofiel" size="100" maxlength="150"><br></center>
<br>
<input type="submit" name="Submit" value="Voegtoe">
<input type="reset" name="reset" value="Reset">
</form>
En hier de actie : makeprofile.php
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 include("config.php");
$naam=$_POST['naam'];
$nickname=$_POST['nickname'];
$email=$_POST['email'];
$geslacht=$_POST['geslacht'];
$leeftijd=$_POST['leeftijd'];
$woonplaats=$_POST['woonplaats'];
$opleiding=$_POST['opleiding'];
$muziek=$_POST['muziek'];
$hobby=$_POST['hobby'];
$ras=$_POST['ras'];
$clanrank=$_POST['clanrank'];
$bnetprofiel=$_POST['bnetprofiel'];
$query = "INSERT INTO profiles VALUES ('".$naam."', '".$nickname."', '".$email."', '".$geslacht."', '".$leeftijd."', '".$woonplaats."', '".$opleiding."', '".$muziek."', '".$hobby."', '".$ras."', '".$clanrank."', '".$bnetprofiel."')";
$res = mysql_query($query);
if ($res) {
echo"Bedankt voor het maken van een profiel! Klik <a href=\"index.php\">HIER</a> om terug te gaan naar de homepage. ";
}
else{
echo"Uw profiel is niet aangemaakt <a href=\"createprofile.php\">probeer opnieuw</a>";
}
?>
$naam=$_POST['naam'];
$nickname=$_POST['nickname'];
$email=$_POST['email'];
$geslacht=$_POST['geslacht'];
$leeftijd=$_POST['leeftijd'];
$woonplaats=$_POST['woonplaats'];
$opleiding=$_POST['opleiding'];
$muziek=$_POST['muziek'];
$hobby=$_POST['hobby'];
$ras=$_POST['ras'];
$clanrank=$_POST['clanrank'];
$bnetprofiel=$_POST['bnetprofiel'];
$query = "INSERT INTO profiles VALUES ('".$naam."', '".$nickname."', '".$email."', '".$geslacht."', '".$leeftijd."', '".$woonplaats."', '".$opleiding."', '".$muziek."', '".$hobby."', '".$ras."', '".$clanrank."', '".$bnetprofiel."')";
$res = mysql_query($query);
if ($res) {
echo"Bedankt voor het maken van een profiel! Klik <a href=\"index.php\">HIER</a> om terug te gaan naar de homepage. ";
}
else{
echo"Uw profiel is niet aangemaakt <a href=\"createprofile.php\">probeer opnieuw</a>";
}
?>
effe samengevat. Zonder in de database email te zetten doet het het wel.. Met email in de database doet het het niet.
dimitri:
Hoi,
Ik heb een database gemaakt met een table genaamd profiles. Ik heb dus met ID 13 rijen in mijn table. Ik weet niet wat er fout is .. misschien moet ik de INT waarde veranderen ?
===> Dit zou ik zo houden en heb je ook auto-incriment aan...
Overigens heb ik alles varchar op id na. Kan dit wel met een email ? .. alle varchar zijn 100 .. alleen voor 1 ding waar url in komt te staan is 150.
==> lijkt mij goed...
Ik heb een database gemaakt met een table genaamd profiles. Ik heb dus met ID 13 rijen in mijn table. Ik weet niet wat er fout is .. misschien moet ik de INT waarde veranderen ?
===> Dit zou ik zo houden en heb je ook auto-incriment aan...
Overigens heb ik alles varchar op id na. Kan dit wel met een email ? .. alle varchar zijn 100 .. alleen voor 1 ding waar url in komt te staan is 150.
==> lijkt mij goed...
Ga vanmiddag nog verder mee aan de slag eerst effies weg.
Suc6 lissy
auto_increment staat aan, en id staat op not null.
Heb ik het draaien dan hoor je het van me!!
Groet, lissy
===> <left>Naam:</left><center><input name="naam" type="text" id="naam" size="100" maxlength="100"><br></center> etc.
===> laat dat id= ..... van allemaal is gewoon weg en neem dit: value=.... voor allemaal.
Ik weet niet voor de 100% of dit de veroorzaker is maar goed het is het proberen waard.
Suc6! lissy
Een nieuwe tabel heb ik ook al 's gemaakt, en dat werkt ook niet.
Maar als ik e-mail uit de tabel verwijder. Doet het het wel.. Maar dan komt bij mijn members.php bestand waar ik heb staan van $ .row['naam']; etc. * het weergegeven van iemands profiel.*
Gaat het fout bij email .. Maar dat is omdat ik wel bij makeprofile $_POST['email'] heb staan.
Misschien het beste om e-mail er tijdelijk uit te halen. Tot er een oplossing is.
*EDIT: ik denk het probleem gevonden te hebben, er is iets met de column ID. Als ik iets toevoeg namelijk via phpmyadmin zelf ipv via de website. Dan krijg ik de error: 1136 - Column count doesn't match value count at row 1.
Row 1 is dus ID. Moet de startwaarde van mijn id dan misschien NULL zijn ipv NOT NULL ? wants als ik bijv dit doe:
INSERT INTO profiles VALUES('', 'bvnaam' 'bvnickname' etc );
Dan lukt het dus .. die eerst '', slaat dus op mijn ID . Ik zal 'm 's wijzigen naar NULL ipv NOT NULL. Hopen dat het dan opgelost is.. */EDIT*
Gewijzigd op 19/08/2005 15:39:00 door dimitri
CREATE TABLE profiles (
id int auto_increment NULL primary key,
etc
etc
));
Dan geeftie nog NOT NULL aan de id ..
Ik zal in de code 's gewoon '' invoegen. misschien dat dat het oplost.
*EDIT* Dit werkt dus .. Ik heb geen waar het volgende staat:
$query = "INSERT INTO profiles VALUES ('".$naam."', '".$nickname."', '".$email."', '".$geslacht."', '".$leeftijd."', '".$woonplaats."', '".$opleiding."', '".$muziek."', '".$hobby."', '".$ras."', '".$clanrank."', '".$bnetprofiel."')";
Voor '".$naam."', het volgende toegevoegd ''
En nu werkt het. Zeer scheef aangezien wanneer ik email weghaal * wat ik dus niet meer ga testen :P straks lukt dat niet ben ik weer een aap gelogeerd.* zonder '' in het begin van de code kan leven. Wel met het geen dan dat het niet juist word weergegeven. Maar lissy bedankt voor je hulp !!
Thenks !
Gewijzigd op 19/08/2005 15:56:00 door dimitri
Het is niet vreemd dat 'id' een 'NOT NULL' krijgt, aangezien dat de primary key is. Primary keys kunnen/mogen niet NULL zijn.
Verder, als je een INSERT-commando geeft, moeten de velden in precies dezelfde volgorde staan als in je tabel-definitie. Jouw insert-statement begon met het veld 'naam', maar dat moet dus 'id' zijn. Aangezien id een auto-increment veld is, kun je daarvoor gewoon een lege waarde opgeven; MySQL zal dan zelf een geldige waarde bedenken. je kan echter niet de waarde voor id weglaten, omdat dan de volgorde van je velden niet meer klopt.