Probleem met tonen van meer dan 1 stukje hardware
Met de foreign key ['hardware_idhardware'] haal ik informatie of een bepaalde stukje hardware op die op de leenbon staat. Alleen ik wil dat je op de leenbon meerdere stukjes hardware kan uitlenen.
Moet ik dan een extra foreign keys aanmaken bijv. ['hardware_idhardware2'] en ['hardware_idhardware3'] etc?
Ik had dat al geprobeerd, dat lukt wel, alleen was het een probleem voor mij om de extra toegevoegde stukjes hardware te tonen, de eerste lukt wel maar de andere niet.
Kan iemand mij helpen?
Met deze scripts haalt die 1 stukje hardware op...
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
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
<?php
include("db_connect.php");
$voornaam=$_POST['voornaam'];
$achternaam=$_POST['achternaam'];
$telefoon=$_POST['telefoon'];
$hardware_idhardware=$_POST['hardware_idhardware'];
$gebruiker_idgebruiker=$_POST['gebruiker_idgebruiker'];
$datumafgifte = date('d-m-Y');
$datumretour=$_POST['datumretour'];
$datumwijzig = date('d-m-Y');
$result=mysql_query("INSERT INTO leenbon (voornaam, achternaam, telefoon, datumafgifte, datumretour, datumwijzig, hardware_idhardware, gebruiker_idgebruiker) VALUES (
'$voornaam','$achternaam','$telefoon','$datumafgifte','$datumretour','$datumwijzig','$hardware_idhardware','$gebruiker_idgebruiker')") or die("Insert Error: ".mysql_error());
mysql_query("
UPDATE
hardware
SET
statushardware_idstatus = '2'
WHERE
idhardware = '". $hardware_idhardware ."'
");
mysql_close($link);
print "<font color='green'><b>Leenbon toegevoegd</b><br><br>";
header("Location: print.php");
?>
include("db_connect.php");
$voornaam=$_POST['voornaam'];
$achternaam=$_POST['achternaam'];
$telefoon=$_POST['telefoon'];
$hardware_idhardware=$_POST['hardware_idhardware'];
$gebruiker_idgebruiker=$_POST['gebruiker_idgebruiker'];
$datumafgifte = date('d-m-Y');
$datumretour=$_POST['datumretour'];
$datumwijzig = date('d-m-Y');
$result=mysql_query("INSERT INTO leenbon (voornaam, achternaam, telefoon, datumafgifte, datumretour, datumwijzig, hardware_idhardware, gebruiker_idgebruiker) VALUES (
'$voornaam','$achternaam','$telefoon','$datumafgifte','$datumretour','$datumwijzig','$hardware_idhardware','$gebruiker_idgebruiker')") or die("Insert Error: ".mysql_error());
mysql_query("
UPDATE
hardware
SET
statushardware_idstatus = '2'
WHERE
idhardware = '". $hardware_idhardware ."'
");
mysql_close($link);
print "<font color='green'><b>Leenbon toegevoegd</b><br><br>";
header("Location: print.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
25
26
27
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
<?php
include("db_connect.php");
$result = mysql_query( "SELECT leenbon.idleenbon, leenbon.voornaam, leenbon.achternaam, leenbon.telefoon, leenbon.datumafgifte, leenbon.datumretour, hardware.model, hardware.serienummer, hardware.merk, hardware.nodelid, gebruiker.naam, gebruiker.idnr, gebruiker.bureau, gebruiker.telefoon FROM leenbon, hardware, gebruiker WHERE leenbon.hardware_idhardware=hardware.idhardware AND leenbon.gebruiker_idgebruiker = gebruiker.idgebruiker" ) or die("SELECT Error: ".mysql_error());
while ($row = mysql_fetch_array($result)){
echo "<div id='center'>";
echo "<h3>Leenbon NR: ";
echo $row['idleenbon'];
echo " </h3>";
echo "<br>";
echo "<table border='1'>";
echo "<tr><th>model</th><th>serienummer</th><th>merk</th><th>nodelid</th></tr>";
echo "<td>";
echo $row['model'];
echo "</td>";
echo "<td>";
echo $row['serienummer'];
echo "</td>";
echo "<td>";
echo $row['merk'];
echo "</td>";
echo "<td>";
echo $row['nodelid'];
echo "</td>";
echo "</table>";[/code]
include("db_connect.php");
$result = mysql_query( "SELECT leenbon.idleenbon, leenbon.voornaam, leenbon.achternaam, leenbon.telefoon, leenbon.datumafgifte, leenbon.datumretour, hardware.model, hardware.serienummer, hardware.merk, hardware.nodelid, gebruiker.naam, gebruiker.idnr, gebruiker.bureau, gebruiker.telefoon FROM leenbon, hardware, gebruiker WHERE leenbon.hardware_idhardware=hardware.idhardware AND leenbon.gebruiker_idgebruiker = gebruiker.idgebruiker" ) or die("SELECT Error: ".mysql_error());
while ($row = mysql_fetch_array($result)){
echo "<div id='center'>";
echo "<h3>Leenbon NR: ";
echo $row['idleenbon'];
echo " </h3>";
echo "<br>";
echo "<table border='1'>";
echo "<tr><th>model</th><th>serienummer</th><th>merk</th><th>nodelid</th></tr>";
echo "<td>";
echo $row['model'];
echo "</td>";
echo "<td>";
echo $row['serienummer'];
echo "</td>";
echo "<td>";
echo $row['merk'];
echo "</td>";
echo "<td>";
echo $row['nodelid'];
echo "</td>";
echo "</table>";[/code]
- Overschrijven van variabelen in regel 4 t/m 8 en 10 is overbodig. Je hebt al direct je $_POST variabelen tot je beschikking
- Er is gevaar voor SQL-Injection
- Gebruik GOEDE foutafhandeling, een script hoort niet dood te gaan als je query niet wil werken.
- Leef je nog in de HTML3 wereld? <font color='green'> is onnodig. Gebruik CSS.
Het aantal velden moet nooit afhangen van het aantallen dezelfde data die je opslaat.
Verdiep je eens in het normaliseren van databases.
hardware_idhardware2, hardware_idhardware3 etc... is dus als veldnaam not-done.
beter maak je een tabel: hardwareID
Met daarin de velden UserID, HardwareID, apparaat. Dan kan je meerdere hardwareID's van apparaten toevoegen aan een UserID.
Gewijzigd op 13/05/2011 10:24:45 door - Ariën -
Bedankt voor de reactie, alleen begrijp ik niet hoe je met die tabel meerdere apparaten aan één gebruiker kan toevoegen
leenbon_hardware
--------------
leenbon_id (FK naar leenbon.id)
hardware_id (FK naar hardware.id)
Op deze manier kun je oneindig veel hardware aan 1 leenbon koppelen...
Toevoeging op 13/05/2011 10:52:35:
Dit is dus eigenlijk hetzelfde als Aar suggereert voor de users tabel. Voor elk stukje hardware dat je wilt koppelen, maak je een nieuw record aan...
Ik ga het proberen bedankt voor de hulp :)