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

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 3 ... 10 11 12 volgende »

Wouter K

Wouter K

18/12/2007 17:56:00
Quote Anchor link
Hey,

Ik ben eindelijk begonnen met mij project wat voor mij normaal groot ging zijn draait meer uit op klein en ervaring.

ik post hier even mijn verwerkingsgegevens,
Ik lees de ingevulde option (select) uit. Dit verwerk ik , ik maak connectie , en als alles goed schrijf ik het normaal weg,
Wat nu dus niet gebeurd:

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
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
//We connecteren met de db
$sql = mysql_connect("localhost","***","***");
$query = "INSERT into afspraak(dag,uur) VALUES('Maandag', 5)";
$querydie = mysql_query($sql) or die('Fout in mysql!');
$error = '';
$ok = true;
$naam = $_POST['naam'];
$dag = $_POST['dag'];
$uur = $_POST['uur'];


if($_SERVER['REQUEST_METHOD'] == 'POST') {
    //Validate form

    if(!trim($_POST['naam'])) {
        $ok = false;
        $error .= '- Er is geen naam ingevuld<br/>';
    }

    if(!trim($_POST['dag'])) {  
        $ok = false;  
        $error .= '- Er is geen dag ingevuld<br/>';  
    }


    if(!trim($_POST['uur'])) {
        $ok = false;
        $error .= '- Er is geen uur ingevuld<br/>';
    }

mysql_query($query);
echo "".$naam." <br>";
echo "".$dag." <br>";
echo "".$uur." <br>";
}

echo ' Bekijk <a href="showafspraak.php">hier</a> de gemaakte afspraken. '
?>



Kan iemand me helpen , of voor zeggen, ?

mvg wouter
Edit:

Inloggegevens verwijderd.

SanThe.
Gewijzigd op 01/01/1970 01:00:00 door Wouter K
 
PHP hulp

PHP hulp

29/03/2024 14:11:08
 
- SanThe -

- SanThe -

18/12/2007 17:57:00
Quote Anchor link
Ga eerst eens foutafhandeling maken. En zet error reporting aan.
 
Robert Deiman

Robert Deiman

18/12/2007 18:01:00
Quote Anchor link
@wouter

Jou volgorde is nogal vreemd: eerst kopieer je alle post variabelen naar een andere variabele en daarna ga je controleren of er überhaupt wat gepost is?

Een INSERT query waarbij je NIET alle kolommen toevoegd, moet je de kolomnamen ook gebruiken, dat ziet er zo uit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
INSERT INTO table1 (user,age) VALUES ('fred',20);
INSERT INTO table1 (user,age) VALUES ('mary',30);
INSERT INTO table2 (user,os) VALUES ('fred','FreeBSD');
INSERT INTO table2 (user,os) VALUES ('mary','Linux');


Bovendien is het aan te raden de sql in een variabele te zetten en trigger_error te gebruiken na je query.
 
Wouter K

Wouter K

18/12/2007 18:11:00
Quote Anchor link
Ohja dat ;) sorry is een deel geript :) van een ander mady by scriptje,..

Mijn, db zit er zo uit,

mydb
======

Members
----------
id
name
password


Afspraken
------------
id
dag
uur


Ik kijk naar de trigger error,
Edit:

Alle error's weg gewerkt , Nu lukt het nog niet

Al bedankt voor snelle reactie's
Gewijzigd op 01/01/1970 01:00:00 door Wouter K
 
Miniejjj

Miniejjj

18/12/2007 19:27:00
Quote Anchor link
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
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
//We connecteren met de db
$sql = mysql_connect("localhost","***","***");
$error = '';
$ok = true;
$dag = null;
$naam = $_POST['naam'];
$datum = $_POST['datum'];
$uur = $_POST['uur'];

if($_SERVER['REQUEST_METHOD'] == 'POST') {
    //Validate form

    if(!trim($_POST['naam'])) {
        $ok = false;
        $error .= '- Er is geen naam ingevuld<br/>';
    }

    if(!trim($_POST['datum'])) {  
        $ok = false;  
        $error .= '- Er is geen datum ingevuld<br/>';  
    }


    if(!trim($_POST['uur'])) {
        $ok = false;
        $error .= '- Er is geen uur ingevuld<br/>';
    }

$sqlinsert = mysql_query("insert into afspraken(dag,uur) VALUES(".$_POST['dag'].",".$_POST['uur'].")");
echo "".$naam." .<br>";
echo "".$datum." .<br>";
echo "".$uur." .<br>";
}

?>


Trouwens, nu hoef je ook geen extra variable $dag en $uur te maken, nu wordt gewoon post gebruikt.

Als dit niet klopt, beschouw mij dan maar als een noobie :P
Gewijzigd op 01/01/1970 01:00:00 door Miniejjj
 
Wouter K

Wouter K

18/12/2007 20:17:00
Quote Anchor link
Ik heb even alles doormekaar gehaalt

