geen output
Helaas heb ik weer eens jullie vakkundige hulp nodig.
Ik heb een script geschreven en nu is het de bedoeling dat ik een dropdownbox krijg met de mogelijke "herkansingen voor één klas.".
Ik dacht dat dit wel zou lukken met een while($1 = mysql_fetch_array()) , maar als ik dit doe, geeft hij geen output. Alles wat achter de while staat, wordt wel gewoon verstuurt.
Dit is mijn code;
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
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
<?php
session_start();
include ('db.inc');
$sessionuit = explode("=As4W5$==@5", $_SESSION['data']);
$q0 = "SELECT * FROM leerling WHERE leerlingnummer = '".base64_decode($sessionuit[0])."'";
$uit0 = mysql_query($q0);
$arrayuit = mysql_fetch_array($uit0);
$q1 = "SELECT * FROM herkansing WHERE `klas` = '".$arrayuitklas."' AND afgesloten <> 'on' ";
$uit1 = mysql_query($q1) or die (mysql_error());
$arrayuit1 = mysql_fetch_array($uit1);
if (!isset($_GET['submit'])) {
//Show formulier
echo'<form method="POST" action="herkaanvraag.php?submit=1"><table border=0>
<tr><td>Klas:</td><td><input name="klas" value="'.$arrayuit["klas"].'" DISABLED></td></tr>
<tr><td>Naam:</td><td><input name="naam" value="'.$arrayuit['voornaam'].' '.$arrayuit['tussenv'].' '.$arrayuit['achternaam'].'" DISABLED></td></tr>
<tr><td>Toets:</td><td><select name="toets"><option DISABLED>Kies een toets uit</option>';
while($arrayuit1 = mysql_fetch_array($uit1)) {
echo '<option>'.$arrayuit1['klas'].', '.$arrayuit1['vak'].', '.$arrayuit1['PTA_code'].' </option>';
}
echo $arrayuit1['klas'];
echo'</select></td></tr>
<tr><td></td><td><input name="akkoord" type="checkbox"> Ik wil deze toets herkansen</td></tr>';
}else{
//Verwerk herkansing
}
?>
session_start();
include ('db.inc');
$sessionuit = explode("=As4W5$==@5", $_SESSION['data']);
$q0 = "SELECT * FROM leerling WHERE leerlingnummer = '".base64_decode($sessionuit[0])."'";
$uit0 = mysql_query($q0);
$arrayuit = mysql_fetch_array($uit0);
$q1 = "SELECT * FROM herkansing WHERE `klas` = '".$arrayuitklas."' AND afgesloten <> 'on' ";
$uit1 = mysql_query($q1) or die (mysql_error());
$arrayuit1 = mysql_fetch_array($uit1);
if (!isset($_GET['submit'])) {
//Show formulier
echo'<form method="POST" action="herkaanvraag.php?submit=1"><table border=0>
<tr><td>Klas:</td><td><input name="klas" value="'.$arrayuit["klas"].'" DISABLED></td></tr>
<tr><td>Naam:</td><td><input name="naam" value="'.$arrayuit['voornaam'].' '.$arrayuit['tussenv'].' '.$arrayuit['achternaam'].'" DISABLED></td></tr>
<tr><td>Toets:</td><td><select name="toets"><option DISABLED>Kies een toets uit</option>';
while($arrayuit1 = mysql_fetch_array($uit1)) {
echo '<option>'.$arrayuit1['klas'].', '.$arrayuit1['vak'].', '.$arrayuit1['PTA_code'].' </option>';
}
echo $arrayuit1['klas'];
echo'</select></td></tr>
<tr><td></td><td><input name="akkoord" type="checkbox"> Ik wil deze toets herkansen</td></tr>';
}else{
//Verwerk herkansing
}
?>
Lars voorden op 05/01/2011 19:12:19:
... geeft hij geen output. Alles wat achter de while staat, wordt wel gewoon verstuurt ...
Geen output, maar wel verstuurd ... Wat bedoel je daar mee?
include ('db.inc');
Een .inc bestand kan gewoon door iedereen gelezen worden. Dus jouw gegevens zijn in feite openbaar. GEEN .inc gebruiken dus.
Je voert een query uit en op regel 10 haal je een record op waar je verder niks mee doet. Dat is dus verloren info.
Op regel 21 doe je een echo middenin je <select> na </option>, dat kan niet goed gaan.
maar op r10 voer ik iets uit. En die informatie haal ik er toch op regel19 weer uit. Ik snap het probleem niet :-S
wat betreft <select>
de juiste volgorde is toch;
<select>
<option>1</option>
<option>2</option>
Ook hier snap ik het probleem niet. Hoe moet je dan een aantal waardes uit een db halen en ze in en dropdown menu zetten?
Alvast bedankt
Lars voorden op 05/01/2011 20:21:52:
maar op r10 voer ik iets uit. En die informatie haal ik er toch op regel19 weer uit. Ik snap het probleem niet :-S
Nee, Op regel 19 staat de data van de while() op regel 18.
Regel 10 moet je gewoon verwijderen.
Lars voorden op 05/01/2011 20:21:52:
wat betreft <select>
de juiste volgorde is toch;
<select>
<option>1</option>
<option>2</option>
Ook hier snap ik het probleem niet.
de juiste volgorde is toch;
<select>
<option>1</option>
<option>2</option>
Ook hier snap ik het probleem niet.
Jij hebt nu dit:
<select>
<option>1</option>
<option>2</option>
hier tekst uit een echo
</select>
En dat klopt niet.
Toevoeging op 05/01/2011 20:38:48:
hoe moet ik die <option> uit de while dan "printen"? Volgens mij is dit de enigste oplossing
. Ik bedoel. ik echo toch een option erbij?
Gewijzigd op 05/01/2011 20:41:59 door lars voorden
Die options doe je goed. Alleen regel 21 hoort daar niet tussen te staan.
Heb het aangepst maar het werkt nu nog niet.
Code is nu;
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
session_start();
include ('db.inc');
$sessionuit = explode("=As4W5$==@5", $_SESSION['data']);
$q0 = "SELECT * FROM leerling WHERE leerlingnummer = '".base64_decode($sessionuit[0])."'";
$uit0 = mysql_query($q0);
$arrayuit = mysql_fetch_array($uit0);
if (!isset($_GET['submit'])) {
//Show formulier
echo'<form method="POST" action="herkaanvraag.php?submit=1"><table border=0>
<tr><td>Klas:</td><td><input name="klas" value="'.$arrayuit["klas"].'" DISABLED></td></tr>
<tr><td>Naam:</td><td><input name="naam" value="'.$arrayuit['voornaam'].' '.$arrayuit['tussenv'].' '.$arrayuit['achternaam'].'" DISABLED></td></tr>
<tr><td>Toets:</td><td><select name="toets"><option DISABLED>Kies een toets uit</option>';
$q1 = "SELECT * FROM herkansing WHERE `klas` = '".$arrayuitklas."' AND afgesloten <> 'on' ";
$uit1 = mysql_query($q1) or die (mysql_error());
while($arrayuit1 = mysql_fetch_array($uit1)) {
echo '<option>'.$arrayuit1['klas'].', '.$arrayuit1['vak'].', '.$arrayuit1['PTA_code'].' </option>';
}
echo'</select></td></tr>
<tr><td></td><td><input name="akkoord" type="checkbox"> Ik wil deze toets herkansen</td></tr>';
}else{
//Verwerk herkansing
}
?>
session_start();
include ('db.inc');
$sessionuit = explode("=As4W5$==@5", $_SESSION['data']);
$q0 = "SELECT * FROM leerling WHERE leerlingnummer = '".base64_decode($sessionuit[0])."'";
$uit0 = mysql_query($q0);
$arrayuit = mysql_fetch_array($uit0);
if (!isset($_GET['submit'])) {
//Show formulier
echo'<form method="POST" action="herkaanvraag.php?submit=1"><table border=0>
<tr><td>Klas:</td><td><input name="klas" value="'.$arrayuit["klas"].'" DISABLED></td></tr>
<tr><td>Naam:</td><td><input name="naam" value="'.$arrayuit['voornaam'].' '.$arrayuit['tussenv'].' '.$arrayuit['achternaam'].'" DISABLED></td></tr>
<tr><td>Toets:</td><td><select name="toets"><option DISABLED>Kies een toets uit</option>';
$q1 = "SELECT * FROM herkansing WHERE `klas` = '".$arrayuitklas."' AND afgesloten <> 'on' ";
$uit1 = mysql_query($q1) or die (mysql_error());
while($arrayuit1 = mysql_fetch_array($uit1)) {
echo '<option>'.$arrayuit1['klas'].', '.$arrayuit1['vak'].', '.$arrayuit1['PTA_code'].' </option>';
}
echo'</select></td></tr>
<tr><td></td><td><input name="akkoord" type="checkbox"> Ik wil deze toets herkansen</td></tr>';
}else{
//Verwerk herkansing
}
?>
Gewijzigd op 05/01/2011 21:00:29 door lars voorden
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
//rest
?>
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
//rest
?>
gedaan.... lever alleen geen (extra) errors op :S
Deze: $arrayuitklas is onbekend en daar moet je een melding van krijgen.
Ik schaam me dood. 1000x Bedankt voor je tijd en hulp!!!
- SQL injection is mogelijk
- Je kan beter mysql_fetch_assoc gebruiken i.p.v mysql_fetch_array
- Of een formulier gepost is controleren we met $_SERVER['REQUEST_METHOD'] == 'POST'
- Kerkhof methodes zijn niet gewenst ( or die ) je laat niet zomaar iets doodgaan, pas dus zoals ik al zei nette fouten afhandeling toe.
- PHP en HTML kan je het beste gescheiden houden ;)
Succes!