Ik heb een insert query geschreven, hierbij is het de bedoeling dat 7 rijen geinsert worden aan de hand van een 'for' loop. De bedoeling is dat de informatie wordt gezet in een tabel genaamd verdeling, in de tabel zit een autoincrement ID zodat gegevens niet overschreden worden. Het probleem is helaas dat de insert query niet werkt. Van het probleem heb ik een screenshot geplaatst op http://home.wanadoo.nl/wjnijhof/temp/2.jpg .
Ik heb de query en waardes ge'echo'ed', ik heb gecontroleerd op het gebruik van grote en kleine letters, ik heb mijn insert query vergeleken met insert queries hier op dit forum, ik heb de waardes in mijn query vergeleken met de namen in de tabel, helaas kan ik de fout niet ontdekken.
@-jes in je code om foutmeldingen te onderdrukken? Hoe lastig wil je het jezelf maken? Nooit doen en altijd de error_reporting() op het hoogste niveau zetten, dus E_ALL. Hoe meer foutmeldingen en notices je op je scherm krijgt, hoe meer je er kunt gaan oplossen. Daar wordt je script alleen maar beter van.
Tip: Het rekenen met datums, kun je wellicht handiger door de database laten doen. Die heeft vele handige datum- en tijdfuncties voorhanden, zie hoofdstuk 12.5 van de MySQL-handleiding. Uiteraard gebruik je een DATE of DATETIME om de boel op te slaan.
In de query lijkt het dus alsof het 'rollid = procesmanager' gedeelte verdwijnt. In plaats daarvan wordt in de query alleen de eerste letter van de waarde 'rollen' getoond ('p' van procesmanager). Hoe kan het dat de query afwijkt van de ge'echo'de query?
Hieronder volgt de gehele code: Let erop dat sommige delen nog versimpeld kunnen worden.
<?php
session_start();
$beschikbaar1 = $_SESSION['beschikbaar1'];
?>
<html>
<title>verdelingweek</title>
<link REL="stylesheet" href="include/style.css" type="text/css">
Een ogenblik geduld AUB.
<?php
include("sp/dbverbinding.php");
?>
<?php
//alles van het invulformulier wordt naar deze pagina gehaald
extract($_REQUEST);
$processen[0] = $procesma;
$procesuren[0] = $procesurenma;
$rol[0] = $rollenma;
$processen[1] = $procesdi;
$procesuren[1] = $procesurendi;
$rol[1] = $rollendi;
$processen[2] = $proceswo;
$procesuren[2] = $procesurenwo;
$rol[2] = $rollenwo;
$processen[3] = $procesdo;
$procesuren[3] = $procesurendo;
$rol[3] = $rollendo;
$processen[4] = $procesvr;
$procesuren[4] = $procesurenvr;
$rol[4] = $rollenvr;
$processen[5] = $procesza;
$procesuren[5] = $procesurenza;
$rol[5] = $rollenza;
$processen[6] = $proceszo;
$procesuren[6] = $procesurenzo;
$rol[6] = $rollenzo;
//Huidige dag bepalen
$vandaag = strftime("%a",time());
echo "<p>Het is vandaag: $vandaag</p>";
//Timestamp bepalen
$tijd = time();
echo "<p>De huidige timestamp is $tijd</p>";
//Als het maandag is dan wordt het rooster voor over 2 weken gedaan, als het dinsdag t/m zondag is
//dan wordt de dag 'teruggezet' naar maandag en wordt het rooster van dan over 2 weken gedaan
if ($vandaag == 'Mon') {
$supertijd = strtotime("-0 day", $tijd);
}
if ($vandaag == 'Tue') {
$supertijd = strtotime("-1 day", $tijd);
}
if ($vandaag == 'Wed') {
$supertijd = strtotime("-2 day", $tijd);
}
if ($vandaag == 'Thu') {
$supertijd = strtotime("-3 day", $tijd);
}
if ($vandaag == 'Fri') {
$supertijd = strtotime("-4 day", $tijd);
}
if ($vandaag == 'Sat') {
$supertijd = strtotime("-5 day", $tijd);
}
if ($vandaag == 'Sun') {
$supertijd = strtotime("-6 day", $tijd);
}
//timestamp
echo "<p>De timestamp is teruggezet naar $supertijd";
//dag
$dagvannu = strftime("%a", $supertijd);
echo "<p>Dag teruggezet naar $dagvannu</p>";
//Volgendeweek dagen in plan array
$plan = array(7,8,9,10,11,12,13);
//Insert Query
for ($nr = 0; $nr <= 6; $nr++) {
$volgendeweek2 = strtotime("+$plan[$nr] day", $supertijd);
$volgendeweek = strftime("%Y-%m-%d",$volgendeweek2);
$sql = "Insert INTO verdeling SET
Init = '$init'
Datum = '$volgendeweek'
Beschikbaarheid = '$beschikbaar1[$nr]'
ProcesID = '$processen[$nr]'
Proces_uren = '$procesuren[$nr]'
RollID = '$rol[$nr]'";
echo $sql;
if (mysql_query($sql)) {
echo '<p>$nr Succesvol toegevoegd</p>';
} else {
trigger_error(mysql_error());
}
}
?>