krijg info niet in tabel weergegeven

Status
Niet open voor verdere reacties.

jezebel

Gebruiker
Lid geworden
26 nov 2006
Berichten
35
ik heb een form gemaakt waarvan ik een aantal velden in tabelvorm wil weergeven op een ander pagina
maar er komt telkens een hoop dezelfde foutmeldingen in de pagina waar ik de code schrijf voor het wegschrijven naar de database

Notice: Undefined index: email in c:\program files\easyphp1-8\www\klanten\wegschrijvendb.php on line 27
The query is:
INSERT into klantenid values ('0', '', '', '', '', '', '', '')
The query could not be executed!

heb ik mijn path niet goed ingegeven want ik snap het niet goed

dit is de code van het form

<form action="wegschrijvendb.php" method="POST">
Gebruikersnaam:
<input align="left" type="text" NAME="gebruikersnaam" size="20">
<br>
<br>
Wachtwoord:
<input type="text" name="wachtwoord" size="20">
<br>
<br>
Wachtwoord verifiëren:
<input type="text" name="wachtwoord" size="20">
<br>
<br>
Voornaam:
<input type="text" name="voornaam" size="40">
<br>
<br>
Achternaam:
<input type="text" name="achternaam" size="40">
<br>
<br>
Straat:
<input type="text" name="straat" size="40">
<br>
<br>
Plaats:
<input type="text" name="plaats">
<br>
<br>
Email:
<input type="text" name="email" size="40">
<br>
<br>
<input type="submit" name="submit" class="formsubmit" value="registreer"></fieldset>
</form>

en dit is dan code voor het wegschrijven

<?php
/* schrijft data van "registreer.html" weg */
/* spaties worden automatisch verwijderd door trim */

$gebruikersnaam=$_POST['gebruikersnaam'];
$gebruikersnaam = trim ($gebruikersnaam);
$wachtwoord =$_POST['wachtwoord'];
$wachtwoord = trim ($wachtwoord);
$verifiëren=$_POST['verifiëren'];
$verifiëren = trim ($verifiëren);
$voornaam=$_POST['voornaam'];
$voornaam = trim ($voornaam);
$achternaam=$_POST['achternaam'];
$achternaam = trim ($achternaam);
$straat=$_POST['straat'];
$straat = trim ($straat);
$plaats=$_POST['plaats'];
$plaats = trim ($plaats);
$email=$_POST['email'];
$email = trim ($email);

// variabelen maken voor toegang tot db
$Host = "localhost";
$User = "root";
$Password = "";
$DBName = "rawmaterialwebshop";
$Tabelnaam = "klantenid";

$Link = mysql_connect ($Host, $User, $Password);
$Query = "INSERT into $Tabelnaam values ('0', '$gebruikersnaam', '$wachtwoord', '$voornaam', '$achternaam', '$straat', '$plaats', '$email')";
print ("The query is:<BR>$Query<P>\n");
if (mysql_db_query ($DBName, $Query, $Link)) {
print ("The query was successfully executed!<BR>\n");
} else {
print ("The query could not be executed!<BR>\n");
}
mysql_close ($Link);
?>

kan iemand me helpen
 
Dag jezebel,

Code:
"INSERT into $Tabelnaam values ('0', '$gebruikersnaam',

dit stukje uit je eigen code moet worden

Code:
"INSERT into $Tabelnaam values (0, '" & $gebruikersnaam & "',

dus daar waar je met enkele quotes werkt rond de variabele dient aan het begin ' " & te staan, en aan het eind & " '

Erik
 
Laatst bewerkt:
thx voor het antwoord maar nu geeft hij een parse error weer op die lijn
Parse error: parse error in c:\program files\easyphp1-8\www\klanten\wegschrijvendb.php on line 38

ik heb de lijn zo aangepast
$Query = "INSERT into $Tabelnaam values (0, '"&$gebruikersnaam&'", '"&$wachtwoord&'", '"&$voornaam&'", '"&$achternaam&'", '"&$straat&'", '"&$plaats&'", '"&$email&'")";
 