dit bekom ik maar hij schrijft nog steeds niet :( tot mijn grote spijt van 5 uur kijken en verwijderen .!

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
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
//We connecteren met de db
$sql = mysql_connect("localhost","***","***");
$query = "INSERT into afspraak(dag,uur) VALUES('Maandag', 5)";
$error = '';
$ok = true;
$naam = $_POST['naam'];
$dag = $_POST['dag'];
$uur = $_POST['uur'];


if($_SERVER['REQUEST_METHOD'] == 'POST') {
    //Validate form

    if(!trim($_POST['naam'])) {
        $ok = false;
        $error .= '- Er is geen naam ingevuld<br/>';
    }

    if(!trim($_POST['dag'])) {  
        $ok = false;  
        $error .= '- Er is geen dag ingevuld<br/>';  
    }


    if(!trim($_POST['uur'])) {
        $ok = false;
        $error .= '- Er is geen uur ingevuld<br/>';
    }

mysql_query($query);
echo "".$naam." <br>";
echo "".$dag." <br>";
echo "".$uur." <br>";
}

?>



Dit werkt correct , kan iemand me even verder helpen


Blanche ik heb naar je geluisterd ,
Gewijzigd op 01/01/1970 01:00:00 door Wouter K
 
Joren de Wit

Joren de Wit

19/12/2007 00:11:00
Quote Anchor link
Foutafhandeling

Waar controleer je of je query gelukt is? Dat zie ik nergens terug in je script.

Verder is dit vrij nutteloos:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$naam
= $_POST['naam'];
$dag = $_POST['dag'];
$uur = $_POST['uur'];
?>

Kopieen van variabelen waar je niets aan heb. En ook deze conditie is niet juist:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
if(!trim($_POST['naam']))
?>

Wat wil je hiermee bereiken? Weet je wat trim() doet? Ik neem aan dat je wilt controleren of variabelen bestaan?
 
Jan Koehoorn

Jan Koehoorn

19/12/2007 09:31:00
Quote Anchor link
Het is nogal omslachtig om elke POST variabele met de hand te gaan controleren. Ik doe meestal zoiets:
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
<?php
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        $required = array ('naam', 'dag', 'uur');
        $errors = array ();
        foreach ($_POST as $key => $value) {
            if (in_array ($key, $required)) {
                $value = trim ($value);
                if (empty ($value)) {
                    array_push ($errors, '<p>Niets ingevuld bij ' . $key . '</p>');
                }
            }
        }
    }

    
    // verderop in je script
    if (isset ($errors)) {
        if (!empty ($errors)) {
            foreach ($errors as $error) {
                echo PHP_EOL;
                echo $error;
            }
        }
    }

?>
 
Wouter K

Wouter K

19/12/2007 18:02:00
Quote Anchor link
Ja whitespace's verwijderen,

verder jan , ik maak de code zolang ik hem snap.
Ik controleer eigenlijk verder in mijn script wat de gegevens zijn die ingevuld worden, zo dat mits een verkeerde invoer steeds na gekeken kan worden.
Wat jij doet in de code is zeggen wat er niet ingevuld is , maar omdat het een select optie is. Is dit dan ook niet nodig want er is altijd iets ingevuld.

Ik weet eigenlijk niet hoe je kijkt of de query gelukt is, (ben het vergeten :s ik was er gisteren mee bezig maar niemand was er om te helpen).

Maar mocht iemand me kunnen helpen dit draaiend te krijgen
mvg wouter
Edit:

code geupdate

Edit:

Ok, Ik zie nu net dat de fout ligt aan men query, Weet iemand de oplossing ?
(luisterde naar blanche)


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);

include('db_config.php');

echo " Hier staan alle afspraken die u gemaakt heeft. ";
$result = mysql_query("select * from afspraak");
$querydie = mysql_query($sql) or die('Fout in mysql!')

$row = mysql_fetch_object($result);

?>



En hier zit ook een fout, op lijntje 11..
Parse error: syntax error, unexpected T_VARIABLE in /home/phpdesi/domains/php-design.be/public_html/wouter/Grootsysteem/showafspraak.php on line 11


weet hier soms ook iemand de oplossing voor ?
Gewijzigd op 01/01/1970 01:00:00 door Wouter K
 
Joren de Wit

Joren de Wit

19/12/2007 18:17:00
Quote Anchor link
wouter schreef op 19.12.2007 18:02:
Ik weet eigenlijk niet hoe je kijkt of de query gelukt is, (ben het vergeten :s ik was er gisteren mee bezig maar niemand was er om te helpen).
Wouter, heb je nu die tutorial over foutafhandeling al eens doorgelezen? Op de 5e pagina kom je namelijk precies tegen hoe je de foutafhandeling van SQL queries kunt toepassen:

http://phphulp.nl/php/tutorials/2/571/1464/

Verder ontbreekt er op regel 9 in bovenstaande code een ; waardoor je die foutmelding krijgt...
 
Wouter K

Wouter K

19/12/2007 18:33:00
Quote Anchor link
Dit zal ik even verwerken , ..dit is dus de showafspraak.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
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
include('db_config.php');

$sql = "SELECT * FROM afspraak";

