Hoeveel AND in een UPDATE statement

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2 3 4 volgende »

- Ariën  -
Beheerder

- Ariën -

15/05/2012 20:57:36
Quote Anchor link
update is bij jouween string, die kan geen boolean zijn.
Je voert gewoon niks uit.
 
PHP hulp

PHP hulp

23/11/2024 03:08:28
 
Chris PHP

Chris PHP

15/05/2012 21:00:22
Quote Anchor link
Aar,

Ik heb nu het volgende, welk antwoord verwacht je te krijgen van 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
<?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(); }
?>
Gewijzigd op 15/05/2012 21:01:19 door Chris PHP
 
- Ariën  -
Beheerder

- Ariën -

15/05/2012 21:01:22
Quote Anchor link
Ik weet niet of jouw database klopt, dus ik kan neit zomaar zeggen of het lukt.
Ik zou zeggen: Test het uit.
 
Chris PHP

Chris PHP

15/05/2012 21:02:12
Quote Anchor link
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.
 
- SanThe -

- SanThe -

15/05/2012 21:03:45
Quote Anchor link
Doe eens dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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';
?>
Gewijzigd op 15/05/2012 21:04:19 door - SanThe -
 
Obelix Idefix

Obelix Idefix

15/05/2012 21:06:41
Quote Anchor link
Chris NVT op 15/05/2012 21:00:22:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
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?
 
- Ariën  -
Beheerder

- Ariën -

15/05/2012 21:10:26
Quote Anchor link
Obelix en Idefix op 15/05/2012 21:06:41:
Chris NVT op 15/05/2012 21:00:22:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
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 -
 
Chris PHP

Chris PHP

15/05/2012 21:10:51
Quote Anchor link
@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.
 
- Ariën  -
Beheerder

- Ariën -

15/05/2012 21:11:36
Quote Anchor link
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.

Zie mijn vorige post.
$update is je SQL-string, $result je query.
 
Chris PHP

Chris PHP

15/05/2012 21:13:06
Quote Anchor link
@Aar, ik heb het zo getest.

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
<?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'; }
?>
 
- Ariën  -
Beheerder

- Ariën -

15/05/2012 21:14:16
Quote Anchor link
echo eens $update. Klopt die query?
 
Chris PHP

Chris PHP

15/05/2012 21:19:47
Quote Anchor link
Aar,

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!)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$query
= mysql_query ("SELECT * FROM artikel WHERE a_id = '$page'");
?>


en zo wordt de id aan $page gedelcareerd.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$page
= intval ($_GET['id']);
?>
 
- SanThe -

- SanThe -

15/05/2012 21:20:17
Quote Anchor link
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.
 
Chris PHP

Chris PHP

15/05/2012 21:25:08
Quote Anchor link
Ik heb het probleem gevonden echter nog geen oplossing.

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
 
Wouter J

Wouter J

15/05/2012 21:29:22
Quote Anchor link
Nou en zie hier. Als Chris meteen foutafhandeling erin had gebouwd en dus bij een fout zijn query op het scherm toverde dan had hij dit helemaal zelf op kunnen lossen en meteen de fout kunnen zien! De conclusie van dit topic dus: Bouw altijd eerst foutafhandeling en dan pas je script.

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
 
Chris PHP

Chris PHP

15/05/2012 21:32:47
Quote Anchor link
@Wouter,

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.
 
- Ariën  -
Beheerder

- Ariën -

15/05/2012 21:36:17
Quote Anchor link
Waar komt $page vandaan?
 
Wouter J

Wouter J

15/05/2012 21:38:13
Quote Anchor link
$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.
 
Chris PHP

Chris PHP

15/05/2012 21:39:48
Quote Anchor link
@Aar,

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
 
Obelix Idefix

Obelix Idefix

15/05/2012 21:46:56
Quote Anchor link
Als je vlak voor de update-query de inhoud van $_GET['id'] en $page opvraagt, krijg je beide keren het getal wat in de url staat?
Gewijzigd op 15/05/2012 21:47:24 door Obelix Idefix
 

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