Wegschrijven naar DB gaat niet, Stapgewijs hulp ? van blz 1 -> 12
Pagina: « vorige 1 2 3 4 5 6 7 8 ... 10 11 12 volgende »
Kijk eens naar de volgorde van de parameters van checkdate(). Uit mn hoofd ik dat volgens mij maand, dag, jaar... Nu verder. Is het je nu al gelukt om de gegevens goed in de database te krijgen?
Hier staan alle afspraken :
2007-08-09 17:40:00 met test
2007-08-09 17:40:00 met admin
2007-08-09 17:40:00 met admin
2007-08-09 17:40:00 met admin
2007-08-09 17:40:00 met admin
2007-08-09 17:40:00 met admin
2007-08-09 17:40:00 met admin
En dit is wel hoe het moet, ->maae jij had nog gezegt dat het handig zou zijn te controleren of het uur al in gebruik was want zoals je nu ziet (teveel op f5 geduwd) Kan het onmogelijk om 6 klanten om het zelfde uur te laten komen als je weet dat er maar 3 personeelsleden zijn.
Ik weet niet of dit echt nodig is , want mijn peter (baas) die noteerd voorlopig alle afspraken in zijn agenda, dus hij zal altijd een dubbele controle doen , snap je ,?
mvg
Die controle zou zeker niet overbodig zijn. Maar goed, die keuze is natuurlijk aan jou of je die erin wilt hebben...
Ik weet bijna geen functie's,,tot mijn grote spijt..
Welke functie bestaat er hier voor ?
Ik heb nog een error bij mijn delete afspraken
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/phpdesi/domains/php-design.be/public_html/wouter/Grootsysteem/deleteafspraak.php on line 10
u heeft alle gegevens verwijderd
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
include('db_config.php');
$sql = 'DELETE FROM afspraken ';
$res = mysql_query($sql);
if ($res && mysql_num_rows($res) >= 0)
{
echo 'u heeft alle gegevens verwijderd';
}
else
{
echo 'De gegevens zijn niet verwijderd probeer nog een keer !.';
}
?>
ini_set('display_errors', 'On');
error_reporting(E_ALL);
include('db_config.php');
$sql = 'DELETE FROM afspraken ';
$res = mysql_query($sql);
if ($res && mysql_num_rows($res) >= 0)
{
echo 'u heeft alle gegevens verwijderd';
}
else
{
echo 'De gegevens zijn niet verwijderd probeer nog een keer !.';
}
?>
"Als $res groter of gelijk is aan 0" Dat is toch altijd al zo?
En wat betreft die dubbele afspraken. Je zou allereerst een UNIQUE constraint aan kunnen brengen op de kolom waarin je het tijdstip van de afspraak opslaat. Nu kunnen er geen afpraken meer plaatsvinden op precies hetzelfde tijdstip.
steeds een error als het mysql verander en het blijft dezelfde,
En waar geef ik dit juist in ? in de DB .?
Gewijzigd op 01/01/1970 01:00:00 door Wouter K
Een UNIQUE constraint breng je inderdaad aan in de database...
Ik zie niet waar ik dit moet invullen..
In phpMyAdmin staan er als je naar de tabelstructuur kijkt een aantal knopjes achter de kolomnamen. Een daarvan is een rode U. Als je daarop klikt wordt een UNIQUE index aangemaakt op die kolom.
http://wouter.php-design.be/Grootsysteem/
dus eens gewoon op enter, dan heb je een error.
Vul nu 2 keer hetzelfde in.
Warning: checkdate() expects parameter 1 to be long, string given in /home/phpdesi/domains/php-design.be/public_html/wouter/Grootsysteem/verwerk.php on line 12
De ingevulde datum klopt niet probeer opnieuw YYYY-MM-DD hh:ii met wouter
Bekijk hier de gemaakte afspraken.
pak nu als voorbeeld 2007-08-09 en het uur 17:40
Dan krijg je een error door een duplicate key
Notice: Duplicate entry '2007-08-09 17:40:00' for key 2
In query: INSERT into afspraken(afspraak,naam) VALUES('2007-08-09 17:40','wouter') in /home/phpdesi/domains/php-design.be/public_html/wouter/Grootsysteem/verwerk.php on line 17
en dit krijg je als je alles verwijderd :s
Warning: mysql_affected_rows(): supplied argument is not a valid MySQL-Link resource in /home/phpdesi/domains/php-design.be/public_html/wouter/Grootsysteem/deleteafspraak.php on line 10
u heeft alle gegevens verwijderd
----------------------------------------------
Nu alle code die ik gebruik !
Verwerk.php
---------------
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
include('db_config.php');
$naam = $_POST['naam'];
$dag = $_POST['dag'];
$uur = $_POST['uur'];
$dbformaat = $dag.' '.$uur.'';
$sql = "INSERT into afspraken(afspraak,naam) VALUES('".$dbformaat."','".$naam."')";
list($dag, $maand, $jaar) = explode('-', $_POST['dag']);
if(!checkdate($jaar, $maand, $dag))
{
echo " De ingevulde datum klopt niet probeer opnieuw ";
}
if(!$res = mysql_query($sql))
{ trigger_error(mysql_error().'<br />In query: '.$sql);
}
else
{
echo "$dbformaat met $naam <br>";
echo 'Bekijk <a href="showafspraak.php">hier</a> de gemaakte afspraken. ';
}
?>
ini_set('display_errors', 'On');
error_reporting(E_ALL);
include('db_config.php');
$naam = $_POST['naam'];
$dag = $_POST['dag'];
$uur = $_POST['uur'];
$dbformaat = $dag.' '.$uur.'';
$sql = "INSERT into afspraken(afspraak,naam) VALUES('".$dbformaat."','".$naam."')";
list($dag, $maand, $jaar) = explode('-', $_POST['dag']);
if(!checkdate($jaar, $maand, $dag))
{
echo " De ingevulde datum klopt niet probeer opnieuw ";
}
if(!$res = mysql_query($sql))
{ trigger_error(mysql_error().'<br />In query: '.$sql);
}
else
{
echo "$dbformaat met $naam <br>";
echo 'Bekijk <a href="showafspraak.php">hier</a> de gemaakte afspraken. ';
}
?>
----------------------------------------------------------------------
deleteafspraak.php
------------------------
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
include('db_config.php');
$sql = 'DELETE FROM afspraken ';
$res = mysql_query($sql);
if ($res && mysql_affected_rows($res) >= 0)
{
echo 'u heeft alle gegevens verwijderd';
}
else
{
echo 'De gegevens zijn niet verwijderd probeer nog een keer !.';
}
?>
ini_set('display_errors', 'On');
error_reporting(E_ALL);
include('db_config.php');
$sql = 'DELETE FROM afspraken ';
$res = mysql_query($sql);
if ($res && mysql_affected_rows($res) >= 0)
{
echo 'u heeft alle gegevens verwijderd';
}
else
{
echo 'De gegevens zijn niet verwijderd probeer nog een keer !.';
}
?>
Quote:
Dat komt omdat je YYYY-MM-DD als datum opgeeft. De functie checkdate() verslikt zich omdat hij YYYY als jaartal, MM als maand en DD als dag aangereikt krijgt.Warning: checkdate() expects parameter 1 to be long, string given in /home/phpdesi/domains/php-design.be/public_html/wouter/Grootsysteem/verwerk.php on line 12
Quote:
Dat is het gevolg van de UNIQUE constraint. Deze foutmelding zou je moeten afvangen als je de mysql foutmelding opvraagt. MySQL geeft namelijk foutnummer 1062 terug als dit gebeurt. Het foutnummer kun je opvragen met mysql_errno().Notice: Duplicate entry '2007-08-09 17:40:00' for key 2
In query: INSERT into afspraken(afspraak,naam) VALUES('2007-08-09 17:40','wouter') in /home/phpdesi/domains/php-design.be/public_html/wouter/Grootsysteem/verwerk.php on line 17
In query: INSERT into afspraken(afspraak,naam) VALUES('2007-08-09 17:40','wouter') in /home/phpdesi/domains/php-design.be/public_html/wouter/Grootsysteem/verwerk.php on line 17
Quote:
Geen parameter meegeven aan mysql_affected_rows().Warning: mysql_affected_rows(): supplied argument is not a valid MySQL-Link resource in /home/phpdesi/domains/php-design.be/public_html/wouter/Grootsysteem/deleteafspraak.php on line 10
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
derde error is weg , !
ik wil het niet opgeven want er is nog zoveel werk
Sorry hé maar ik heb wat (privé) problemen :(
mvg :( :'(
Een klein beetje code om je op weg te helpen dan maar:
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
44
45
46
47
48
49
50
51
52
53
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
44
45
46
47
48
49
50
51
52
53
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
include('db_config.php');
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$naam = trim($_POST['naam']);
$uur = trim($_POST['uur']);
list($dag, $maand, $jaar) = explode('-', $_POST['dag']);
if(empty($naam))
{
echo 'Je bent vergeten een naam in te vullen.';
}
elseif(empty($uur) && is_numeric($uur))
{
echo 'Je hebt geen geldig uur ingevuld';
}
elseif(!@checkdate($maand, $dag, $jaar))
{
echo 'Je hebt geen geldige datum ingevuld';
}
else
{
$dbFormaat = $jaar.'-'.$maand.'-'.$dag.' '.$uur.'00:00';
$sql = "
INSERT INTO afspraken (
afspraak,
naam )
VALUES (
'".$dbFormaat."',
'".$naam."' )
";
if(!$res = mysql_query($sql))
{
if(mysql_errno() == 1062)
{
echo 'Dit tijdstip is al bezet!';
}
else
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
}
else
{
echo 'Invoegen van nieuwe afspraak gelukt!';
}
}
}
?>
ini_set('display_errors', 'On');
error_reporting(E_ALL);
include('db_config.php');
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$naam = trim($_POST['naam']);
$uur = trim($_POST['uur']);
list($dag, $maand, $jaar) = explode('-', $_POST['dag']);
if(empty($naam))
{
echo 'Je bent vergeten een naam in te vullen.';
}
elseif(empty($uur) && is_numeric($uur))
{
echo 'Je hebt geen geldig uur ingevuld';
}
elseif(!@checkdate($maand, $dag, $jaar))
{
echo 'Je hebt geen geldige datum ingevuld';
}
else
{
$dbFormaat = $jaar.'-'.$maand.'-'.$dag.' '.$uur.'00:00';
$sql = "
INSERT INTO afspraken (
afspraak,
naam )
VALUES (
'".$dbFormaat."',
'".$naam."' )
";
if(!$res = mysql_query($sql))
{
if(mysql_errno() == 1062)
{
echo 'Dit tijdstip is al bezet!';
}
else
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
}
else
{
echo 'Invoegen van nieuwe afspraak gelukt!';
}
}
}
?>
Hij is uit de losse pols, dus kan nog wat kleine foutjes opleveren, maar de overall opzet is goed. Nu is het aan jou om eens goed naar deze code te kijken en belangrijker: hem te snappen...
Succes ermee.
elseif(!@checkdate($maand, $dag, $jaar))
wat doet die @ ? eigenlijk.?
$naam = trim($_POST['naam']);
$uur = trim($_POST['uur']);
en wat bereik je met die trim ?.
Nu moet je geen uur invullen en het werkt ook :( !
Gewijzigd op 01/01/1970 01:00:00 door Wouter K
checkdate() zou normaal gesproken een php foutmelding geven als je een string als datum invult, maar die foutmelding willen we niet zien. Wij willen de eigen foutmelding, 'Geen geldige datum', weergeven...
trim() zorgt ervoor dat loze spaties aan het begin en eind van de input verwijderd worden. Op die manier is het niet mogelijk om de empty() controle te omzeilen door enkel een spatie in te voeren.
Inderdaad je vult nu enkel nog de eerste parameter van het uur is, dus bijvoorbeeld 21 of 9. Het is nu dus alleen mogelijk om op hele uren afspraken te maken, maar dat is eenvoudig te veranderen. De controle van die waarde (ja je moet alles controleren) wordt dan wel iets lastiger...
mvg