Select / option menu met inhoud van database
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?
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<?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>
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>
- Ariën -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 10/10/2017 14:18:47 door - Ariën -
Ik zal wel proberen uit te vogelen waar precies de fout zit, ik zelf zou de query() anders doen.
en tip gebruik bij include: bijvoorbeeld: require_once("../connect.php");
Gewijzigd op 10/10/2017 13:28:22 door Marco Eilander
Ik ben nog een leek in het php gebeuren... waarom moet ik de $_POSTS[] vervangen en wat zijn juiste variabelen in dt geval?
Probeer eerst die dingen even aan te passen.
Momenteel krijg ik enkel deze error:
Fatal error: Call to a member function query() on null in /customers/5/f/b/van.be/httpd.www/beheer/2dehands/index.php on line 33
Quote:
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
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
require_once("../../connect.php");
$Categorie = $_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('".addslashes ($_POST[Categorie])." ', '".addslashes ($_POST[machinenaam])." ', '".addslashes ($_POST[hoofdafb])." ','".addslashes ($_POST[hoofdafb_alt])." ','".addslashes ($_POST[afbklein1])." ', '".addslashes ($_POST[afbklein1_alt])." ', '".addslashes ($_POST[afbklein2])." ', '".addslashes ($_POST[afbklein2_alt])." ', '".addslashes ($_POST[afbklein3])." ', '".addslashes ($_POST[afbklein3_alt])." ', '".addslashes ($_POST[afbklein4])." ', '".addslashes ($_POST[afbklein4_alt])." ', '".addslashes ($_POST[mach_omsch])." ', '".addslashes ($_POST[spanning])." ', '".addslashes ($_POST[machinegewicht])." ', '".addslashes ($_POST[bouwjaar])." ')";
if ($conn->query($sql) === TRUE){
echo "artikel werd succesvol toegevoegd.";
} else {
echo "Er liep iets fout." . $sql . "<Br>" . $conn->error;
}
$conn->close();
?>
require_once("../../connect.php");
$Categorie = $_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('".addslashes ($_POST[Categorie])." ', '".addslashes ($_POST[machinenaam])." ', '".addslashes ($_POST[hoofdafb])." ','".addslashes ($_POST[hoofdafb_alt])." ','".addslashes ($_POST[afbklein1])." ', '".addslashes ($_POST[afbklein1_alt])." ', '".addslashes ($_POST[afbklein2])." ', '".addslashes ($_POST[afbklein2_alt])." ', '".addslashes ($_POST[afbklein3])." ', '".addslashes ($_POST[afbklein3_alt])." ', '".addslashes ($_POST[afbklein4])." ', '".addslashes ($_POST[afbklein4_alt])." ', '".addslashes ($_POST[mach_omsch])." ', '".addslashes ($_POST[spanning])." ', '".addslashes ($_POST[machinegewicht])." ', '".addslashes ($_POST[bouwjaar])." ')";
if ($conn->query($sql) === TRUE){
echo "artikel werd succesvol toegevoegd.";
} else {
echo "Er liep iets fout." . $sql . "<Br>" . $conn->error;
}
$conn->close();
?>
connection.php
Code (php)
de pagina waar de rest moet:
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
25
26
27
28
29
30
31
32
33
34
35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
require_once("connection.php");
if(isset($_POST['plaatsen'])){
$Categrorie = mysqli_real_escape_string($conn,$_POST['Categorie']);
$machinenaam = mysqli_real_escape_string($conn,$_POST['machinenaam']);
$hoofdafb = mysqli_real_escape_string($conn,$_POST['hoofdafb']);
$hoofdafb_alt = mysqli_real_escape_string($conn,$_POST['hoofdafb_alt']);
$afbklein1 = mysqli_real_escape_string($conn,$_POST['afbklein1']);
$afbklein1_alt = mysqli_real_escape_string($conn,$_POST['afbklein1_alt']);
$afbklein2 = mysqli_real_escape_string($conn,$_POST['afbklein2']);
$afbklein2_alt = mysqli_real_escape_string($conn,$_POST['afbklein2_alt']);
$afbklein3 = mysqli_real_escape_string($conn,$_POST['afbklein3']);
$afbklein3_alt = mysqli_real_escape_string($conn,$_POST['afbklein3_alt']);
$afbklein4 = mysqli_real_escape_string($conn,$_POST['afbklein4']);
$afbklein4_alt = mysqli_real_escape_string($conn,$_POST['afbklein4_alt']);
$machine_omsch = mysqli_real_escape_string($conn,$_POST['machine_omsch']);
$spanning = mysqli_real_escape_string($conn,$_POST['spanning']);
$machinegewicht = mysqli_real_escape_string($conn,$_POST['machinegewicht']);
$bouwjaar = mysqli_real_escape_string($conn,$_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('".$Categrorie."', '".$machinenaam."', '". $hoofdafb."','". $hoofdafb_alt."','".$afbklein1."', '".$afbklein1_alt."', '".$afbklein2."', '". $afbklein2_alt."', '".$afbklein3."', '".$afbklein3_alt."', '".$afbklein4."', '".$afbklein4_alt."', '".$machine_omsch."', '".$spanning."', '".$machinegewicht."', '".$bouwjaar."')";
if ($conn->query($sql) === TRUE){
echo "artikel werd succesvol toegevoegd.";
} else {
echo "Er liep iets fout." . $sql . "<Br>" . $conn->error;
}
}
?>
require_once("connection.php");
if(isset($_POST['plaatsen'])){
$Categrorie = mysqli_real_escape_string($conn,$_POST['Categorie']);
$machinenaam = mysqli_real_escape_string($conn,$_POST['machinenaam']);
$hoofdafb = mysqli_real_escape_string($conn,$_POST['hoofdafb']);
$hoofdafb_alt = mysqli_real_escape_string($conn,$_POST['hoofdafb_alt']);
$afbklein1 = mysqli_real_escape_string($conn,$_POST['afbklein1']);
$afbklein1_alt = mysqli_real_escape_string($conn,$_POST['afbklein1_alt']);
$afbklein2 = mysqli_real_escape_string($conn,$_POST['afbklein2']);
$afbklein2_alt = mysqli_real_escape_string($conn,$_POST['afbklein2_alt']);
$afbklein3 = mysqli_real_escape_string($conn,$_POST['afbklein3']);
$afbklein3_alt = mysqli_real_escape_string($conn,$_POST['afbklein3_alt']);
$afbklein4 = mysqli_real_escape_string($conn,$_POST['afbklein4']);
$afbklein4_alt = mysqli_real_escape_string($conn,$_POST['afbklein4_alt']);
$machine_omsch = mysqli_real_escape_string($conn,$_POST['machine_omsch']);
$spanning = mysqli_real_escape_string($conn,$_POST['spanning']);
$machinegewicht = mysqli_real_escape_string($conn,$_POST['machinegewicht']);
$bouwjaar = mysqli_real_escape_string($conn,$_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('".$Categrorie."', '".$machinenaam."', '". $hoofdafb."','". $hoofdafb_alt."','".$afbklein1."', '".$afbklein1_alt."', '".$afbklein2."', '". $afbklein2_alt."', '".$afbklein3."', '".$afbklein3_alt."', '".$afbklein4."', '".$afbklein4_alt."', '".$machine_omsch."', '".$spanning."', '".$machinegewicht."', '".$bouwjaar."')";
if ($conn->query($sql) === TRUE){
echo "artikel werd succesvol toegevoegd.";
} else {
echo "Er liep iets fout." . $sql . "<Br>" . $conn->error;
}
}
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<form method="post">
<fieldset>
<label>De categorie waaronder de machine valt:</label>
<select name="Categorie">
<?php
$query = $conn->query("SELECT * FROM CAT");
while ($row = mysqli_fetch_array($query)){
echo "<option value='".$row['path']."'>".$row['catNaam']."</option>";
}
?>
</select>
<input type="submit" name="plaatsen" value="Plaatsen maar!"/>
</fieldset>
</form>
<fieldset>
<label>De categorie waaronder de machine valt:</label>
<select name="Categorie">
<?php
$query = $conn->query("SELECT * FROM CAT");
while ($row = mysqli_fetch_array($query)){
echo "<option value='".$row['path']."'>".$row['catNaam']."</option>";
}
?>
</select>
<input type="submit" name="plaatsen" value="Plaatsen maar!"/>
</fieldset>
</form>
Moet je alleen zelf wel even een check maken, dat alles correct is ingevuld en dat alle inputs binnen de form correct zijn. (kan je aanpassen bij de isset().
Nog even een tip/suggestie:
Je had dit stukje :
met daaronder een while() met select options. je was vergeten om in dat stukje "path" erbij te zetten. Je resultaten worden dan namelijk leeg. Ik heb dat stukje nu vervangen naar een * , maar je mag er gerust catNaam,path van maken.
Gewijzigd op 10/10/2017 14:19:11 door Marco Eilander
Zulke aantallen wilt je feitelijk op oneindig houden, dus je kan beter een aparte tabel aanmaken waarin je de foto's opslaat met een auto-incremented ID-nummer, en een apart koppelveld waarin de de ID's met de foto's met de ID's van je Machines koppelt. Op die manier kan je onbeperkt aantal foto's kwijt per machine.
Zo hoef je bij een uitbreiding ook niet je database-structuur en de script overhoop te gooien.
Verder mag je de PHP-code uit dit regeltje wel weglaten:
Je action-attribuut kan prima leeg blijven als het uitvoer plaatsvindt in hetzelfde script.
Gewijzigd op 10/10/2017 14:25:17 door - Ariën -
Ik krijg een leeg (smal) selectiemenuutje te zien zondere waarde.
Wat ik ook opmerk is dat hij telkens ik de pagina vernieuw een lege lijn invoert in de database. Ook al heb ik ondertussen het "naam" veld verplicht gemaakt.
Ariën, ik bekijk dit meteen. Al weet ik niet echt hoe ik deze moet gaan koppelen.
Je gebruikt geen isset(), dat is een functie die zorgt, dat alles daar binnen in wordt uitgevoerd als er op een input is gedrukt, als je dat niet gebruikt, gaat die alles uitvoeren.
Ik denk dat je geen resultaten krijgt ivm het sluiten van je database connectie ergens bovenin. ;)
Gewijzigd op 10/10/2017 14:38:18 door Marco Eilander
Ik maak een tabel met :
ID / afb / afb_alt / machinenaam
Dan ga ik via SELECT alle afb oproepen waar de machinenaam gelijk is aan de machinenaam uit de tabel TweedehandsMach
correct?
Toevoeging op 10/10/2017 14:57:02:
Idd, ik had je isset() niet meegenomen.
de $conn->close(); staat ook af. ;-)
Hij toont nu de categorienamen en hij voegt het artikel toe an dedatabase. Maar hij zet de categorienaam niet bij de machine in de database.
Toevoeging op 10/10/2017 15:01:38:
De melding "artikel werd succesvol toegevoegd." staat er ook constant. In principe moet deze maar getoond worden eenmaal het artikel succesvol toegevoegd is.
Quote:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$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('".$Categrorie."', '".$machinenaam."', '". $hoofdafb."','". $hoofdafb_alt."','".$afbklein1."', '".$afbklein1_alt."', '".$afbklein2."', '". $afbklein2_alt."', '".$afbklein3."', '".$afbklein3_alt."', '".$afbklein4."', '".$afbklein4_alt."', '".$machine_omsch."', '".$spanning."', '".$machinegewicht."', '".$bouwjaar."')";
if ($conn->query($sql) === TRUE){
echo "artikel werd succesvol toegevoegd.";
} else {
echo "Er liep iets fout." . $sql . "<Br>" . $conn->error;
}
}
/*$conn->close();*/
?>
$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('".$Categrorie."', '".$machinenaam."', '". $hoofdafb."','". $hoofdafb_alt."','".$afbklein1."', '".$afbklein1_alt."', '".$afbklein2."', '". $afbklein2_alt."', '".$afbklein3."', '".$afbklein3_alt."', '".$afbklein4."', '".$afbklein4_alt."', '".$machine_omsch."', '".$spanning."', '".$machinegewicht."', '".$bouwjaar."')";
if ($conn->query($sql) === TRUE){
echo "artikel werd succesvol toegevoegd.";
} else {
echo "Er liep iets fout." . $sql . "<Br>" . $conn->error;
}
}
/*$conn->close();*/
?>
Gewijzigd op 10/10/2017 15:03:26 door Sylvie Hoste
Je kan eventueel zoiets doen:
tabel met machines
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
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<table>
<tr>
<td><b>ID</b></td>
<td><b>Machine naam</b></td>
<td><b>Afbeeldingen</b></td>
</tr>
<?php
$query = $conn->query("SELECT * FROM TweedehandsMach ORDER BY id DESC");
while ($row = mysqli_fetch_array($query)){
echo "<tr>
<td>".$row['id']."</td>
<td>".$row['machinenaam']."</td>
<td>";
$zoekafbeeldingen = $conn->query("SELECT * FROM afbeeldingen WHERE machine_id = '".$row['id']."'");
while($afb = mysqli_fetch_array($zoekafbeeldingen)){
echo "<img src=".$afb['url']." style='width:80px;' ??/> ";
}
if(mysqli_num_rows($zoekafbeeldingen) == 0){
echo 'Geen afbeeldingen beschikbaar.';
}
echo " </td>
</tr>";
}
?>
</table>
<tr>
<td><b>ID</b></td>
<td><b>Machine naam</b></td>
<td><b>Afbeeldingen</b></td>
</tr>
<?php
$query = $conn->query("SELECT * FROM TweedehandsMach ORDER BY id DESC");
while ($row = mysqli_fetch_array($query)){
echo "<tr>
<td>".$row['id']."</td>
<td>".$row['machinenaam']."</td>
<td>";
$zoekafbeeldingen = $conn->query("SELECT * FROM afbeeldingen WHERE machine_id = '".$row['id']."'");
while($afb = mysqli_fetch_array($zoekafbeeldingen)){
echo "<img src=".$afb['url']." style='width:80px;' ??/> ";
}
if(mysqli_num_rows($zoekafbeeldingen) == 0){
echo 'Geen afbeeldingen beschikbaar.';
}
echo " </td>
</tr>";
}
?>
</table>
en je afbeeldingen maak je dan ongeveer zo :
(sla dit op als een .sql en importeer het naar je database
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
-- phpMyAdmin SQL Dump
-- version 4.7.3
-- https://www.phpmyadmin.net/
--
-- Host: localhost
-- Gegenereerd op: 10 okt 2017 om 15:04
-- Serverversie: 5.5.31
-- PHP-versie: 5.5.38
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
-- --------------------------------------------------------
--
-- Tabelstructuur voor tabel `afbeeldingen`
--
CREATE TABLE `afbeeldingen` (
`afb_id` int(11) NOT NULL,
`machine_id` int(11) DEFAULT NULL,
`url` varchar(100) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Gegevens worden gexporteerd voor tabel `afbeeldingen`
--
INSERT INTO `afbeeldingen` (`afb_id`, `machine_id`, `url`) VALUES
(1, 1, 'https://www.phphulp.nl/img/phphulp-logo.jpg'),
(2, 1, 'https://www.phphulp.nl/img/phphulp-logo.jpg'),
(3, 1, 'https://www.phphulp.nl/img/phphulp-logo.jpg'),
(4, 2, 'https://www.phphulp.nl/img/phphulp-logo.jpg');
--
-- Indexen voor gexporteerde tabellen
--
--
-- Indexen voor tabel `afbeeldingen`
--
ALTER TABLE `afbeeldingen`
ADD PRIMARY KEY (`afb_id`);
--
-- AUTO_INCREMENT voor gexporteerde tabellen
--
--
-- AUTO_INCREMENT voor een tabel `afbeeldingen`
--
ALTER TABLE `afbeeldingen`
MODIFY `afb_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
-- version 4.7.3
-- https://www.phpmyadmin.net/
--
-- Host: localhost
-- Gegenereerd op: 10 okt 2017 om 15:04
-- Serverversie: 5.5.31
-- PHP-versie: 5.5.38
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
-- --------------------------------------------------------
--
-- Tabelstructuur voor tabel `afbeeldingen`
--
CREATE TABLE `afbeeldingen` (
`afb_id` int(11) NOT NULL,
`machine_id` int(11) DEFAULT NULL,
`url` varchar(100) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Gegevens worden gexporteerd voor tabel `afbeeldingen`
--
INSERT INTO `afbeeldingen` (`afb_id`, `machine_id`, `url`) VALUES
(1, 1, 'https://www.phphulp.nl/img/phphulp-logo.jpg'),
(2, 1, 'https://www.phphulp.nl/img/phphulp-logo.jpg'),
(3, 1, 'https://www.phphulp.nl/img/phphulp-logo.jpg'),
(4, 2, 'https://www.phphulp.nl/img/phphulp-logo.jpg');
--
-- Indexen voor gexporteerde tabellen
--
--
-- Indexen voor tabel `afbeeldingen`
--
ALTER TABLE `afbeeldingen`
ADD PRIMARY KEY (`afb_id`);
--
-- AUTO_INCREMENT voor gexporteerde tabellen
--
--
-- AUTO_INCREMENT voor een tabel `afbeeldingen`
--
ALTER TABLE `afbeeldingen`
MODIFY `afb_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Het komt er dan zo ongeveer uit te zien:
Zo komt je afbeeldingen tabel er ongeveer uit te zien:
Je kan de kolom url eventueel vervangen naar enkel een bestand, maar moet je maar net willen, dat mensen afbeeldingen kunnen uploaden naar je website.
Gewijzigd op 10/10/2017 15:09:22 door Marco Eilander
Of kan dit in 1 formulier?
Je weet immers nog niet meteen het MachineID-nummer welke die geuploade foto zal krijgen. Daarom is het handig om een extra veld te hebben in je Machine-tabel met de naam 'actief'. Hierin plaats je dan een 0 of een 1 wat betekent of deze wel of niet zichtbaar.
Uiteindelijk volgen er dus 3 bewerkingsacties:
- Machine opslaan met waarde '0' in het veld actief.
- Foto's uploaden
- Machine updaten met waarde '1' in het veld actief.
Of je zou het ook direct kunnen doen:
Je zorgt voor een extra veld in je foto-tabel met de naam 'tijdelijke-hash'. Je zorgt dat al je foto's de tijdelijke hash krijgen. Het ID-nummer van je machine die je aan je foto's wilt koppelen weet je immers nog niet, maar de hash wel. Zodra je het nieuwsbericht ook daadwerkelijk hebt opgeslagen, kan je met mysqli_insert_id() achterhalen welke ID-nummer deze heeft gekregen, en aan de hand van de aangemaakte hash kan je dit ID-nummer dan ook in de afbeeldingen-tabel gebruiken bij de foto's.
Dan kan je de tijdelijke hash weer verwijderen, omdat je die niet meer nodig hebt.
Toevallig heb ik dit vandaag voor een eigen project uitgedokterd.
Enige nadeel: Je moet niet tussendoor je bewerkpagina afsluiten nadat je enkel maar geuploadt hebt, mocht dit een apart proces zijn.
Gewijzigd op 10/10/2017 15:37:41 door - Ariën -
Machines toevoegen kan in principe gelijk en later de afbeeldingen, aangezien de afbeeldingen een ID moeten hebben met een verwijzing naar de goede machine.
Betreft de categorienaam, dat kan komen, doordat je "path" van de categorie meegeeft in de select options en die insert je in de database, dus niet de naam.
Gewijzigd op 10/10/2017 15:23:55 door Marco Eilander
En dan later met een login nog iemand
Gewijzigd op 10/10/2017 15:26:20 door - Ariën -
Ik heb het path vervangen door catNaam = opgelost :-D
Toevoeging op 10/10/2017 15:36:28:
Ariën ik ben aan het kijken wat een tijdelijke-hash is en hoe ik die kan toevoegen en ook wat een hash is ...
Gewijzigd op 10/10/2017 15:37:16 door Sylvie Hoste
Een hash is niets anders dan een rekenkundige opstelling van getallen en karakters die berekend zijn uit een bepaalde reeks getallen,zin of woord. Deze is niet terug te draaien waardoor het een 'hash' vormt, en het is dus geen encryptie omdat er niet kan worden teruggerekend.
Lees ook: https://nl.wikipedia.org/wiki/Hashfunctie
Wat je er voor dit doel inzet, maakt totaal niet uit, als het maar uniek is. En daarom gebruik ik md5(), de uniqid() voor de tijd in microseconden en een willekeurig getal met rand().
Voor opslaan van wachtwoorden is md5() tegenwoordig veel te zwak.
Deze hash wordt als eerste samengesteld op de nieuws-aanmaak pagina, en moet gebruikt worden op het moment dat je de foto's in de database wilt koppelen. Omdat je na het opslaan van het gehele formulier deze identificatie-hash dus weet ($uploadhash) kan je na het INSERT'en alle foto's voorzien van de juiste machineID, omdat je die dan wel weet. De hash is niet meer nodig en kan je wissen uit de tabel.
Gewijzigd op 10/10/2017 15:47:49 door - Ariën -
(Moet ik dit trouwens niet in een andere topic zetten? of blijft dit duidelijk? )
Ik heb nu alles van de afbeeldingen uit mijn tabel gehaald en ook uit mijn formulier.
Dus hou ik nu dit over (wat werkt) Alleen toont deze constant : artikel werd succesvol toegevoegd.
Ook al werd er nog niets ingevuld of togevoegd.
Hoe zorg ik ervoor dat die zin enkel te zien is nadat er iets succesvol toegevoegd werd.
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?php
require_once("../connection.php");
if(isset($_POST['plaatsen'])){
$Categrorie = mysqli_real_escape_string($conn,$_POST['Categorie']);
$machinenaam = mysqli_real_escape_string($conn,$_POST['machinenaam']);
$machine_omsch = mysqli_real_escape_string($conn,$_POST['machine_omsch']);
$spanning = mysqli_real_escape_string($conn,$_POST['spanning']);
$machinegewicht = mysqli_real_escape_string($conn,$_POST['machinegewicht']);
$bouwjaar = mysqli_real_escape_string($conn, $_POST['bouwjaar']);
$sql = "INSERT INTO TweedehandsMach (Categorie , machinenaam, machine_omsch, spanning, machinegewicht, bouwjaar)
VALUES('".$Categrorie."', '".$machinenaam."', '".$machine_omsch."', '".$spanning."', '".$machinegewicht."', '".$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="">
<fieldset>
<label>De categorie waaronder de machine valt:
<select name="Categorie">
<?php
$query = $conn->query("SELECT * FROM CAT");
while ($row = mysqli_fetch_array($query)){
echo "<option value='".$row['catNaam']."'>".$row['catNaam']."</option>";
}
?>
</select>
</label> <Br><Br>
<label>Naam van de machine<input type="text" name="machinenaam" required></label><Br>
<Br>
<label>Omschrijving:<Br>
<h6>Hier geef je een globale omschrijving in. Lt op het gebruik van zoekwoorden en maak er geen vakjargon van.<Br>
Wat hier ook komt (in deze volgorde: afmetingen machine / gewicht machine / spanning machine / vemogen machine / capaciteit machine (indien van toepassing)</h6>
<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" name="plaatsen" value="Toevoegen"/><input type="reset" value="Annuleren">
</form>
</body>
</html>
require_once("../connection.php");
if(isset($_POST['plaatsen'])){
$Categrorie = mysqli_real_escape_string($conn,$_POST['Categorie']);
$machinenaam = mysqli_real_escape_string($conn,$_POST['machinenaam']);
$machine_omsch = mysqli_real_escape_string($conn,$_POST['machine_omsch']);
$spanning = mysqli_real_escape_string($conn,$_POST['spanning']);
$machinegewicht = mysqli_real_escape_string($conn,$_POST['machinegewicht']);
$bouwjaar = mysqli_real_escape_string($conn, $_POST['bouwjaar']);
$sql = "INSERT INTO TweedehandsMach (Categorie , machinenaam, machine_omsch, spanning, machinegewicht, bouwjaar)
VALUES('".$Categrorie."', '".$machinenaam."', '".$machine_omsch."', '".$spanning."', '".$machinegewicht."', '".$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="">
<fieldset>
<label>De categorie waaronder de machine valt:
<select name="Categorie">
<?php
$query = $conn->query("SELECT * FROM CAT");
while ($row = mysqli_fetch_array($query)){
echo "<option value='".$row['catNaam']."'>".$row['catNaam']."</option>";
}
?>
</select>
</label> <Br><Br>
<label>Naam van de machine<input type="text" name="machinenaam" required></label><Br>
<Br>
<label>Omschrijving:<Br>
<h6>Hier geef je een globale omschrijving in. Lt op het gebruik van zoekwoorden en maak er geen vakjargon van.<Br>
Wat hier ook komt (in deze volgorde: afmetingen machine / gewicht machine / spanning machine / vemogen machine / capaciteit machine (indien van toepassing)</h6>
<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" name="plaatsen" value="Toevoegen"/><input type="reset" value="Annuleren">
</form>
</body>
</html>
Voor de afbeeldingen maak ik dan een nieuw formulier waar ik afbeeldingen kan uploaden naar de tabel "afb"
Zelf zou ik liever controleren of je formulier verstuurd is via POST dan dat je controleert of er op een knop is gedrukt:
wordt dan:
Gewijzigd op 10/10/2017 16:01:26 door - Ariën -
Ok, en waarom blijft hij hier "artikel werd succesvol toegevoegd. " tonen?