Sorry, mijn fout. Omdat ik ook veel met VB/ASP werk heb ik het & teken gebruikt, in PHP is het koppelteken echter een punt '.'

Erik
 
mmm nu geeft hij weer dezelfde reeks fouten aan als in het begin maar nu gewoon met het punt tussen de quotes

heeft het misschien iets te maken met de database of die 0?
 
Die 0 kan op zich heel veel in zich hebben.

Als het de index is, dan kan deze niet 0 zijn. Blanco invullen wilt meestal wel helpen dacht ik. Mits je hem op auto increment hebt gezet. Anders in op deze manier eerst de laatste waarde uit de database halen en vervolgens hier 1 bij optellen. Daarna pas gaan invoeren.


Ik maak gewoon gebruik van een statement per tabel. Dan kan je ook nakijken of de kolomnamen goed zijn gebruikt. Dat mis je nu misschien.

Probeer anders hardcore zelf iets in je database te zetten zonder scipt, zodat je de statement kan testen =)
 
ja het zal ws aan die 0 liggen want die slaat terug op de index in mijn tabel en ik heb deze op auto increment staan
maar als ik deze niet invul dan blijf ik dezelfde foutmeldingen krijgen en dat met die laatste waarde uit de db halen kzou niet weten hoe ik dat moet doen omdat ik nog maar net bezig ben met dit
hetzelfde geldt voor die statements rechtstreeks in de db te zetten

thx anyway
 
Probeer dit eens:
PHP:
<?php
/* schrijft data van "registreer.html" weg
/* spaties worden automatisch verwijderd door trim */

$gebruikersnaam= trim($_POST['gebruikersnaam']);
$wachtwoord = trim($_POST['wachtwoord']);
$verifiëren = trim($_POST['verifiëren']);
$voornaam = trim($_POST['voornaam']);
$achternaam = trim($_POST['achternaam']);
$straat = trim($_POST['straat']);
$plaats = trim($_POST['plaats']);
$email = trim($_POST['email']);

// variabelen maken voor toegang tot db
$host = "localhost";
$user = "root";
$password = "";
$database = "rawmaterialwebshop";
$tabelnaam = "klantenid";

//Connectie naar server en database maken
$conn = mysql_connect($server,$user,$password); 
if (!$conn) die ("Could not connect to server"); 
mysql_select_db($database,$conn) or die ("Could not open database");

//Query uitvoeren
$query = "INSERT INTO $tabelnaam ('gebruikersnaam', 'wachtwoord', 'voornaam', 'achternaam', 'straat', 'plaats', 'email')
          VALUES ('$gebruikersnaam', '$wachtwoord', '$voornaam', '$achternaam', '$straat', '$plaats', '$email')";
print ("The query is:<BR>$query<P>\n");
if (mysql_query($query)) {
print ("The query was successfully executed!<br />\n");
} else {
print ("The query could not be executed!<br />\n");
} 
mysql_close ($Link);
?>

Je zult wel even de INSERT query na moeten lopen, ik heb de velden ingevuld zoals ik denk dat ze in je database staan.

edit: aangepast na reactie
 
Laatst bewerkt:
ja het zal ws aan die 0 liggen want die slaat terug op de index in mijn tabel en ik heb deze op auto increment staan
maar als ik deze niet invul dan blijf ik dezelfde foutmeldingen krijgen en dat met die laatste waarde uit de db halen kzou niet weten hoe ik dat moet doen omdat ik nog maar net bezig ben met dit
hetzelfde geldt voor die statements rechtstreeks in de db te zetten

thx anyway


je moet de kolomnamen in je "INSERT INTO" regel zetten, en daarin NIET de index noemen.

Je krijgt dan zoiets =>
Code:
INSERT INTO tabelnaam (kolomnaam2,kolomnaam5,kolomnaar3)  
VALUES ('$waardevoorkolom2','$waardevoorkolom5,'$waardevoorkolom3)

Dit is gewoonweg de beste manier .Als je namelijk later nog een kolom in de table zet, moet je met jouw voorbeeld al je PHP code weer wijzigen. Op bovenstaande manier heb je dat probleem nooit (behalve als je dus een kolomnaam aanpast).

suc6,
Mark
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan