Hoeveel AND in een UPDATE statement
Pagina: « vorige 1 2 3 4 volgende »
Je voert gewoon niks uit.
Ik heb nu het volgende, welk antwoord verwacht je te krijgen van PHP?
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
$update = mysql_query ("UPDATE artikel SET
p_id='".mysql_real_escape_string($_POST['pagina'])."',
titel='".mysql_real_escape_string($_POST['titel'])."',
summary='".mysql_real_escape_string($_POST['summary'])."',
content='".mysql_real_escape_string($_POST['content'])."',
zichtbaar='".$zichtbaar."'
WHERE a_id ='".$page."'");
if ($update) {
echo "Bericht is bijgewerkt";
} else { echo "foutmelding controleer" .mysql_error(); }
?>
$update = mysql_query ("UPDATE artikel SET
p_id='".mysql_real_escape_string($_POST['pagina'])."',
titel='".mysql_real_escape_string($_POST['titel'])."',
summary='".mysql_real_escape_string($_POST['summary'])."',
content='".mysql_real_escape_string($_POST['content'])."',
zichtbaar='".$zichtbaar."'
WHERE a_id ='".$page."'");
if ($update) {
echo "Bericht is bijgewerkt";
} else { echo "foutmelding controleer" .mysql_error(); }
?>
Gewijzigd op 15/05/2012 21:01:19 door Chris PHP
Ik zou zeggen: Test het uit.
Dat heb ik dus gedaan, ik krijg de melding Bericht is bijgewerkt echter klopt dit niet. De velden zijn correct, alle gegevens kloppen met mijn database.
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$update = "UPDATE ..... en de rest";
$result = mysql_query($update);
if($result === false) echo 'Error: ' . mysql_error();
else echo 'Aangepast ' . mysql_affected_rows() . ' records';
?>
$update = "UPDATE ..... en de rest";
$result = mysql_query($update);
if($result === false) echo 'Error: ' . mysql_error();
else echo 'Aangepast ' . mysql_affected_rows() . ' records';
?>
Gewijzigd op 15/05/2012 21:04:19 door - SanThe -
Chris NVT op 15/05/2012 21:00:22:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
if ($update) {
echo "Bericht is bijgewerkt";
} else { echo "foutmelding controleer" .mysql_error(); }
?>
if ($update) {
echo "Bericht is bijgewerkt";
} else { echo "foutmelding controleer" .mysql_error(); }
?>
Is die controle wel correct (opgebouwd)??
En wat klopt er niet dan? Wordt er niets in je db gezet? Foute informatie?
Wat als je de query echo't naar het scherm; klopt dat dan wel?
Obelix en Idefix op 15/05/2012 21:06:41:
Is die controle wel correct (opgebouwd)??
En wat klopt er niet dan? Wordt er niets in je db gezet? Foute informatie?
Wat als je de query echo't naar het scherm; klopt dat dan wel?
Chris NVT op 15/05/2012 21:00:22:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
if ($update) {
echo "Bericht is bijgewerkt";
} else { echo "foutmelding controleer" .mysql_error(); }
?>
if ($update) {
echo "Bericht is bijgewerkt";
} else { echo "foutmelding controleer" .mysql_error(); }
?>
Is die controle wel correct (opgebouwd)??
En wat klopt er niet dan? Wordt er niets in je db gezet? Foute informatie?
Wat als je de query echo't naar het scherm; klopt dat dan wel?
$update is je string, $result is je query, die voer je uit, en daar moet je op controleren.
Gewijzigd op 15/05/2012 21:11:00 door - Ariën -
@Obelix,
Ik krijg bij die controle dat het bericht is bijgewerkt, echter heeft hij dat niet gedaan. Alles blijft ongewijzigd.
Chris NVT op 15/05/2012 21:10:51:
@SanThe ik krijg dan Aangelast 0 records.
@Obelix,
Ik krijg bij die controle dat het bericht is bijgewerkt, echter heeft hij dat niet gedaan. Alles blijft ongewijzigd.
@Obelix,
Ik krijg bij die controle dat het bericht is bijgewerkt, echter heeft hij dat niet gedaan. Alles blijft ongewijzigd.
Zie mijn vorige post.
$update is je SQL-string, $result je query.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$update = "UPDATE artikel SET
p_id='".mysql_real_escape_string($_POST['pagina'])."',
titel='".mysql_real_escape_string($_POST['titel'])."',
summary='".mysql_real_escape_string($_POST['summary'])."',
content='".mysql_real_escape_string($_POST['content'])."',
zichtbaar='".$zichtbaar."'
WHERE a_id ='".$page."'";
$result = mysql_query ($update);
if($result === false) { echo 'Error: ' . mysql_error();
}else { echo 'Aangepast ' . mysql_affected_rows() . ' records'; }
?>
$update = "UPDATE artikel SET
p_id='".mysql_real_escape_string($_POST['pagina'])."',
titel='".mysql_real_escape_string($_POST['titel'])."',
summary='".mysql_real_escape_string($_POST['summary'])."',
content='".mysql_real_escape_string($_POST['content'])."',
zichtbaar='".$zichtbaar."'
WHERE a_id ='".$page."'";
$result = mysql_query ($update);
if($result === false) { echo 'Error: ' . mysql_error();
}else { echo 'Aangepast ' . mysql_affected_rows() . ' records'; }
?>
echo eens $update. Klopt die query?
dit is de uitkomst.
Quote:
UPDATE artikel SET p_id='1', titel='hoi', summary='asd', content='Alles wat je wil', zichtbaar='0' WHERE a_id ='0'
Ik zie 'nu' pas dat mijn a_id (artikel id) 0 is, wat niet kan.
Dat is heel vreemd want hier werkt het wel (dit is in dezelfde pagina!)
en zo wordt de id aan $page gedelcareerd.
Chris NVT op 15/05/2012 21:10:51:
@SanThe ik krijg dan Aangelast 0 records.
Dat houdt dus in dat de query gewoon werkt.
Echter zijn er geen records gevonden die aan de WHERE voldoen.
als ik het a_id met de hand type dus WHERE a_id = '13' werkt het en update hij het record.
Echter als ik het doe zoals in mijn laatste post, wordt $page 0 voor een reden die ik niet kan verklaren.
Want als ik echo $page doe 1 regel boven de query geeft hij 13 aan, echter in de query wordt hij 0
Gewijzigd op 15/05/2012 21:26:11 door Chris PHP
PS: Speciaal voor jou is de update query toegevoegd, had hem waarschijnlijk over het hoofd gezien. Bedankt!
Gewijzigd op 15/05/2012 21:36:44 door Wouter J
Nee de foutafhandeling was goed, het probleem is dat om een vage reden $page 0 wordt in de UPDATE statement. Ik kwam hier pas achter toe Aar het advies gaf om $update gewoon eens af te drukken op het scherm.
Dus helaas er is nog een conclusie, het probleem is niet verholpen.
Waar komt $page vandaan?
$page is zo te zien een resultaat van intval($_GET['id']) mijn vermoeden is dat deze functie er 0 van maakt omdat $_GET['id'] een string is en geen getal.
dat is de $_GET['id'] deze wordt in de url meegegeven van de hoofdpagina (overzicht).
Dat gaat allemaal goed want hij haald dat bericht op en zet met echo de waardes in het <form>
Echter veranderd deze waarde alleen in de UPDATE statement naar 0. Dus probeerd hij die post te updaten in het bericht met a_id 0 die uiteraard niet bestaat
Toevoeging op 15/05/2012 21:40:38:
@Wouter,
Waarom werkt dit wel bij de SELECT query ietsjes verder in het script (zie een paar posts terug)? Tevens is a_id in mijn tabel een int, het kan dus niets anders zijn dan een int.
Gewijzigd op 15/05/2012 21:42:21 door Chris PHP
Gewijzigd op 15/05/2012 21:47:24 door Obelix Idefix