Foutje met script
Ik ben bezig om een script te schrijven en daarin heb ik een fout die ik niet op kan lossen.
Dit is mijn script :
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
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
<?php
$sql = "SELECT *,UNIX_TIMESTAMP(`datum`) AS `datum` FROM Test_Ritten WHERE afgemeld=0 ORDER BY datum ASC, tijd ASC";
$query = mysql_query($sql);
$tellen = mysql_num_rows($query);
$i = 1;
while($rit = mysql_fetch_object($query)) {
$vanvakje = van . $id;
$vanhuisnummervakje = vanhuisnummer . $id;
$naarvakje = naar . $id;
$chauffeurvakje = chauffeur . $id;
$aantalpersonenvakje = aantalpersonen . $id;
$tijdvakje = tijd . $id;
$datumvakje = datum . $id;
$klantinformatievakje = klantinformatie . $id;
$submitvakje = submit . $id;
echo"<tr BGCOLOR='#$statuskleur'><td><input type='text' name='$vanvakje' value='$van' /></td><td><input type='text' name='$vanhuisnummervakje' value='$vanhuisnummer' size='5' /></td><td><input type='text' name='$naarvakje' value='$naar' /></td>";
echo"<td><select NAME='$chauffeurvakje' size='1'><option value=''></option>";
$sqldizzle = 'SELECT * FROM Chauffeursplanning WHERE uitgepland=0 ORDER BY chauffeur ASC';
$querydizzle = mysql_query($sqldizzle);
while($list = mysql_fetch_object($querydizzle)) {
$naam = $list->chauffeur;
if($naam == $rit->chauffeur)
echo"<option value='$list->chauffeur' selected='selected'>$list->chauffeur</option>\n";
else
echo"<option value='$list->chauffeur'>$list->chauffeur</option>\n";
}
echo"</select></td>";
echo"<td><input type='text' name='$aantalpersonenvakje' value='$aantalpersonen' size='5' /></td><td>$voertuig</td><td><input type='text' name='$tijdvakje' value='$rittijd' size='1' />";
echo"</td>";
echo"<td><input type='text' name='$datumvakje' value='$datumding' size='7' />";
echo"</td><td><input type='text' name='$klantinformatievakje' value='$klantinformatie' /></td><td><a href='rittenadministratie2.php?z=$id'><img src='images/edit.png' /></a> <a href='Test_Rittenadministratie_ritbewerken.php?x=$id'><img src='images/edit.png' /></a> $uitgegeven <a href='Rittenadministratie2.php?del=$id'><img src='images/del.png' /></a></td></tr>";
if($i != $tellen) {
echo "";
}
$i++;
}
?>
$sql = "SELECT *,UNIX_TIMESTAMP(`datum`) AS `datum` FROM Test_Ritten WHERE afgemeld=0 ORDER BY datum ASC, tijd ASC";
$query = mysql_query($sql);
$tellen = mysql_num_rows($query);
$i = 1;
while($rit = mysql_fetch_object($query)) {
$vanvakje = van . $id;
$vanhuisnummervakje = vanhuisnummer . $id;
$naarvakje = naar . $id;
$chauffeurvakje = chauffeur . $id;
$aantalpersonenvakje = aantalpersonen . $id;
$tijdvakje = tijd . $id;
$datumvakje = datum . $id;
$klantinformatievakje = klantinformatie . $id;
$submitvakje = submit . $id;
echo"<tr BGCOLOR='#$statuskleur'><td><input type='text' name='$vanvakje' value='$van' /></td><td><input type='text' name='$vanhuisnummervakje' value='$vanhuisnummer' size='5' /></td><td><input type='text' name='$naarvakje' value='$naar' /></td>";
echo"<td><select NAME='$chauffeurvakje' size='1'><option value=''></option>";
$sqldizzle = 'SELECT * FROM Chauffeursplanning WHERE uitgepland=0 ORDER BY chauffeur ASC';
$querydizzle = mysql_query($sqldizzle);
while($list = mysql_fetch_object($querydizzle)) {
$naam = $list->chauffeur;
if($naam == $rit->chauffeur)
echo"<option value='$list->chauffeur' selected='selected'>$list->chauffeur</option>\n";
else
echo"<option value='$list->chauffeur'>$list->chauffeur</option>\n";
}
echo"</select></td>";
echo"<td><input type='text' name='$aantalpersonenvakje' value='$aantalpersonen' size='5' /></td><td>$voertuig</td><td><input type='text' name='$tijdvakje' value='$rittijd' size='1' />";
echo"</td>";
echo"<td><input type='text' name='$datumvakje' value='$datumding' size='7' />";
echo"</td><td><input type='text' name='$klantinformatievakje' value='$klantinformatie' /></td><td><a href='rittenadministratie2.php?z=$id'><img src='images/edit.png' /></a> <a href='Test_Rittenadministratie_ritbewerken.php?x=$id'><img src='images/edit.png' /></a> $uitgegeven <a href='Rittenadministratie2.php?del=$id'><img src='images/del.png' /></a></td></tr>";
if($i != $tellen) {
echo "";
}
$i++;
}
?>
Hier haalt mijn script gegevens uit de database en zet die in een tabel met input velden die aanpasbaar zijn.
Ook geeft dit script elk inputveld een naam met een ID eraan.
Nu mijn volgende stukje script :
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
<?
if(isset($_GET['z'])) {
$idd = $_GET['z'];
// VARIABELEN ID
$vanx = van . $idd;
$vanhuisnummerx = vanhuisnummer . $idd;
$naarx = naar . $idd;
$chauffeurx = chauffeur . $idd;
$aantalpersonenx = aantalpersonen . $idd;
$tijdx = tijd . $idd;
$datumx = datum . $idd;
$klantinformatiex = klantinformatie . $idd;
// TOEPASSEN
$vanz = isset($_POST['$vanx']) ? $_POST['$vanx'] : '';
$vahuisnummerz = isset($_POST['$vanhuisnummerx']) ? $_POST['$vanhuisnummerx'] : '';
$naarz = isset($_POST['$naarx']) ? $_POST['$naarx'] : '';
$chauffeurz = isset($_POST['$chauffeurx']) ? $_POST['$chauffeurx'] : '';
$aantalpersonenz = isset($_POST['$aantalpersonenx']) ? $_POST['$aantalpersonenx'] : '';
$tijdz = isset($_POST['$tijdx']) ? $_POST['$tijdx'] : '';
$datumz = isset($_POST['$datumx']) ? $_POST['$datumx'] : '';
$klantinformatiez = isset($_POST['$klantinformatiex']) ? $_POST['$klantinformatiex'] : '';
// Nog een paar andere dingen
$piecesz = explode("-", $datumz);
// DOE DIT MAAR NU EVEN
mysql_query("UPDATE `Test_Ritten` SET `van`='$vanz',`vanhuisnummer`='$vanhuisnummerz',`naar`='$naarz',`chauffeur`='$chauffeurz',`aantalpersonen`='$aantalpersonenz',`tijd`='$tijdz',`datum`='$pieces[2]-$pieces[1]-$pieces[0]',`klantinformatie`='$klantinformatiez' WHERE `id`='$idd' ; ") or die(mysql_error());
}
?>
if(isset($_GET['z'])) {
$idd = $_GET['z'];
// VARIABELEN ID
$vanx = van . $idd;
$vanhuisnummerx = vanhuisnummer . $idd;
$naarx = naar . $idd;
$chauffeurx = chauffeur . $idd;
$aantalpersonenx = aantalpersonen . $idd;
$tijdx = tijd . $idd;
$datumx = datum . $idd;
$klantinformatiex = klantinformatie . $idd;
// TOEPASSEN
$vanz = isset($_POST['$vanx']) ? $_POST['$vanx'] : '';
$vahuisnummerz = isset($_POST['$vanhuisnummerx']) ? $_POST['$vanhuisnummerx'] : '';
$naarz = isset($_POST['$naarx']) ? $_POST['$naarx'] : '';
$chauffeurz = isset($_POST['$chauffeurx']) ? $_POST['$chauffeurx'] : '';
$aantalpersonenz = isset($_POST['$aantalpersonenx']) ? $_POST['$aantalpersonenx'] : '';
$tijdz = isset($_POST['$tijdx']) ? $_POST['$tijdx'] : '';
$datumz = isset($_POST['$datumx']) ? $_POST['$datumx'] : '';
$klantinformatiez = isset($_POST['$klantinformatiex']) ? $_POST['$klantinformatiex'] : '';
// Nog een paar andere dingen
$piecesz = explode("-", $datumz);
// DOE DIT MAAR NU EVEN
mysql_query("UPDATE `Test_Ritten` SET `van`='$vanz',`vanhuisnummer`='$vanhuisnummerz',`naar`='$naarz',`chauffeur`='$chauffeurz',`aantalpersonen`='$aantalpersonenz',`tijd`='$tijdz',`datum`='$pieces[2]-$pieces[1]-$pieces[0]',`klantinformatie`='$klantinformatiez' WHERE `id`='$idd' ; ") or die(mysql_error());
}
?>
Ik wil dus mijn gegevens kunnen wijzigen en dat doe ik doormiddel van een ?z=$id toe te voegen aan mijn pagina.
Nu kom ik bij de fout die er speelt.
Elke keer als ik dus op bewerken van een rit druk maakt hij die rit leeg en dat betekent dus dat hij geen data's ophaalt met de $_POST variabelen !
Maar als ik dingen zoals $idd en $vanx echo laat hij wel keurig zien wat daar de waarde van is.
Het gaat dus fout op het moment dat hij data uit de invulvelden moet halen....
Ik hoop dat iemand mij hier mee kan helpen !
Met vriendelijke groet
Chromosone
TIP: Gebruik geen backtics en geef de alias niet dezelfde naam als het origineel.
Zet dit bovenin:
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
?>
Deze fouten krijg ik op de pagina :
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Notice: Use of undefined constant van - assumed 'van' in /srv/www/vhosts/taxinoord.nl/subdomains/Beta/httpdocs/Project CABMAN/rittenadministratie2.php on line 112
Notice: Use of undefined constant vanhuisnummer - assumed 'vanhuisnummer' in /srv/www/vhosts/taxinoord.nl/subdomains/Beta/httpdocs/Project CABMAN/rittenadministratie2.php on line 113
Notice: Use of undefined constant naar - assumed 'naar' in /srv/www/vhosts/taxinoord.nl/subdomains/Beta/httpdocs/Project CABMAN/rittenadministratie2.php on line 114
Notice: Use of undefined constant chauffeur - assumed 'chauffeur' in /srv/www/vhosts/taxinoord.nl/subdomains/Beta/httpdocs/Project CABMAN/rittenadministratie2.php on line 115
Notice: Use of undefined constant aantalpersonen - assumed 'aantalpersonen' in /srv/www/vhosts/taxinoord.nl/subdomains/Beta/httpdocs/Project CABMAN/rittenadministratie2.php on line 116
Notice: Use of undefined constant tijd - assumed 'tijd' in /srv/www/vhosts/taxinoord.nl/subdomains/Beta/httpdocs/Project CABMAN/rittenadministratie2.php on line 117
Notice: Use of undefined constant datum - assumed 'datum' in /srv/www/vhosts/taxinoord.nl/subdomains/Beta/httpdocs/Project CABMAN/rittenadministratie2.php on line 118
Notice: Use of undefined constant klantinformatie - assumed 'klantinformatie' in /srv/www/vhosts/taxinoord.nl/subdomains/Beta/httpdocs/Project CABMAN/rittenadministratie2.php on line 119
Notice: Use of undefined constant submit - assumed 'submit' in /srv/www/vhosts/taxinoord.nl/subdomains/Beta/httpdocs/Project CABMAN/rittenadministratie2.php on line 120
Notice: Use of undefined constant vanhuisnummer - assumed 'vanhuisnummer' in /srv/www/vhosts/taxinoord.nl/subdomains/Beta/httpdocs/Project CABMAN/rittenadministratie2.php on line 113
Notice: Use of undefined constant naar - assumed 'naar' in /srv/www/vhosts/taxinoord.nl/subdomains/Beta/httpdocs/Project CABMAN/rittenadministratie2.php on line 114
Notice: Use of undefined constant chauffeur - assumed 'chauffeur' in /srv/www/vhosts/taxinoord.nl/subdomains/Beta/httpdocs/Project CABMAN/rittenadministratie2.php on line 115
Notice: Use of undefined constant aantalpersonen - assumed 'aantalpersonen' in /srv/www/vhosts/taxinoord.nl/subdomains/Beta/httpdocs/Project CABMAN/rittenadministratie2.php on line 116
Notice: Use of undefined constant tijd - assumed 'tijd' in /srv/www/vhosts/taxinoord.nl/subdomains/Beta/httpdocs/Project CABMAN/rittenadministratie2.php on line 117
Notice: Use of undefined constant datum - assumed 'datum' in /srv/www/vhosts/taxinoord.nl/subdomains/Beta/httpdocs/Project CABMAN/rittenadministratie2.php on line 118
Notice: Use of undefined constant klantinformatie - assumed 'klantinformatie' in /srv/www/vhosts/taxinoord.nl/subdomains/Beta/httpdocs/Project CABMAN/rittenadministratie2.php on line 119
Notice: Use of undefined constant submit - assumed 'submit' in /srv/www/vhosts/taxinoord.nl/subdomains/Beta/httpdocs/Project CABMAN/rittenadministratie2.php on line 120
Gewijzigd op 06/01/2011 15:49:40 door - SanThe -
Ik had eerder geen 'van' maar gewoon van en daarom waren er fouten.
Nu geeft hij dus geen fouten meer aan maar ik kan nog steeds geen gegevens schrijven naar de database.
Zorg eens voor een fatsoenlijke error afhandeling. (snipplr.com/view/45252/goede-foutafhandeling-mysql/)
Heeft iemand anders nog een suggestie om dit op te lossen ?
Waar post jij jouw formulier? Het lijkt erop dat je simpelweg op een linkje klikt en dus je hele formulier niet post.
gebruik geen * dit is een wildcard
backticks horen niet in een query
variabelen buiten quotes houden
tabs gebruiken is veel makkelijker werken
mysql injectie mogelijk
Harm Jan van Kammen op 06/01/2011 15:28:21:
Elke keer als ik dus op bewerken van een rit druk maakt hij die rit leeg en dat betekent dus dat hij geen data's ophaalt met de $_POST variabelen !
Maar als ik dingen zoals $idd en $vanx echo laat hij wel keurig zien wat daar de waarde van is.
Maar als ik dingen zoals $idd en $vanx echo laat hij wel keurig zien wat daar de waarde van is.
En wat als je de $vanz echoot? Die zal leeg zijn. En wat krijg je als je de query echoot? Precies dat wat je ook in je database ziet: lege velden.
Zoals ik het nu lees: je controleert eerst op isset($_GET['z']) zonder verdere controle of z wel voldoet aan de eisen.
Vervolgens maak je een boel variabelen aan (-> // VARIABELEN ID) om vervolgens bij // TOEPASSEN weer nieuwe variabelen aan te maken, waarbij je met een $_POST (?!) gaat werken. Waarom? Je gebruikt de namen van de zojuist aangemaakte variabelen.
Begin overigens php-code met <.?php en niet met <.? (zonder .)
Zorg ook voor foutafhandeling bij je query.
Gewijzigd op 08/01/2011 15:16:46 door Obelix Idefix
Mijn gegevens worden uit een while loop gehaald en elke regel geef ik een id mee vanuit de database.
Ik print nu in die while loop allemaal input velden af met de naam van het veld plus de id van de regel dus bijvoorbeeld "van36"
Nu druk ik op een knop die ook in mijn while loop sta en als die dat doet moet ik aangeven welke id er aangepast moet worden dus dat doe ik met :
$vanx = van . $idd;
Nu ik weet wat de naam van mijn input veld is haal ik de info daarvan uit het veld door dit te doen :
$vanz = isset($_POST['$vanx']) ? $_POST['$vanx'] : '';
En hier gaat het dus ergens mis omdat hij er geen informatie uit kan halen.
Ik snap dus niet wat ik verkeerd doe omdat dit voor mij allemaal erg logisch klinkt.
Dus kan iemand mij dan uitleggen wat ik verkeerd doe ?
Echo $_POST['$vanx'] eens naar het scherm. Staat daar wel een waarde in?
En als ik een andere id pak om te gebruiken geeft hij ook de goede id aan