UPDATE QUERY werkt niet
kan iemand mij vertellen waarom mij update query niet werkt .
dit is het formulier
en dit is de query
dit is het formulier
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$query = "SELECT id, product, prijs, omschrijving FROM aanbod WHERE email = '".mysql_real_escape_string($_SESSION['email'])."' ORDER BY id DESC" ;
$result = mysql_query($query);
if (mysql_num_rows($result)>0){
while($rij = mysql_fetch_assoc($result)) {
echo'<form method="POST" action="verwerkwijzigaanbod.php"> ';
echo' <input type="hidden" name="submit" value="1"> ';
echo' <input type="hidden" name="id" value='.$rij['id'].'>';
echo' Product <br>';
echo' <input type="name" name="product" size="45" maxlength="45" value='.$rij['product'].'><br> ';
echo' Prijs <br>';
echo' <input type="name" name="prijs" size="45" maxlength="45" value='.$rij['prijs'].'><br> ';
echo' Omschrijving<br> ';
echo' <textarea name="omschrijving" rows="6" cols="50" maxlength="300"> '.$rij['omschrijving'].' </textarea><br> ';
echo' <input type="submit" value="wijzig" > ';
echo'</form>';
?>
$query = "SELECT id, product, prijs, omschrijving FROM aanbod WHERE email = '".mysql_real_escape_string($_SESSION['email'])."' ORDER BY id DESC" ;
$result = mysql_query($query);
if (mysql_num_rows($result)>0){
while($rij = mysql_fetch_assoc($result)) {
echo'<form method="POST" action="verwerkwijzigaanbod.php"> ';
echo' <input type="hidden" name="submit" value="1"> ';
echo' <input type="hidden" name="id" value='.$rij['id'].'>';
echo' Product <br>';
echo' <input type="name" name="product" size="45" maxlength="45" value='.$rij['product'].'><br> ';
echo' Prijs <br>';
echo' <input type="name" name="prijs" size="45" maxlength="45" value='.$rij['prijs'].'><br> ';
echo' Omschrijving<br> ';
echo' <textarea name="omschrijving" rows="6" cols="50" maxlength="300"> '.$rij['omschrijving'].' </textarea><br> ';
echo' <input type="submit" value="wijzig" > ';
echo'</form>';
?>
en dit is de query
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
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
<?
$errors = array();
if(!isset($_POST['product']) OR $_POST['product'] == ''){
//error toevoegen
$errors[] = 'er is een geen product ingevuld';
}
//ander veld controle
if(!isset($_POST['prijs']) OR $_POST['prijs'] == ''){
//error toevoegen
$errors[] = 'er is geen prijs ingevuld';
}
//ander veld controle
if(!isset($_POST['omschrijving']) OR $_POST['omschrijving'] == ''){
//error toevoegen
$errors[] = 'er is geen omschrijving ingevuld';
}
else{
}
if(empty($errors)){
//geen errors dus insert
($sproduct = mysql_real_escape_string( $_POST['product']));
($sprijs = mysql_real_escape_string( $_POST['prijs']));
($somschrijving = mysql_real_escape_string( $_POST['omschrijving']));
mysql_query ("UPDATE aanbod SET product= '".$sproduct."', prijs='".$sprijs."', omschrijving= '".$somschrijving."' WHERE id ='".$id."'" );
?>
$errors = array();
if(!isset($_POST['product']) OR $_POST['product'] == ''){
//error toevoegen
$errors[] = 'er is een geen product ingevuld';
}
//ander veld controle
if(!isset($_POST['prijs']) OR $_POST['prijs'] == ''){
//error toevoegen
$errors[] = 'er is geen prijs ingevuld';
}
//ander veld controle
if(!isset($_POST['omschrijving']) OR $_POST['omschrijving'] == ''){
//error toevoegen
$errors[] = 'er is geen omschrijving ingevuld';
}
else{
}
if(empty($errors)){
//geen errors dus insert
($sproduct = mysql_real_escape_string( $_POST['product']));
($sprijs = mysql_real_escape_string( $_POST['prijs']));
($somschrijving = mysql_real_escape_string( $_POST['omschrijving']));
mysql_query ("UPDATE aanbod SET product= '".$sproduct."', prijs='".$sprijs."', omschrijving= '".$somschrijving."' WHERE id ='".$id."'" );
?>
Even een paar dingen.
Door een vraag stelling als "Kan mij iemand vertellen waarom het niet werkt" is makkelijk vragen. Vertel er wel bij wat er fout gaat, welke error je krijgt enz...
Tevens vind ik de manier van controleren Regel 4 tot 19 beetje vreemd.
Kijk HIER eens voor een beter voorbeeld.
Regel 25 tot 27 is overbodig. Zet die $vars gewoon in je query neer.
Tevens zet boven je pagina eens.
En kijk even HIER voor een goede foutafhandeling voor je Query.
Door een vraag stelling als "Kan mij iemand vertellen waarom het niet werkt" is makkelijk vragen. Vertel er wel bij wat er fout gaat, welke error je krijgt enz...
Tevens vind ik de manier van controleren Regel 4 tot 19 beetje vreemd.
Kijk HIER eens voor een beter voorbeeld.
Regel 25 tot 27 is overbodig. Zet die $vars gewoon in je query neer.
Tevens zet boven je pagina eens.
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
/**
* Hiermee kun je in je script de foutmelding laten weergeven.
* Als je site live gaat, wil je de foutmeldingen niet weergeven i.v.m. hackers, dan zet je dit op 0
*/
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
?>
/**
* Hiermee kun je in je script de foutmelding laten weergeven.
* Als je site live gaat, wil je de foutmeldingen niet weergeven i.v.m. hackers, dan zet je dit op 0
*/
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
?>
En kijk even HIER voor een goede foutafhandeling voor je Query.
Geeft hij een error of een melding of wat dan ook ?
Ik mis je foutafhandeling bij je query...
Je maakt onnodig variabele aan ... je kan ze ook rechtstreeks in de query gebruiken..
Ik mis je foutafhandeling bij je query...
Je maakt onnodig variabele aan ... je kan ze ook rechtstreeks in de query gebruiken..
excuses error report was ik vergeten staat er nu in en geeft aan dat hij de $ID niet kent dus deze stuurd dus het formulier niet mee
het vreemde is juist dat hij wel de echo geeft dat de gegevens verwerkt zijn
heb je een idee hoe ik kan zorgen dat het formulier het idee meestuurd ik begrijp niet wat ik hier verkeerd doe
bedankt voor je reactie
het vreemde is juist dat hij wel de echo geeft dat de gegevens verwerkt zijn
heb je een idee hoe ik kan zorgen dat het formulier het idee meestuurd ik begrijp niet wat ik hier verkeerd doe
bedankt voor je reactie
Je heb de id in een hidden input gezet.
Maar je zet de id ook als $id in je update query.
Waarom daar dan niet (int)$_POST('id')
Maar je zet de id ook als $id in je update query.
Waarom daar dan niet (int)$_POST('id')
bedankt frank was vergeten de $id aan te maken
het werkt
het werkt
wat is de melding ?
En als ik in je formulier kijk zie ik hem er wel in staan...
en anders kan je altijd op de verwerkings pagina kijken wat er binnen komt met
En als ik in je formulier kijk zie ik hem er wel in staan...
en anders kan je altijd op de verwerkings pagina kijken wat er binnen komt met
Gewijzigd op 24/07/2012 23:06:19 door Marco PHPJunky
deze oplossing werkt nu wel voor mij of raden jullie wat anders aan ?
waarom maak je er een aparte variabele voor aan ?
gebruik heb gewoon direct....
regel 25 t/m 27 zijn overbodig..
En controleer of je query ook echt gelukt is ....
gebruik heb gewoon direct....
regel 25 t/m 27 zijn overbodig..
En controleer of je query ook echt gelukt is ....
Naast wat Marco zeg hier boven, had ik dat ook al vermeld.
Tevens is een id een int waarde die je niet hoeft te mysql_real_escape_string te gebruiken maar gewoon.
Tevens is een id een int waarde die je niet hoeft te mysql_real_escape_string te gebruiken maar gewoon.
mijn update werkt maar heeft iemand een idee hoe ik ook een verwijder knop kan toevoegen . hoe geef ik dus aan als er op de knop verwijder is gedrukt dat de record verwijderd moet worden en niet geupdate?
heeft er iemand een idee ik weet niet hoe ik hier aan moet beginnen ?
alvast bedankt voor je reactie
heeft er iemand een idee ik weet niet hoe ik hier aan moet beginnen ?
alvast bedankt voor je reactie
Een (iets wat uitgebreide) DELETE query:
In sundaybreaknl.php staan de database gegevens en de database connect, ook moet je ff de tabelnaam en kolomnamen aanpassen
En anders: DELETE QUERY SQL
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
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
<?php require_once('sundaybreaknl.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
if ((isset($_GET['id'])) && ($_GET['id'] != "")) {
$deleteSQL = sprintf("DELETE FROM nieuws_berichten WHERE id=%s",
GetSQLValueString($_GET['id'], "int"));
mysql_select_db($database_sundaybreaknl, $sundaybreaknl);
$Result1 = mysql_query($deleteSQL, $sundaybreaknl) or die(mysql_error());
$deleteGoTo = "index.php";
if (isset($_SERVER['QUERY_STRING'])) {
$deleteGoTo .= (strpos($deleteGoTo, '?')) ? "&" : "?";
$deleteGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $deleteGoTo));
}
?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
if ((isset($_GET['id'])) && ($_GET['id'] != "")) {
$deleteSQL = sprintf("DELETE FROM nieuws_berichten WHERE id=%s",
GetSQLValueString($_GET['id'], "int"));
mysql_select_db($database_sundaybreaknl, $sundaybreaknl);
$Result1 = mysql_query($deleteSQL, $sundaybreaknl) or die(mysql_error());
$deleteGoTo = "index.php";
if (isset($_SERVER['QUERY_STRING'])) {
$deleteGoTo .= (strpos($deleteGoTo, '?')) ? "&" : "?";
$deleteGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $deleteGoTo));
}
?>
In sundaybreaknl.php staan de database gegevens en de database connect, ook moet je ff de tabelnaam en kolomnamen aanpassen
En anders: DELETE QUERY SQL
Gewijzigd op 25/07/2012 22:34:37 door Jelle Hi
Bedankt voor je reactie maar hoe geef ik nu het verschil aan of er op de verwijderknop is gedrukt of op de wijzig knop
Je kan met de header op het eind em doorsturen naar bijvoorbeeld 'verwijderd.html' en zet daar een melding in dat het is gelukt. Hetzelfde doe je dan met de Wijzig knop, maar dan met 'gewijzigd.html' etc.
In de action van het formulier staat nu wijzig.php hoe kan ik hier nu ook een actie inzetten dat hij naar bijv verwijder.php gaat als er op de verwijderknop is gedrukt en dus naar een andere pagina stuurt ?
ff een snelle manier: tweede form maken met alleen submit knop?
@ Jelle..
De TS geeft aan dat hij geen idee heeft wat PHP of wat laat staan wat ermee kan doen .
En dan kom jij met een functie aan zetten die punt 1 oud is en 2 niet te vatten voor de TS...
@Stefan
Ga eerst een wat lezen over PHP/Mysqli/PDO en ga zelf wat kloten daar leer je het meest van...
PHP
SQL
Errors
De TS geeft aan dat hij geen idee heeft wat PHP of wat laat staan wat ermee kan doen .
En dan kom jij met een functie aan zetten die punt 1 oud is en 2 niet te vatten voor de TS...
@Stefan
Ga eerst een wat lezen over PHP/Mysqli/PDO en ga zelf wat kloten daar leer je het meest van...
PHP
SQL
Errors




