PHP form koppel data ook aan andere tabel

Praat mee over van alles en nog wat!
Forumregels
Dit forum is voor alle zinnige gesprekken buiten phpBB om. Discussies en gesprekken over interessante onderwerpen.

Een nieuw onderwerp moet..:
  • uiteraard voldoen aan de algemene voorwaarden
  • niet passen in de gewone supportfora
  • interessante zijn voor het overgrote deel van onze gebruikers
  • een neutrale of positieve ondertoon hebben
  • anders zijn dan bestaande onderwerpen
Gesloten
regnis
Berichten: 0
Lid geworden op: 28 jan 2010, 15:40

PHP form koppel data ook aan andere tabel

Bericht door regnis » 28 jan 2010, 15:59

Ik heb een probleem hoe ik ook erover na denk ik kom er maar niet uit. Ik ben zelf geen PHP koning maar echt meer beginner/gemiddelde php/mysql gebruiker

probleem:
Ik wil met behulp van een Form data in een tabel voegen het lukt deels dan ook, maar bij het invullen van een form moet ik dan de keus krijgen aan welke record van een ander tabel ik het wil koppelen.

Deze website heb ik deels genomen als voorbeeld hoe het uit komt te zien. http://www.123inkt.nl/shop/products/Ink ... ges-1.html
Dus als je naar printertype/printercode laat hij je zien welke cartridges op die printer passen.

Mijn tabellen:
Printer (printermerk, printertype, printercode)
assortiment (printer, cartridge)
cartridge (Merkcode, kleur, inhoud, omschrijving, cartridgemerk, cartridgecode, ean, artikelnr, prijs)

Ik heb al gehoord van moet mysql insert to gebruiken maar op wat voor manier? hier de Form code.

Code: Selecteer alles

<?php
/* Hier zegt PHP dat config.php en opendb.php moet includen om zo een mysql connectie en en database connectie moet maken
voor meer informatie bekijk config.php en opendb.php code voor meer commentaar*/
include 'config.php';
include 'opendb.php';

// kijkt of het formulier is toegevoegd
if(isset($_POST['cartridge']))
{
	// pakt de invoer van $_POST
	// compresseert alle invoer om extra ruimtes te verwijderen
	$merkcode    = trim($_POST['txtmerkcode']);
	$kleur   = trim($_POST['txtkleur']);
	$inhoud     = trim($_POST['txtinhoud']);
	$omschrijving = trim($_POST['txtomschrijving']);
	$cartridgemerk = trim($_POST['txtcartridgemerk']);
	$cartridgecode = trim($_POST['txtcartridgecode']);
	$ean = trim($_POST['txtean']);
	$prijs   = trim($_POST['txtprijs']);
	
	// voorbereiden van de query
	$query = "INSERT INTO cartridge (merkcode, kleur, inhoud, omschrijving, cartridgemerk, cartridgecode, ean, prijs) " .
	         "VALUES ('$merkcode', '$kleur', '$inhoud', '$omschrijving', '$cartridgemerk', '$cartridgecode' '$ean', '$prijs')";

	// voert de query uit om de invoer in de database te zetten
	// als de query vervalt het script		 
	mysql_query($query) or die('Error, query failed. ' . mysql_error());
	
	// Omzeilt de pagina waar je nu op zit
	// Het formulier wordt niet twee keer opgeslagen omdat er anders dubbele berichten worden weergegeven
	header('Location: ' . $_SERVER['REQUEST_URI']);
	
	// Geforceerd om het script tot een stop te brengen
	// ga door voordat de pagina is doorgestuurd.
	exit;
}
//PHP code wordt hier beeindigd 
?>
<html>
<style>
{
	background-repeat: no-repeat;
	background-position: 1350px 100px;
	}
</style>
<body>

<Center><h2>Toevoegen Cartridge</h2>
  <table align="right" bgcolor="#FFFFFF">
    <tr>
    </tr>
  </table>
</Center>
<!-- Hier begint de form om data toevoegen aan tabel orgineel -->
<form method="post" name="CartridgeForm">
  
  <hr>
  <table width="550" border="0" cellpadding="2" cellspacing="1" bordercolor="#D4D0C8">
  <tr> 
   <td width="100">Merkcode*</td> 
   <td> 
    <input name="txtmerkcode" type="text" id="txtmerkcode" size="15" maxlength="20"> 
    voorbeeld: hp 25</td>
 </tr>
   <tr>
   <td width="100">Kleur</td> 
   <td><input name="txtkleur" type="text" id="txtkleur" size="15" maxlength="15"> 
   voorbeeld: zwart</td>
   <td>&nbsp;</td>
   </tr>
  <tr> 
   <td width="100">Inhoud</td>
   <td><input name="txtinhoud" type="text" id="txtinhoud" size="10" maxlength="10">
   ml - voorbeeld: 25</td>
 </tr>
  <tr> 
   <td width="100">Product Omschrijving</td> <td><textarea name="txtomschrijving" cols="80" rows="5" id="txtomschrijving"></textarea></td>
 </tr>
  <tr> 
   <td width="100">Cartridge Merk*</td>
   <td><input name="txtcartridgemerk" type="text" id="txtcartridgemerk" size="40" maxlength="40"> 
   voorbeeld: hp</td>
   </tr>
 <tr> 
   <td width="100">cartridge Code*</td>
   <td><input name="txtcartridgecode" type="text" id="txtcartridgecode" size="40" maxlength="40"> 
   voorbeeld: 1235AE</td>
   </tr>
   <tr> 
   <td width="100">EAN Nummer</td>
   <td><input name="txtean" type="text" id="txtean" size="40" maxlength="40"> 
   voorbeeld: 354059856</td>
 </tr>
  <tr> 
   <td width="100">Prijs</td>
   <td>&euro;<input name="txtprijs" type="text" id="txtprijs" size="10" maxlength="10"> 
   voorbeeld: 19,50</td>
 </tr>
   <tr> 
   <td width="100">&nbsp;</td>
   <td> 
    <input name="cartridge" type="submit" id="cartridge" value="Voeg toe aan Tabel-Cartridge" onClick="return checkForm();"></td>
    </tr>
