Opslaan in database

Status
Niet open voor verdere reacties.

ferdibulk

Gebruiker
Lid geworden
14 mrt 2007
Berichten
113
Ik moet iets opslaan in mijn database van uit textfields. Alleen sluit die uit eindelijk wel op maar er staat dan niets gewoon een lege regel met een cijfer van de auto_inc

dit is me code.
PHP:
<html>
  <head>
    <title>Fietshandel Snelle Jelle</title>
	<link rel="stylesheet" type="text/css" href="style.css">
  </head>
  <body>
  <h1>Snelle Jelle</h1>
  <p>Een nieuw merk toevoegen:</p> 
<form method="POST" action=modeltoevoegen.php> 
<table border="1"> 
  <tr><td>Merknaam</td><td><input type="text" name="merknaam2"></td></tr> 
 <tr><td>Land</td><td><input type="text" name="land"></td></tr> 
  </table> 
  <input type="submit" value="Voeg merk toe"> 
<?php

$server = "localhost"; // op welke server moeten we aanmelden
	$username = "root"; // met welke gebruikersnaam gaan we inloggen?
	$password = ""; // wat is het password voor de betreffende account?
	mysql_connect($server, $username, $password); // connect met de server met de gegevens die we zonet hebben opgegeven?
  
	$dbname = "fietshandel"; //  hoe heet de database die we willen gebruiken?
	mysql_select_db($dbname); // selecteer op de server database die we willen gaan gebruiken  


$merknaam=$_POST['merknaam2']; 
$land=$_POST['land'];
 
$query= " INSERT INTO merk
VALUES ('', '$merknaam', '$land')"; 


  $result = mysql_query($query); // de query wordt uitgevoerd en de uitkomst wordt in $result gezet. 


 
        ?>
  </table>
  </body>
</html>
ik moet in tabel merk.

merkcode (autoinc) merknaam en land opslaan. wie weet wat ik fout heb gedaan?
 
Laatst bewerkt door een moderator:
<html>
<head>
<title>Fietshandel Snelle Jelle</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<h1>Snelle Jelle</h1>
<p>Een nieuw merk toevoegen:</p>
<form method="POST" action=modeltoevoegen.php>
<table border="1">
<tr><td>Merknaam</td><td><input type="text" name="merknaam2"></td></tr>
<tr><td>Land</td><td><input type="text" name="land"></td></tr>
</table>
<input type="submit" value="Voeg merk toe">
<?php

$server = "localhost"; // op welke server moeten we aanmelden
$username = "root"; // met welke gebruikersnaam gaan we inloggen?
$password = ""; // wat is het password voor de betreffende account?
$serverVerbinding = mysql_connect($server, $username, $password); // connect met de server met de gegevens die we zonet hebben opgegeven?

$dbname = "fietshandel"; // hoe heet de database die we willen gebruiken?
mysql_select_db($dbname, $serverVerbinding); // selecteer op de server database die we willen gaan gebruiken


$merknaam=$_POST['merknaam2'];
$land=$_POST['land'];

$query= "INSERT INTO merk SET merknaam ='$merknaam', land ='$land'";


$result = mysql_query($query, $serverVerbinding); // de query wordt uitgevoerd en de uitkomst wordt in $result gezet.



?>
</table>
</body>
</html>


Heb de code wat bijgevuld(rood), misschien moet je het zo is proberen?
 
Volgens mij moet je in een INSERT statement ook de veldnamen noemen. Dus
PHP:
$query= " INSERT INTO merk ('merkcode', 'merknaam', 'land')
VALUES ('', '$merknaam', '$land')";
Of wat de veldnamen ook precies zijn.
 
Dit was het alle 2 niet. Nog steeds geeft hij alleen de merkcode een cijfer en laat de rest van de velden leeg. het is net als of hij de tekst in de textfields niet leest
 
Dit lijkt me ook niet helemaal juist: <form method="POST" action=modeltoevoegen.php>

Misschien dat dat van invloed is?

Dit zou dan moeten werken: <form method="POST" action="modeltoevoegen.php">
 
Ook dit is het niet. Het is echt dat hij de tabel niet vult, maar hij geeft ook geen NULL waardes door terwijl de tabel daar wel op ingesteld is als deze niets heeft om in te vullen, dus krijgt als ware een query door waar niets in staat
 
