pb update variable "image"

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : pb update variable "image"

par Truc » 10 juin 2006, 20:31

$sql = "UPDATE membres SET etatvehicule = './images/go.gif' WHERE id = ".$id;	
Et bien voila c'étais pas difficile... une requête de mise à jour on ne peut plus simple :wink:
Sans concaténation ou "+" ou reprise de l'ancien contenu :?

par YVES » 10 juin 2006, 00:33

Ca y est à force de persévérer :D

voilà ce qui est juste !
$sql = "UPDATE membres SET etatvehicule = './images/go.gif' WHERE id = ".$id;	
mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
if($res)
{
$_SESSION['etatvehicule']='./images/go.gif';
}
header("Location: gestion.php");
}
mysql_close();
?> 

par YVES » 10 juin 2006, 00:28

RECAPITULATIF
<?php
session_start();
?>
<?php
$db= mysql_connect(localhost, xxx, xxx) or die("Impossible de se connecter à la base de données"); 	   
 mysql_select_db('xxx',$db)  or die('Erreur de selection base'.mysql_error());
$sql= " SELECT vehicule FROM membres WHERE id = ". $id; 
$res=mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
($data = mysql_result($res,vehicule));
if ($data== './objet/apied.gif')
       {
    echo '<center><font color="red">Vous n\'avez pas besoin d\'utiliser vos jambes pour vous déplacer, cela se fait automatiquement!</font></center>
<center><font color="black"><a href="gestion.php">retour page gestion</a></font></center>';
	}
	else
	{
$sql = "UPDATE membres SET etatvehicule = etatvehicule='./images/go.gif' WHERE id = ".$id;	
mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
if($res)
{
$_SESSION['etatvehicule']='./images/go.gif';
}
header("Location: gestion.php");
}
mysql_close();
?> 
cela affiche bien l'image mais me met un "0" dans la db au lieu du chemin d el'image (./images/go.gif)...................................

par YVES » 10 juin 2006, 00:22

donc c'est déjà 1 pb de Update !

par YVES » 10 juin 2006, 00:14

Bon, y'a 1 léger mieux avec le meme code que juste au dessus avec ceci de modifié:
$sql = "UPDATE membres SET etatvehicule = etatvehicule='./images/go.gif' WHERE id = ".$id;	
mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
     $_SESSION['etatvehicule']='./images/go.gif';
}
header("Location: gestion.php");
mysql_close();
?> 
la nouvelle image s'affiche bien dans la page mais pas dans la bse de données ! (j'ai toujours mon zéro en lieu et place du chemin de l'image) :roll:

par YVES » 09 juin 2006, 23:18

Voici le code modifié...
Mais je n'arrive pas à mettre la valeur à jour en session ni en table (toujours un "0" à la place de la nouvelle image, go.gif)...............
<?php
session_start();
?>
<?php
$db= mysql_connect(localhost, xxx, xxx) or die("Impossible de se connecter à la base de données"); 	   
 mysql_select_db('xxx',$db)  or die('Erreur de selection base'.mysql_error());
$sql= " SELECT vehicule FROM membres WHERE id = ". $id; 
$res=mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
($data = mysql_result($res,vehicule));
if ($data== './objet/apied.gif')
       {
    echo '<center><font color="red">Vous n\'avez pas besoin d\'utiliser vos jambes pour vous déplacer, cela se fait automatiquement!</font></center>
<center><font color="black"><a href="gestion.php">retour page gestion</a></font></center>';
	}
	else
	{
$sql = "UPDATE membres SET etatvehicule = etatvehicule='./images/go.gif' WHERE id = ".$id;	
mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
   $_SESSION['etatvehicule']= $_SESSION['etatvehicule=./images/go.gif'];
}
header("Location: gestion.php");
mysql_close();
?> 

par Truc » 09 juin 2006, 00:23

On va reprendre doucement...

as tu été voir la doc pour CONCAT() ?

En regardant de près tu t'appercevra que ce n'est pas ce dont tu as besoin. Tu veux remplacer le contenu par un autre une simple requête de mise à jour suffirait sans concaténer le contenu déjà présent au nouveau contenu.
... etatvehicule='./images/go.gif' ...
Il n'y a pas toute la requête faut la compléter :wink:

Ensuite tu as ceci:
if($res)
C'est quoi $res ?

par YVES » 08 juin 2006, 22:20

bien, en reprenant le code de l'invité ci dessus, la mise à jour dans la base donne celà:

./images/stop.gif./images/go.gif

C'est à dire que la requète ajoute l'image nouvelle à l'ancienne au lieu de la substituer...

J'ai remodifié le code ainsi:
$sql = "UPDATE membres SET etatvehicule = CONCAT(etatvehicule, './images/go.gif') WHERE id = ".$id;	
mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
if($res)
{
   $_SESSION['etatvehicule']=$_SESSION['etatvehicule']+'./images/go.gif';
}
header("Location: gestion.php");
}
mysql_close();
?> 
résultat= néant, que ce soit dans la base ou sur la page, rien ne change....

par Invité » 08 juin 2006, 11:55

D'accord, merci je testerai celà ce soir 8)

par Invité » 08 juin 2006, 07:41

La fonction CONCAT comme son nom l'indique fait une concaténation de chaînes. Ta requête ressemblerait alors à ceci :
$sql = "UPDATE membres ".
       "SET etatvehicule = CONCAT(etatvehicule, './images/go.gif') ".
       "WHERE id = ". $id .";";

par YVES » 08 juin 2006, 00:19

Bon, j'ai rajouté le "$" oublié à la requète d'update et ai laissé le reste (les "+") qui foutent un "0" dans la base au lieu de changer l'image....

En fait, j'aimerais que cette requète mette l'image "go.0gif" en base et s'affiche ensuite (via la session déclarée plus bas)....
$sql = "UPDATE membres SET etatvehicule=etatvehicule+'./images/go.gif' WHERE id = ".$id;  
mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
if($res)
{
   $_SESSION['etatvehicule']=$_SESSION['etatvehicule']+'./images/go.gif';
}
header("Location: gestion.php");
}
mysql_close();
?> 
je n'ai pa sencore testé avec "CONCAT" car je ne connais pas cette commande :( [/php]

par Truc » 05 juin 2006, 11:54

Pour la requête sql, le + sert bien à la concatenation (il reprend la valeur du champ en base qu'il complete)
Hum... oui c'est ça quand on fait bien les choses on ne connait pas cette tournure. :)

un CONCAT() est bien mieux (suivant le sens de la requête).

par Ryle » 05 juin 2006, 10:34

Objection votre honneur ! :)

Pour la requête sql, le + sert bien à la concatenation (il reprend la valeur du champ en base qu'il complete), en revanche il manque un $ à $id :)

Pour la session en revanche, c'est bien un soucis de concatenation php :)

par Truc » 04 juin 2006, 23:52

Salut,

2 erreur d'inattention
$sql = "UPDATE membres SET etatvehicule=etatvehicule+'./images/go.gif' WHERE id = ".id;
Même erreur ici:
$_SESSION['etatvehicule']+'./images/go.gif'
Le "+" sert pour les addition or je ne pense pas que tu veuilles additionner ces deux valeurs.
Que voulais tu faire ?

par Cyrano » 04 juin 2006, 23:51

La concaténation avec un "+", c'est du JavaScript, en PHP, on utilise le point ".", ceci explique peut-être celà.