Wegschrijven naar DB gaat niet, Stapgewijs hulp ? van blz 1 -> 12
Pagina: 1 2 3 ... 10 11 12 volgende »
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)
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
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. '
?>
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.
Inloggegevens verwijderd.
SanThe.
Gewijzigd op 01/01/1970 01:00:00 door Wouter K
Ga eerst eens foutafhandeling maken. En zet error reporting aan.
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)
1
2
3
4
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');
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.
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
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
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
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>";
}
?>
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
dit bekom ik maar hij schrijft nog steeds niet :( tot mijn grote spijt van 5 uur kijken en verwijderen .!
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
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>";
}
?>
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
Foutafhandeling
Waar controleer je of je query gelukt is? Dat zie ik nergens terug in je script.
Verder is dit vrij nutteloos:
Kopieen van variabelen waar je niets aan heb. En ook deze conditie is niet juist:
Wat wil je hiermee bereiken? Weet je wat trim() doet? Ik neem aan dat je wilt controleren of variabelen bestaan?
Waar controleer je of je query gelukt is? Dat zie ik nergens terug in je script.
Verder is dit vrij nutteloos:
Kopieen van variabelen waar je niets aan heb. En ook deze conditie is niet juist:
Wat wil je hiermee bereiken? Weet je wat trim() doet? Ik neem aan dat je wilt controleren of variabelen bestaan?
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
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;
}
}
}
?>
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;
}
}
}
?>
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
code geupdate
Edit:
Ok, Ik zie nu net dat de fout ligt aan men query, Weet iemand de oplossing ?
(luisterde naar blanche)
Ok, Ik zie nu net dat de fout ligt aan men query, Weet iemand de oplossing ?
(luisterde naar blanche)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
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);
?>
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
wouter schreef op 19.12.2007 18:02:
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: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).
http://phphulp.nl/php/tutorials/2/571/1464/
Verder ontbreekt er op regel 9 in bovenstaande code een ; waardoor je die foutmelding krijgt...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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 :";
}
?>
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)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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. ';
}
?>
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
Dus VALUES(" . $dag . ", etc..
Kijk naar de kleurtjes en je ziet zelf de fout.
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:
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
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)
1
2
3
4
2
3
4
if(!$res = mysql_query($sql))
{ trigger_error(mysql_error().'<br />In query: '.$sql);
}
[/edit]dit is regel 14
{ trigger_error(mysql_error().'<br />In query: '.$sql);
}
[/edit]dit is regel 14
Gewijzigd op 01/01/1970 01:00:00 door Wouter K
Zou natuurlijk
moeten zijn...
$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
@Han: het moet zelfs de laatste zijn. Die quotes zijn namelijk nodig in de query...
Enkele quotes missen dus blijkbaar.
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.
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