Volgens mij moet je met een if isset werken. Als je nu op submit klikt laad hij de pagina opnieuw met lege velden en voert daarna de query uit. En in die query staat dan niks.
PHP:
<html>
<head>
<title>Fietshandel Snelle Jelle</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<h1>Snelle Jelle</h1>
<p>Een nieuw merk toevoegen:</p>

<?php

if(isset($_POST["toevoegen"]))
{
$server = "localhost"; // op welke server moeten we aanmelden
$username = "root"; // met welke gebruikersnaam gaan we inloggen?
$password = ""; // wat is het password voor de betreffende account?
$serverVerbinding = mysql_connect($server, $username, $password); // connect met de server met de gegevens die we zonet hebben opgegeven?

$dbname = "fietshandel"; // hoe heet de database die we willen gebruiken?
mysql_select_db($dbname, $serverVerbinding); // selecteer op de server database die we willen gaan gebruiken 


$merknaam=$_POST['merknaam2']; 
$land=$_POST['land'];

$query= "INSERT INTO merk SET merknaam ='$merknaam', land ='$land'";


$result = mysql_query($query, $serverVerbinding); // de query wordt uitgevoerd en de uitkomst wordt in $result gezet. 
}

?>

 
<form method="POST" action="modeltoevoegen.php"> 
<table border="1"> 
<tr><td>Merknaam</td><td><input type="text" name="merknaam2"></td></tr> 
<tr><td>Land</td><td><input type="text" name="land"></td></tr> 
</table> 
<input type="submit" value="Voeg merk toe" name="toevoegen"> 
</table>

</body>
</html>
 
ook dit is hem niet, heb nog de query aangepast maar ook dat werkte niet. begin zelf ook een beetje uit ideeën te raken
 
Hmm, het enigste wat ik nu nog zie is dat het form niet gesloten word, misschien dat het dan werkt?
 
Heb het net even zelf getest en deze code werkt bij mij:

PHP:
<html> 
<head> 
<title>Fietshandel Snelle Jelle</title> 
<link rel="stylesheet" type="text/css" href="style.css"> 
</head> 
<body> 
<h1>Snelle Jelle</h1> 
<p>Een nieuw merk toevoegen:</p> 

<?php 

if(isset($_POST["toevoegen"])) 
{ 
 
$serverVerbinding = mysql_connect("localhost","root"); // connect met de server met de gegevens die we zonet hebben opgegeven? 
 
mysql_select_db("fietshandel", $serverVerbinding); // selecteer op de server database die we willen gaan gebruiken  


$merknaam=$_POST['merknaam2'];  
$land=$_POST['land']; 

$query= "INSERT INTO merk SET merknaam ='$merknaam', land ='$land'"; 


$result = mysql_query($query, $serverVerbinding); // de query wordt uitgevoerd en de uitkomst wordt in $result gezet.  
} 

?> 

  
<form method="POST" action="modeltoevoegen.php">  
<table border="1">  
<tr><td>Merknaam</td><td><input type="text" name="merknaam2"></td></tr>  
<tr><td>Land</td><td><input type="text" name="land"></td></tr>  
</table>  
<input type="submit" value="Voeg merk toe" name="toevoegen">  
</table>
</form> 

</body> 
</html>
 
Ja, die INSERT-query is fout, dat werd al gezegd.

Iets als het volgende heb je nodig:

PHP:
<form blabla>

<?php

if($_SERVER['REQUEST_METHOD'] == 'POST'){

  // Validatie.

  $sQuery = "INSERT INTO 
				table_1 
			(field_1, 
			 field_2, 
			 field_3) 
				VALUES 
			('".mysql_real_escape_string($_POST['value_1'])."',
			 '".mysql_real_escape_string($_POST['value_2'])."',
			 '".mysql_real_escape_string($_POST['value_3'])."')";
			 
  $rResult = mysql_query($sQuery);
  
  if(!$rResult){
  
	echo 'INSERT is mislukt. Het gaat om deze query:<br />'
		 .$sQuery.'
		 <br /><br />
		 Met de volgende foutmelding:<br />
		 '.myqsl_error();
 
  }else{
  
    echo 'Gelukt!';

  }
}
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan