manipulation dans champs

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 : manipulation dans champs

par YVES » 23 janv. 2006, 22:42

Truc, tu es THE Champion, encore merci !

Je vais bientot poster sur les bases de données car je suis en train de m'embringuer dans 1 truc trop lourd à gérer (les objets et stocks) va falloir que je travaille avec plusieurs tables :idea:

par Truc » 23 janv. 2006, 00:18

C'est pas les apostrophes qui foutent le boxon, par hasard?
:lol: :lol: Si si
$sql = "UPDATE membres SET objet1 = stock_1, stock_1 = ''  WHERE id = ".$id;
ou encore
$sql = "UPDATE membres SET objet1 = stock_1, stock_1 = ""  WHERE id = ".$id;
puisque la chaine commence par des "

par YVES » 23 janv. 2006, 00:13

Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/zzzz/public_html/util.php on line 16 :?

C'est pas les apostrophes qui foutent le boxon, par hasard?

par Truc » 22 janv. 2006, 23:53

tu dis Vider et non DELETER (effacer) or c'est ce que tu essaie de faire:

pour vider le champ suffit de le remplir par du vide :wink:
$sql = "UPDATE membres SET objet1 = stock_1, stock_1 = ""  WHERE id = ".$id;
l'inverse, supprimer le champ, n'aurait aucun sens :shock:

par YVES » 22 janv. 2006, 23:45

Bon ca a l'air de fonctionner mais il reste un dernier soucis, comment vider le champ stock_1, j'ai bien dit vider et non deleter, d'ailleurs voici l'ultime pb:

$sql = "DELETE stock_1 FROM membres WHERE id=".$id;

Erreur SQL DELETE stock_1 FROM membres WHERE id=1
Not unique table/alias: 'stock_1'

par Truc » 22 janv. 2006, 23:31

enfaite le problème vient de l'id... qui n'est pas une variable, marque le $
$sql = "UPDATE membres SET objet1 = stock_1  WHERE id = ".$id; 
en passant doù sort cette variable d'id ? il n'y a pas de code de récupération

par YVES » 22 janv. 2006, 23:29

[quote="
$sql = "UPDATE membres SET objet1 = 'valeur par défaut'  WHERE id = ".id;
"[/quote]

en fait ça fonctionne QUE si je mets en dur la 'valeur par défaut' mais le script normalement n'est pas censé savoir tout seul ce que le membre aura choisi de mettre dans le champ "stock_1"............ surtout sachant que cela peut changer régulièrement.
(par exemple le gars achete ou trouve du café, café va se mettre dans le champ stock_1 par défaut. ensuite, admettons qu'il veuille utiliser le café, il faut que "café" vire de stock_1 pour aller dans le champ objet1 et que stock_1 demeure en tant que champ, mais vide.) :roll:

par YVES » 22 janv. 2006, 23:18

et la page reste toujours blanche :o, la valeur par défaut dans stock_1 ne va pas dans le champ objet1. :?

par YVES » 22 janv. 2006, 23:13

oui , stock_1 et objet1 sont deux champs distincts dans la table.
la valeur par défaut doit changer selon les actions du membre sur le site :shock: c'est pour cela que je ne la code pas en dur.

les deux champs ont comme type "NOT NULL" .

par Truc » 22 janv. 2006, 22:55

ok, j'étais a coté de la plaque... "objet1" et "stock_1" sont 2 champs de la meme table ? est-ce bien ça ?

tu dis que stock_1 a une valeur par défaut que tu veux mettre dans objet1, pourquoi ne pas faire une requete avec une valeur en dur qui correspond a la valeur par défaut (qui sera toujours la meme en principe = valeur par défaut):
$sql = "UPDATE membres SET objet1 = 'valeur par défaut'  WHERE id = ".id;
sinon ta requete du début devri fonctionner:
$sql = "UPDATE membres SET objet1 = stock_1  WHERE id = ".id;
si la valeur par défaut de stock_1 n'est pas "null" et que le champ objet1 a comme propriété "not null"

par YVES » 22 janv. 2006, 22:49

Oui, j'avais aussi testé avec les quotes mais ca ne fait rien, meme pas de message erreur, la page reste blanche :x

$sql = "UPDATE membres SET objet1 = 'stock_1' WHERE id = ".id;

les 2 champs ont comme type VARCHAR et stock_1 a une valeur par défaut....

par Truc » 22 janv. 2006, 22:27

stock_1 est une valeur donc une chaine de caratères !

Dans ta requete elle est considéré comme un champ donc erreur.
Suffit d'y ajouter des '
$sql = "UPDATE membres SET objet1 = 'stock_1'  WHERE id = ".id; 

manipulation dans champs

par YVES » 22 janv. 2006, 22:15

Bonsoir,

Je n'arrive pas à trouver la syntaxe exacte pour remplacer la valeur d'1 champ par une autre....
<?php
session_start() ;
?>
<?php
$db= mysql_connect(localhost, zzzz, zzzz) or die("Impossible de se connecter à la base de données"); 	   
 mysql_select_db('zzzz',$db)  or die('Erreur de selection base'.mysql_error());
$sql = "UPDATE membres SET objet1 = stock_1  WHERE id = ".id;
$res=mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
header("Location: page_membre.php");
mysql_close();
}
?> 
En fait, je voudrais mettre la valeur par défaut qui est dans "stock_1" dans le champs "objet1" (qui lui, est vide....)