Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/04/2007, 18h45   #1
Invité de passage
 
Inscription : avril 2007
Messages : 16
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 16
Points : 3
Points : 3
Par défaut [SQL] Problème Update sql et variable php

Bonjour,

voilà j'ai un script qui récupére la valeur d'un champ dans ma base, puis j'ajoute un nombre à la valeur et je veux réinjecter le résultat dans la base, seulement au lieu de me renvoyer la somme il m'envoye 0

Voici mon petit truc bancale :

Code :
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
<?php
 
include ('config.php');
 
$sql = 'SELECT TOTAL FROM `points_pilotes` WHERE pilotes=\'F. ALONSO\' ';
$result2 = mysql_query($sql, $link) or die($sql . " - " . mysql_error());
$test = mysql_fetch_array($result2);
$test = $test['TOTAL'];
 
echo '<br>'.'recup de la valeur total : '.$test.'<br>'; // Valeur 20 ici
 
$test = $test+10;
 
echo '<br>'.'nouvelle valeur total : '.$test.'<br>'; // Valeur 30 ici
 
$update = 'UPDATE `points_pilotes` SET `TOTAL` = "$test" WHERE `classement` = 1 ';
$result3 = mysql_query($update, $link) or die($update . " - " . mysql_error());
 
$new = 'SELECT TOTAL FROM `points_pilotes` WHERE pilotes=\'F. ALONSO\' ';
$result4 = mysql_query($sql, $link) or die($new . " - " . mysql_error());
 
$test2 = mysql_fetch_array($result4);
$test2 = $test2['TOTAL'];
 
echo '<br>'.'recup de la new valeur : '.$test2.'<br>'; // Valeur 0 ici
 
?>
Voilà si vous pouviez m'aider pour savoir pourquoi il me dit 0

Merci à tous, bon WE.
MacSIM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2007, 18h52   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Il ne doit pas aimer les doubles quotes autour de $test dans la requête UPDATE. Vous êtes obligés de vous y en prendre en deux fois pour incrémenter cette valeur (SELECT puis UPDATE au lieu d'un simple UPDATE) ?
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2007, 19h05   #3
Invité de passage
 
Inscription : avril 2007
Messages : 16
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 16
Points : 3
Points : 3
Bonjour,

avec les simples quotes '$test' j'ai une erreur :

Parse error: parse error, unexpected T_VARIABLE in /test.php on line 17

et avec \'$test\' j'ai le même problème qu'avec des doubles quotes.

Comment faire pour le select + update ?

Merci pour ta réponse !
MacSIM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2007, 20h05   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
La variable $test n'est pas interpolée dans la requête update car cette chaîne est délimitée par des apostrophes : utilisez soit une concaténation ou des guillemets doubles. De plus, les nombres (les entiers tout du moins) n'ont pas besoin d'être encadrés par des quotes.

Pour faire directement la requête update :
Code SQL :
UPDATE points_pilotes SET TOTAL = TOTAL + 10 WHERE pilotes='F. ALONSO';
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h19.


 
 
 
 
Partenaires

Hébergement Web