Probleem met tonen van meer dan 1 stukje hardware

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

F Farmer

F Farmer

13/05/2011 10:12:43
Quote Anchor link
Hieronder staat een script die een leenbon aanmaakt.

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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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]
 
PHP hulp

PHP hulp

15/11/2024 03:11:39
 
- Ariën  -
Beheerder

- Ariën -

13/05/2011 10:21:09
Quote Anchor link
- Variabelen buiten quotes
- 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 -
 
F Farmer

F Farmer

13/05/2011 10:49:05
Quote Anchor link
Bedankt voor de reactie, alleen begrijp ik niet hoe je met die tabel meerdere apparaten aan één gebruiker kan toevoegen
 
Joren de Wit

Joren de Wit

13/05/2011 10:51:34
Quote Anchor link
Je hebt een extra koppeltabel nodig waarin je per record een stuk hardware aan een leenbon koppelt.

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...
 
F Farmer

F Farmer

13/05/2011 11:05:36
Quote Anchor link
Ik ga het proberen bedankt voor de hulp :)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.