</table>
</form>

<?php
// include de database configuratie en
// opent de connectie naar de database
include 'config.php';
include 'opendb.php';

// kijkt of het formulier is toegevoegd
if(isset($_POST['printer']))
{
	// pakt de invoer van $_POST
	// compresseert alle invoer om extra ruimtes te verwijderen
	$printermerk    = trim($_POST['txtprintermerk']);
	$printertype   = trim($_POST['txtprintertype']);
	$printercode   = trim($_POST['txtprintercode']);
	
	// voorbereiden van de query
	$query = "INSERT INTO printer (printermerk, printertype, printercode) " .
	         "VALUES ('$printermerk', '$printertype', '$printercode')";

	// voert de query uit om de invoer in de database te zetten
	// als de query faalt vervalt het script		 
	mysql_query($query) or die('Error, query failed. ' . mysql_error());
	
	// Omzeilt de pagina waar je nu op zit
	// Het formulier wordt niet twee keer opgeslagen omdat er anders dubbele berichten worden weergegeven
	header('Location: ' . $_SERVER['REQUEST_URI']);
	
	// Geforceerd om het script tot een stop te brengen
	// ga door voordat de pagina is doorgestuurd.
	exit;
}
?>
</body>
<style>
{
	background-repeat: no-repeat;
	background-position: 1350px 100px;
	}
</style>
<body>
<Center><h2>Toevoegen Printer</h2>
  <table align="right" bgcolor="#FFFFFF">
    <tr>
      </tr>
  </table>
</Center>
<hr>
<!-- Hier begint de form om data toe te voegen aan tabel Printer -->
<form method="post" name="PrinterForm">
 <table width="550" border="0" cellpadding="2" cellspacing="1" bordercolor="#D4D0C8">
  <tr> 
   <td width="100">Merk Naam*</td> <td> 
    <input name="txtprintermerk" type="text" id="txtprintermerk" size="15" maxlength="20"></td>
 </tr>
  <tr> 
   <td width="100">Printer Type*</td>
   <td><input name="txtprintertype" type="text" id="txtprintertype" size="15" maxlength="20"></td>
   </tr>
   <tr>
   <td width="100">Printer Code</td> 
   <td><input name="txtprintercode" type="text" id="txtprintercode" size="15" maxlength="15"></td>
  </tr>
   <tr> 
   <td width="100">&nbsp;</td>
   <td> 
    <input name="printer" type="submit" id="printer" value="Voeg toe aan Tabel-printer" onClick="return checkForm();"></td>
	</tr>
</table>
</form>
<hr>
<!-- Hier zie je nog wat extra code om zo de gebruiker direct toe te verwijzen naar phpmyadmin -->
<a href="/phpmyadmin/index.php?db=sancak&token=30e26e7fa34eee386854d65a15835985" target="_blank"><b>Tabels Bewerken</b></a>
</body>
</html>


regnis
Berichten: 0
Lid geworden op: 28 jan 2010, 15:40

Re: PHP form koppel data ook aan andere tabel

Bericht door regnis » 28 jan 2010, 16:49

Ik heb even verder nog gezocht op internet maar volgens mij heb ik het niet goed genoeg uitgelegd wat je voor je moet zien bij het invullen van de Form.

Je krijgt eerst te maken met eerste veld daar moet je dan een soort dropdown menu krijgen die je van een mysql tabel moet op kunnen vragen.

Printercode (Dropdown menu opgevraagd van mysql tabel)
cartridgemerk (voorbeeld: HP 25)
kleur (voorbeeld: zwart)
inhoud (voorbeeld: 45 ml)
omschrijving (voorbeeld: dit is een hele goede cartridge voor alle hp merken)
cartridgemerk (voorbeeld: HP, kan ook een andere merk zijn denk hier bij aan eigenmerken voor hp printers)
cartridgecode (voorbeeld: 32309 - dit is dus code van de cartridge verpakking)
ean (voorbeeld: soort ISBN nummer dat je bij boeken hebt maar dan voor de cartridges)
Prijs (voorbeeld: hier vul je de prijs van de cartridge in)

Misschien dat iemand zegt op deze manier is het niet mogelijk, weet je misschien een ander manier dat ik kan gaan proberen ben er al bijna 2 weken mee bezig heb ongelofelijk veel tijd er aan besteed en kom maar niet verder.

Gebruikersavatar
Paul
Beheerder
Beheerder
Berichten: 20297
Lid geworden op: 23 okt 2003, 11:38
Locatie: Utrecht
Contacteer:

Re: PHP form koppel data ook aan andere tabel

Bericht door Paul » 28 jan 2010, 17:34

Dit forum is enkel en alleen bedoeld voor phpBB support. Wij kunnen je helaas niet helpen met algemene php vragen. Ik raad je aan op een forum bedoeld voor php support je vraag te stellen.

Gesloten