Ik heb 3 tabellen: 1 met films en 1 met gebruikers, en mymovies

Het is dus de bedoeling dat een gebruiker kan aangeven welke film hij in zijn bezit heeft in de tabel 'mymovies':

CREATE TABLE `mymovies` (
`pkMyMoviesID` bigint(21) unsigned NOT NULL auto_increment,
`userID` bigint(21) unsigned NOT NULL default '0',
`movieID` bigint(21) unsigned NOT NULL default '0',
`aantal` tinyint(3) unsigned default NULL,
`storageID` bigint(21) unsigned default NULL,
`codecID` bigint(21) unsigned default NULL,
`audio` varchar(255) default NULL,
`subtitles` varchar(255) default NULL,
`extended` enum('0','1') default '0',
`special_edition` enum('0','1') default '0',
`koop` enum('0','1') default '0',
`x-rental` enum('0','1') default '0',
`opgenomen` enum('0','1') default '0',
`uitgeleend` enum('0','1') default '0',
`opmerkingen` longtext,
PRIMARY KEY (`pkMyMoviesID`),
KEY `user`(`userID`),
KEY `movie`(`movieID`),
KEY `storage`(`storageID`),
KEY `codec`(`codecID`)
) TYPE=MyISAM COMMENT='FilmArchief (mymovies)';

Dat lukt allemaal wel, maar afhankelijk van welk opslagmedium er gekozen wordt zijn er een aantal voorwaarden.
bijv. als er voor DVD gekozen wordt zijn van belang:
- Systeem (PAL, NTSC of SECAM)
- Beeld (4:3 of 16:9)
- Zone (1 t/m 8)
- Formaat (DVD-5 of DVD-9)
als er bijv. VHS of een ander medium gekozen zou worden zijn er weer andere voorwaarden mogelijk.

N.B. ik doe het in 1e instantie in MSAccess, maar het moet ook mogelijk zijn in MySQL als het kan

Wie kan mij hiermee helpen?
users
----
id
ect.

films
----
id
user
ect..

zo kan het ook sns bank..
Ben je verkouden Jan? neem een hoestdrankje ofzo ;P

Ik heb het ff uitgezocht en ik heb de volgende voorwaarden:

*. VHS / Betamax / Video2000 -> duur (60, 90, 120, 180, 210 of 240 min.)
-> evt. merk en type videoband
*. S-VHS
*. CD / VCD / SVCD
*. CD-i
*. DVD -> systeem (PAL, NTSC of SECAM)
-> Beeld (4:3 of 16:9)
-> Zone (1 t/m 8)
-> Formaat (DVD-5 of DVD-9)

Ik heb (nog) geen voorwaarden kunnen bedenken bij S-VHS, CD/VCD/SVCD en CD-i.

En ik was nog vergeten te vermelden dat jullie geen opslagmedia-afhankelijk (en/of gebruikers-afhankelijk) model hebben, wat ik dus juist wel zou willen hebben.

En wat bedoel je met sns bank Spiderpig?
John de Boer schreef op 27.10.2007 20:14
Ben je verkouden Jan? neem een hoestdrankje ofzo ;P

Nee, ik vond het nogal onbeleefd dat je totaal niet reageerde op mijn posts in je topic.
Mijn excuses Jan, dat heb ik echt niet met opzet gedaan, en ik zei ook dat ik er later op terug zou komen wat ik dacht ik gedaan heb.

Okee no prob. Je hebt dus hier een veel op veel relatie zoals ik al eerder zei, en daar heb je weer een koppeltabel voor nodig.

Als je hier een beheerpagina voor wilt maken die PHP en MySQL gebruikt krijg je dan een dynamisch formulier. Ik stel me zo voor dat iemand een opslagmedium kiest uit een select. Aan de hand van de gekozen optie moeten dan daaronder de juiste formulierelementen verschijnen.

Je zou dit met JavaScript kunnen realiseren. Het is geen kinderachtig scriptje, maar het is wel te doen. Heb je ervaring met JavaScript?
Ik heb wel enigszins wat ervaring met JavaScript, maar het is alweer een tijdje geleden dat ik ermee gewerkt heb.
Ik snap in elk geval welke kant je opwilt.

Ok bedankt Jan, ik zal het eens bekijken.

Er ontbreekt nog wel de selectie van een aantal voorwaarden, maar ik denk dat ik er nu zelf verder wel uitkom want ik snap het concept.

En ik zal nog wel enigszins moeten normaliseren, voordat ik het kan gaan uitwerken.
Klopt, het is een opzetje. Maar hiermee moet je zelf verder kunnen. Voor de volledigheid nog even de codes:

dynamisch_formulier.php:

<?php
	ini_set ('display_errors', 1);
	error_reporting (E_ALL);
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>Jan Koehoorn | Dynamisch Formulier</title>
	
	<link rel="stylesheet" type="text/css" media="screen" href="reset.css" />
	<link rel="stylesheet" type="text/css" media="screen" href="oop.css" />
	<style type="text/css" media="screen">
		form			{ padding: 10px; border: 1px solid #9f9; }
	</style>
	
	<script type="text/javascript" src="mootools/mootools.js"></script>
	<script type="text/javascript">
		window.addEvent ('load', function () {
			$('medium').addEvent('change', function () {
				var url = 'http://www.jankoehoorn.nl/dynamisch_formulier_ajax.php';
				$('my_form').send ({
					update: $('eigenschappen')
				});
			});		
		});
	</script>
</head>

<body>
	<div id="container">
	<h1>Jan Koehoorn | Dynamisch Formulier</h1>
	<form id="my_form" method="post" action="dynamisch_formulier_ajax.php">
	<p>
		<label for="medium">opslagmedium:</label>
		<select id="medium" name="medium">
			<option value="">kies een opslagmedium</option>
			<option value="VHS / Betamax / Video2000">VHS / Betamax / Video2000</option>
			<option value="S-VHS">S-VHS</option>
			<option value="CD / VCD / SVCD">CD / VCD / SVCD</option>
			<option value="CD-i">CD-i</option>
			<option value="DVD">DVD</option>
		</select>
	</p>
	
	<div id="eigenschappen">
	<?php
		require 'dynamisch_formulier_ajax.php';
	?>
	</div>
	
	<p>
		<input type="submit" value="opslaan" />
	</p>
	</form>
	</div>
</body>
</html>

dynamisch_formulier_ajax.php:
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
switch ($_POST['medium']) {
case '':
echo '<p>Kies een opslagmedium</p>';
break;
case 'VHS / Betamax / Video2000':
echo '<p>';
echo '<label for="duur">duur:</label>';
echo '<select id="duur" name="duur">';
echo '<option value="60">60</option>';
echo '<option value="90">90</option>';
echo '<option value="120">120</option>';
echo '<option value="180">180</option>';
echo '<option value="210">210</option>';
echo '<option value="240">240</option>';
echo '</select>';
echo '</p>';
break;
case 'DVD':
echo '<p>';
echo '<label for="systeem">systeem:</label>';
echo '<select id="systeem" name="systeem">';
echo '<option value="PAL">PAL</option>';
echo '<option value="NTS">NTS</option>';
echo '<option value="SECAM">SECAM</option>';
echo '</select>';
echo '</p>';
break;
default:
echo '<p>Hier moeten nog velden voor verzonnen worden ;-)</p>';
break;
}
}
?>

Reageren