if(!$res = mysql_query($sql))
{

    trigger_error(mysql_error().'<br />In query: '.$sql);
}

else
{
    echo "Hier staan alle gemaakte afspraken :";
}

?>


Nu zal ik verder kijken naar 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
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
include('db_config.php');

$error = '';
$ok = true;
$naam = $_POST['naam'];
$dag = $_POST['dag'];
$uur = $_POST['uur'];
$sql = "INSERT into afspraak(dag,uur) VALUES("$dag", "$uur")";

if(!$res = mysql_query($sql))
 {
   trigger_error(mysql_error().'<br />In query: '.$sql);
}


else
{
echo "".$naam." <br>";
echo "".$dag." <br>";
echo "".$uur." <br><br>";
echo ' Bekijk <a href="showafspraak.php">hier</a> de gemaakte afspraken. ';
}

?>



en hier krijg ik terug een error,

Parse error: syntax error, unexpected T_VARIABLE in /home/phpdesi/domains/php-design.be/public_html/wouter/Grootsysteem/verwerk.php on line 11


Kan iemand me weer verder helpen
 
Danny K

Danny K

19/12/2007 18:37:00
Quote Anchor link
In je query moet je punten (.) zetten tussen " en variabelen.
Dus VALUES(" . $dag . ", etc..
 
- SanThe -

- SanThe -

19/12/2007 18:38:00
Quote Anchor link
Kijk naar de kleurtjes en je ziet zelf de fout.
 
Joren de Wit

Joren de Wit

19/12/2007 18:38:00
Quote Anchor link
De foutmelding lijkt me vrij duidelijk, toch? Vertaald: 'onverwachte variabele op regel 11'.

Dan ga je dus op regel 11 kijken welke variabele php nou niet verwacht. Daar staan 3 variabelen: $sql, $dag en $uur. Met $sql is weinig mis, maar zoals je direct al ziet ben je bij $dag en $uur de . en ' vergeten:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$sql
= "INSERT into afspraak(dag,uur) VALUES('".$dag."', '".$uur."')";
?>
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
Wouter K

Wouter K

19/12/2007 18:39:00
Quote Anchor link
Notice: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':00)' at line 1
In query: INSERT into afspraak(dag,uur) VALUES(Donderdag, 14:00) in /home/phpdesi/domains/php-design.be/public_html/wouter/Grootsysteem/verwerk.php on line 14

dit levert de error op,
omdat mijn tijdstippen,


09:00
10:00
..
14:00
zijn,
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
if(!$res = mysql_query($sql))
 {   trigger_error(mysql_error().'<br />In query: '.$sql);
}
[/edit]dit is regel 14
Gewijzigd op 01/01/1970 01:00:00 door Wouter K
 
Joren de Wit

Joren de Wit

19/12/2007 18:40:00
Quote Anchor link
Zoals ik al zei: je bent ook de quotes vergeten...
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
VALUES(Donderdag, 14:00)

Zou natuurlijk
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
VALUES('Donderdag', '14:00')

moeten zijn...
 
Han eev

Han eev

19/12/2007 18:41:00
Quote Anchor link
Goed naar de regel nummer kijken en naar de highlighting kijken.

$sql = "INSERT into afspraak(dag,uur) VALUES("$dag", "$uur")";

Kan toch niet?
Moet dit
$sql = "INSERT into afspraak(dag,uur) VALUES(".$dag.", ".$uur.")";
zijn of
$sql = "INSERT into afspraak(dag,uur) VALUES($dag, $uur)";

en wat natuurlijk nog beter is

$sql = "INSERT into afspraak(dag,uur) VALUES('".$dag."', '".$uur."')";

Edit:

Hoezo te laat...
Gewijzigd op 01/01/1970 01:00:00 door Han eev
 
Joren de Wit

Joren de Wit

19/12/2007 18:42:00
Quote Anchor link
@Han: het moet zelfs de laatste zijn. Die quotes zijn namelijk nodig in de query...
 
- SanThe -

- SanThe -

19/12/2007 18:43:00
Quote Anchor link
Enkele quotes missen dus blijkbaar.
 
Han eev

Han eev

19/12/2007 18:44:00
Quote Anchor link
Blanche schreef op 19.12.2007 18:42:
@Han: het moet zelfs de laatste zijn. Die quotes zijn namelijk nodig in de query...


Weet ik, maar het ging of het klopt met PHP (dus als string) en dan klopt het. Natuurlijk moet je met mysql die quotes gebruiken.
 
Wouter K

Wouter K

19/12/2007 18:45:00
Quote Anchor link
Ok, heb dus alles meteen aangepast, :


Parse error: syntax error, unexpected '"' in /home/phpdesi/domains/php-design.be/public_html/wouter/Grootsysteem/verwerk.php on line 11

Ik heb even alle quotes nagetelt en het aantal klopt
$sql = "INSERT into afspraak(dag,uur) VALUES("".$dag.", ".$uur."")";

mvg

(bedankt al voor de snelle reactie's)
Gewijzigd op 01/01/1970 01:00:00 door Wouter K
 

Pagina: 1 2 3 ... 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.