Hallo,

Ik wil een formulier opzetten waarbij je een artikel in de database steekt.
Er is ook een kolom categorie.

In het formulier moet je eerst kiezen onder welke categorie het artikel valt dat je in de database wil steken.

Je krijgt dus eerst een selectieblokje waar je de categorie kiest.
Maar daar krijg ik een melding:

Fatal error: Call to a member function query() on null in /customers/5/f/b/van.be/httpd.www/test2.php on line 36


Kan iemand mij helpen om dit werkend te krijgen aub?

<?php 
	include"../connection.php";
	
	$Categrorie = $_POST['Categorie'];
	$machinenaam = $_POST['machinenaam'];
	$hoofdafb = $_POST['hoofdafb'];
	$hoofdafb_alt = $_POST['hoofdafb_alt'];
	$afbklein1 = $_POST['afbklein1'];
	$afbklein1_alt = $_POST['afbklein1_alt'];
	$afbklein2 = $_POST['afbklein2'];
	$afbklein2_alt = $_POST['afbklein2_alt'];
	$afbklein3 = $_POST['afbklein3'];
	$afbklein3_alt = $_POST['afbklein3_alt'];
	$afbklein4 = $_POST['afbklein4'];
	$afbklein4_alt = $_POST['afbklein4_alt'];
	$machine_omsch = $_POST['machine_omsch'];
	$spanning = $_POST['spanning']; 
	$machinegewicht = $_POST['machinegewicht'];
	$bouwjaar = $_POST['bouwjaar']; 
	
	$sql = "INSERT INTO TweedehandsMach (Categorie , machinenaam, hoofdafb, hoofdafb_alt, afbklein1, afbklein1_alt, afbklein2, afbklein2_alt, afbklein3, afbklein3_alt, afbklein4, afbklein4_alt, machine_omsch, spanning, machinegewicht, bouwjaar)
	VALUES('".$_POST['Categorie']."', '".$_POST['machinenaam']."', '".$_POST['hoofdafb']."','".$_POST['hoofdafb_alt']."','".$_POST['afbklein1']."', '".$_POST['afbklein1_alt']."', '".$_POST['afbklein2']."', '".$_POST['afbklein2_alt']."', '".$_POST['afbklein3']."', '".$_POST['afbklein3_alt']."', '".$_POST['afbklein4']."', '".$_POST['afbklein4_alt']."', '".$_POST['machine_omsch']."', '".$_POST['spanning']."', '".$_POST['machinegewicht']."', '".$_POST['bouwjaar']."')";
	
	if ($conn->query($sql) === TRUE){
		echo "artikel werd succesvol toegevoegd.";
	} else {
		echo "Er liep iets fout." . $sql . "<Br>" . $conn->error;
	}
	
	$conn->close();
?>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"] ?>">
<fieldset>
    <label>De categorie waaronder de machine valt:
    <?php 
		$query = "SELECT catNaam FROM CAT";
		$result = mysql_query($query) or die(mysql_error()."[".$query."]");
		?>
		<select name="Categorie">
		<?php 
		while ($row = mysql_fetch_array($result))
			{
    	echo "<option value='".$row['path']."'>'".$row['catNaam']."'</option>";
		}
		?>        
		</select>
    </label> 
<Br><Br> 
    <label>Naam van de machine<input type="text" name="machinenaam"></label><Br>
     <label>Kies de hoofdafbeelding  (logo)<input type="file" name="hoofdafb" size="40"></label><Br>
     <label>Alt tekst<input type="text" name="hoofdafb_alt"></label>
     <Br><br>
     <label>Kies een eerste afbeelding  (logo)<input type="file" name="afbklein1" size="40"></label><Br>
     <label>Alt tekst<input type="text" name="afbklein1_alt"></label>
     <Br>
     <label>Kies een 2e afbeelding  (logo)<input type="file" name="afbklein2" size="40"></label><Br>
     <label>Alt tekst<input type="text" name="afbklein2_alt"></label>
     <Br>
     <label>Kies een 3e afbeelding  (logo)<input type="file" name="afbklein3" size="40"></label><Br>
     <label>Alt tekst<input type="text" name="afbklein3_alt"></label>
     <Br>
     <label>Kies een 4e afbeelding  (logo)<input type="file" name="afbklein4" size="40"></label><Br>
     <label>Alt tekst<input type="text" name="afbklein4_alt"></label><Br>
     <Br>
     <label>Omschrijving:<Br>
     <textarea name="machine_omsch" rows="10" cols="50"></textarea></label><Br>
     <label>Spanning <input type="text" name="spanning"></label><Br>
    <label>Gewicht <input type="text" name="machinegewicht"></label><Br>
    <label>Afmetingen (in CM) <input type="text" name="machineafmeting"></label><Br>
    <label>Bouwjaar <input type="text" name="bouwjaar"></label><Br>
</fieldset>
<input type="submit" value="Toevoegen"><input type="reset" value="Annuleren">
</form>

je zorgt dat al je foto's een tijdelijke hash krijgen.

Na het opslaan : kan je met mysqli_insert_id() achterhalen welke id-nummer deze heeft gekregen

een hash is gewoon een versleuteling.

<?php
$hash = sha1('phphulp');
echo $hash;
?>

resultaat:

71685f3d72483add4370452c40b71f112da67dd4


mysqli_insert_id() geeft het ID terug van een record dat je zojuist hebt toegevoegd met een INSERT query
<?php
$con = mysqli_connect('localhost', 'user', 'password', 'database');

$result = mysqli_query($con, "INSERT INTO table (field1, field2) VALUES ('value1', 'value2')");

if(FALSE !== $result) {
$new_id = mysqli_insert_id($con);
echo 'Het record heeft id ' . $new_id . ' gekregen.';
}
?>
Je kan ook rand(1,99) doen om een tijdelijk nummer te krijgen. Maar wat als iemand tegelijkertijd een machine toevoegt, en tegelijkertijd hetzelfde nummer krijgt. Diegene die het eerst de machine toevoegt, krijgt de foto's van de andere.

Ikzelf koos voor een hash omdat deze aanzienlijk unieker is dan een bepaald getal.

Reageren