Wegschrijven naar DB gaat niet, Stapgewijs hulp ? van blz 1 -> 12

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2 3 4 5 6 7 8 ... 10 11 12 volgende »

Joren de Wit

Joren de Wit

20/12/2007 14:50:00
Quote Anchor link
Kijk eens naar de volgorde van de parameters van checkdate(). Uit mn hoofd ik dat volgens mij maand, dag, jaar...

Dus:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if(!checkdate($maand, $dag, $jaar))
{

    // Geen geldige datum!
}
?>
 
PHP hulp

PHP hulp

24/11/2024 04:38:55
 
Wouter K

Wouter K

20/12/2007 14:52:00
Quote Anchor link
Ohja dat is ook waar ik doe nog niks met de checkdate, even zien op te lossen

Voila , opgelost
Gewijzigd op 01/01/1970 01:00:00 door Wouter K
 
Joren de Wit

Joren de Wit

20/12/2007 14:57:00
Quote Anchor link
Nu verder. Is het je nu al gelukt om de gegevens goed in de database te krijgen?
 
Wouter K

Wouter K

20/12/2007 14:59:00
Quote Anchor link
Ja, want de uitvoer komt nu zo

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
 
Joren de Wit

Joren de Wit

20/12/2007 15:08:00
Quote Anchor link
Die controle zou zeker niet overbodig zijn. Maar goed, die keuze is natuurlijk aan jou of je die erin wilt hebben...
 
Wouter K

Wouter K

20/12/2007 19:12:00
Quote Anchor link
Ja, maar dat zou ik eigenlijk niet weten hoe ik dat doe,

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)
PHP script in nieuw venster Selecteer het PHP script
1
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 !.';
        }

?>
 
W W

W W

20/12/2007 19:16:00
Quote Anchor link
Ok wat je nu zegt is het volgende,

"Als $res groter of gelijk is aan 0" Dat is toch altijd al zo?
 
Joren de Wit

Joren de Wit

20/12/2007 19:16:00
Quote Anchor link
Ik denk dat je mysql_affected_rows() bedoelt in plaats van mysql_num_rows()...

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.
 
Wouter K

Wouter K

20/12/2007 19:16:00
Quote Anchor link
jah, maar dit is als het verwijderd is

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
 
Joren de Wit

Joren de Wit

20/12/2007 19:23:00
Quote Anchor link
Een UNIQUE constraint breng je inderdaad aan in de database...
 
Wouter K

Wouter K

20/12/2007 19:30:00
Quote Anchor link
Ik zie niet waar ik dit moet invullen..
 
Joren de Wit

Joren de Wit

20/12/2007 19:33:00
Quote Anchor link
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.
 
Wouter K

Wouter K

20/12/2007 19:53:00
Quote Anchor link
Ow dit loopt helemaal fout,
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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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. ';
}

?>


----------------------------------------------------------------------

deleteafspraak.php
------------------------

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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 !.';
        }

?>
 
Joren de Wit

Joren de Wit

20/12/2007 20:02:00
Quote Anchor link
Quote:
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
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.

Quote:
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
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().

Quote:
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
Geen parameter meegeven aan mysql_affected_rows().
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
Wouter K

Wouter K

20/12/2007 20:03:00
Quote Anchor link
Kan je dan even zo vriendelijk zijn om voor mij even de code te veranderen ?.

derde error is weg , !
 
Wouter K

Wouter K

20/12/2007 21:00:00
Quote Anchor link
Ik bump sorry ik zit echt in de put,, heb al wat minder error's en alweer wat meer :(

ik wil het niet opgeven want er is nog zoveel werk


Sorry hé maar ik heb wat (privé) problemen :(

mvg :( :'(
 
Joren de Wit

Joren de Wit

20/12/2007 21:29:00
Quote Anchor link
Wouter, niet bumpen maar dat weet je zelf ook! Je wordt er echt niet sneller door geholpen...

Een klein beetje code om je op weg te helpen dan maar:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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!';
        }
    }
}

?>

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.
 
Wouter K

Wouter K

20/12/2007 21:34:00
Quote Anchor link
Ok, geen error

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
 
Joren de Wit

Joren de Wit

20/12/2007 21:43:00
Quote Anchor link
Het gebruik van @ raad ik altijd af aangezien het fouten onderdrukt, maar dit is een goed voorbeeld waar je deze zou kunnen gebruiken.

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...
 
Wouter K

Wouter K

20/12/2007 21:44:00
Quote Anchor link
Is er geen manier bv de numeric manier ? want die pas je toe maar werkt niet of doet zijn ding niet !

mvg
 

Pagina: « vorige 1 2 3 4 5 6 7 8 ... 10 11 12 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.