uit datbase checked of niet
Gewijzigd op 01/01/1970 01:00:00 door Frank -
Quote:
Hoezo niet handig? Dat is juist handig! Als je een nieuwe techniek toevoegt aan de database komt hij op die manier direct in je keuzelijst te staan, je hoeft de PHP code dus niet meer aan te passen. Je bent toch bezig met het bouwen van een dynamische website?
Quote:
Hoezo dezelfde strekking? :-)Niet handig? Of blijkt nu dat er ontwerpfouten in je systeem zitten? Hoe denk jij een nieuwe optie toe te voegen aan de database? Dat gaat je niet lukken zonder ook jouw php-code aan te passen. Dat is toch niet echt wat men verstaat onder een dynamische website, of wel dan?
@Jordi: twee antwoorden met precies dezelfde strekking doen je hopelijk inzien dat dat gewoon een fout is die je maakt. Geen grote, maar zorg gewoon dat die selectbox dynamisch gegenereerd wordt aan de hand van de gegevens uit je database.
Ik ben bezig met een uitgebreid portfolioscript ..
Dus moet ik dit doen ?
- tabel met techniek verwijderen
- tabel portfolio_gemaakt veranderen zodat hij ipv het techniek id gewoon de techniek erin zetten (PSD, HTML enz..)
- in het toevoegen script ervoor zorgen dat hij gewoon de technieken daarin gooit ipv de nummers
- bij het bekijken ervoor zorgen dat hij gewoon direct die technieken erneer gooit en dus niet via een koppeltabel
- dit gebruiken voor bewerk:
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
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
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
include('../connect.php');
$query = "SELECT techniek_id FROM portfolio_gemaakt WHERE portfolio_id= 38";
if(!$res = mysql_query($query))
{
trigger_error(mysql_error().'<br />In query: '.$query);
}
else
{
if($row = mysql_fetch_assoc($res)){
if($row['techniek_id'] == PSD){ //techniek_id zal ik nog veranderen
echo 'PSD moet aangevinkt zijn';
}
else {
echo 'nope, PSD niet aangevinkt';
}
if($row['techniek_id'] == HTML){
echo 'HTML moet aangevinkt zijn';
}
else {
echo 'nope, HTML niet aangevinkt';
}
if($row['techniek_id'] == CSS){
echo 'CSS moet aangevinkt zijn';
}
else {
echo 'nope, CSS niet aangevinkt';
}
}
}
?>
error_reporting(E_ALL);
ini_set("display_errors", 1);
include('../connect.php');
$query = "SELECT techniek_id FROM portfolio_gemaakt WHERE portfolio_id= 38";
if(!$res = mysql_query($query))
{
trigger_error(mysql_error().'<br />In query: '.$query);
}
else
{
if($row = mysql_fetch_assoc($res)){
if($row['techniek_id'] == PSD){ //techniek_id zal ik nog veranderen
echo 'PSD moet aangevinkt zijn';
}
else {
echo 'nope, PSD niet aangevinkt';
}
if($row['techniek_id'] == HTML){
echo 'HTML moet aangevinkt zijn';
}
else {
echo 'nope, HTML niet aangevinkt';
}
if($row['techniek_id'] == CSS){
echo 'CSS moet aangevinkt zijn';
}
else {
echo 'nope, CSS niet aangevinkt';
}
}
}
?>
Quote:
Klopt, maar voor zover ik mij kan herinneren hebben we het nooit over je formulier gehad...Blanche, jij hebt mij nog geholpen met met dat erin zetten... mjah.
Quote:
Nee, nee, nee en nee. Dat zijn de antwoorden op de punten die je stelt.Dus moet ik dit doen ?
- tabel met techniek verwijderen
- tabel portfolio_gemaakt veranderen zodat hij ipv het techniek id gewoon de techniek erin zetten (PSD, HTML enz..)
- in het toevoegen script ervoor zorgen dat hij gewoon de technieken daarin gooit ipv de nummers
- bij het bekijken ervoor zorgen dat hij gewoon direct die technieken erneer gooit en dus niet via een koppeltabel
- tabel met techniek verwijderen
- tabel portfolio_gemaakt veranderen zodat hij ipv het techniek id gewoon de techniek erin zetten (PSD, HTML enz..)
- in het toevoegen script ervoor zorgen dat hij gewoon de technieken daarin gooit ipv de nummers
- bij het bekijken ervoor zorgen dat hij gewoon direct die technieken erneer gooit en dus niet via een koppeltabel
De huidige opzet van de database is correct, een aparte tabel met technieken en een koppeltabel om ze aan de portfolio's te kiezen. Het enige dat jij nu hoeft te doen is het dynamisch genereren van de selectbox aan de hand van de technieken die in de technieken tabel staan...
Het probleem zit hem in jouw PHP-code. Althans, daar lijkt het op. In jouw php-code staan al hardcoded waardes zoals PSD en HTML. Wanneer je dat in je PHP gaat opslaan, hoef je het niet meer in je database op te slaan. Gooi dan de hele database gewoon weg! Of ga correcte php-code schrijven... Haal uit je database de beschikbare technieken op en ga kijken of deze beschikbare technieken matchen met de geselecteerde technieken. Zo ja, checked, zo nee, dan niks.
Wanneer je data uit je database hardcoded in je PHP-code zet, gooi dan je database weg, dan begrijp je niet wat een database voor je kan doen.
Oke, ik snap wat ik nu moet doen. Maar ik snap helaas niet hoe ik dat moet doen.
Je moet zorgen dat de select box er precies zo uit komt te zien zoals je hem nu in je html code hebt staan.
Quote:
SELECT query uitvoeren om de technieken op te halen
moet die query naar technieken of portfolio_gemaakt ?
Quote:
resultaat fetchen in een while loop
While loop ?? Op google staat alleen while loop als javascript ??!!
Quote:
en daar tevens de <options> van de bijbehorende select box genereren.
Wat bedoel je met <options> ?
Gewijzigd op 01/01/1970 01:00:00 door J A
Maar zou je anders niet een klein voorbeelde kunnen geven?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
include('../connect.php');
$result = mysql_query("SELECT techniek_id FROM portfolio_gemaakt WHERE portfolio_id = 38");
$techniek_arr = array();
while ($row = mysql_fetch_assoc($result)) {
$techniek_arr[] = $row['techniek_id'];
}
echo '<input type="checkbox" '.(in_array(1, $techniek_arr) ? 'checked="checked"' : '').' /> PSD<br />';
echo '<input type="checkbox" '.(in_array(2, $techniek_arr) ? 'checked="checked"' : '').' /> HTML<br />';
echo '<input type="checkbox" '.(in_array(3, $techniek_arr) ? 'checked="checked"' : '').' /> CSS<br />';
echo '<input type="checkbox" '.(in_array(4, $techniek_arr) ? 'checked="checked"' : '').' /> JavaScript<br />';
echo '<input type="checkbox" '.(in_array(5, $techniek_arr) ? 'checked="checked"' : '').' /> FLASH<br />';
echo '<input type="checkbox" '.(in_array(6, $techniek_arr) ? 'checked="checked"' : '').' /> PHP<br />';
?>
include('../connect.php');
$result = mysql_query("SELECT techniek_id FROM portfolio_gemaakt WHERE portfolio_id = 38");
$techniek_arr = array();
while ($row = mysql_fetch_assoc($result)) {
$techniek_arr[] = $row['techniek_id'];
}
echo '<input type="checkbox" '.(in_array(1, $techniek_arr) ? 'checked="checked"' : '').' /> PSD<br />';
echo '<input type="checkbox" '.(in_array(2, $techniek_arr) ? 'checked="checked"' : '').' /> HTML<br />';
echo '<input type="checkbox" '.(in_array(3, $techniek_arr) ? 'checked="checked"' : '').' /> CSS<br />';
echo '<input type="checkbox" '.(in_array(4, $techniek_arr) ? 'checked="checked"' : '').' /> JavaScript<br />';
echo '<input type="checkbox" '.(in_array(5, $techniek_arr) ? 'checked="checked"' : '').' /> FLASH<br />';
echo '<input type="checkbox" '.(in_array(6, $techniek_arr) ? 'checked="checked"' : '').' /> PHP<br />';
?>
Dat ziet er uit of het nog wel een stukje handiger kan. Zou je overigens willen stoppen met bumpen? Je weet wat het is en toch doe je het.