Pb de mise a jour

cs_anonymous38 Messages postés 12 Date d'inscription jeudi 10 novembre 2005 Statut Membre Dernière intervention 28 novembre 2005 - 21 nov. 2005 à 15:56
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 - 22 nov. 2005 à 12:40
Salut,



Pouvez-vous me donner un ptit coup de pouce ?

J'insère des données dans une table mais je veux que lorsque le "id" de la table a déja des données, qu'il soit mit à jour.

Voici le code :


<?php

include("config.php");

include("fonctionbd.php");

$mabase=new bd(USER,PASS,BASE);

$mabase->connexion();

$req = "SELECT * FROM applique";

$j=0;

if ($j==0) {

$req = "INSERT INTO applique (id, prix, descriptif, dimension, gamme,
ref, ambiance, quantite) VALUES ('$id', '$prix', '$descriptif',
'$dimension', '$gamme', '$ref', '$ambiance', '$quantite')" ;}

else {

$req = "UPDATE applique SET prix='$prix', descriptif='$descriptif',
dimension='$dimension', gamme='$gamme', ref='$ref',
ambiance='$ambiance', quantite='$quantite' WHERE id='1' AND prix='' AND
descriptif='' AND dimension='' AND gamme='' AND ref='' AND ambiance=''
AND quantite='' LIMIT 1";}

$result = mysql_query($req);

echo "insertion ajouté";

?>

Merci

19 réponses

FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
21 nov. 2005 à 16:35
Voir mysql_fetch_row() - mysql_fetch_array() - COUNT(*)
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
21 nov. 2005 à 16:36
Hello;

ahem, tu affectes 0 à $j, et la ligne suivante, tu testes si $j == ou non. Forcément, il sera tjrs égal à 0...tu viens de lui affecter 0!
0
cs_anonymous38 Messages postés 12 Date d'inscription jeudi 10 novembre 2005 Statut Membre Dernière intervention 28 novembre 2005
21 nov. 2005 à 17:13
G mi une condition, si $j different de 0 on UPDATE, le pb C ke l'UPDATE ne fonctionne pas, mais l'INSERT fonctionne !
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
21 nov. 2005 à 17:27
$j sera toujours égal à 0, puisque tu lui affectes 0 juste avant ta condition!



Ensuite comme te le dit FhX...tu dois faire une condition l'existence de ton id, donc vérfier si il existe ou non.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_anonymous38 Messages postés 12 Date d'inscription jeudi 10 novembre 2005 Statut Membre Dernière intervention 28 novembre 2005
21 nov. 2005 à 17:41
malalam chui perdu...... tu pourrais stp m'envoyer le code permettant de verifier si le id existe ???? merci d'avance
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
21 nov. 2005 à 17:49
Nan, vas regarder les fonctions que t'as donné FhX, dans une doc (www.php.net par exemple).



Ensuite, si t'es un pc, et que je te dis :

1 je m'appelle Johan

2 si je m'appelle Johan alors fais "Coucou Johan"

3 sinon fais "Coucou mr"



Tu vas faire quoi, tout le temps...?



Pour php c'est pareil. Si tu lui dis :

$a = 0;

if ($a == 0)

echo '0';

else

echo 'autre';



Il affichera toujours : 0.

C'est logique...non?
0
cs_anonymous38 Messages postés 12 Date d'inscription jeudi 10 novembre 2005 Statut Membre Dernière intervention 28 novembre 2005
21 nov. 2005 à 17:56
voila
le code modifier au niveau de l'UPDATE mais ça fonctionne tjs pas,
comment faire la condition au niveau du "id", jve dire par la ke si le
id n'existe pas j'insere les données et s'il existe déja on fait un
UPDATE.

<?php

include("config.php");

include("fonctionbd.php");

$mabase=new bd(USER,PASS,BASE);

$mabase->connexion();

$req = "SELECT * FROM applique";

$j=0;

if ($j==0) {

$req = "INSERT INTO applique (id, prix, descriptif, dimension, gamme,
ref, ambiance, quantite) VALUES ('$id', '$prix', '$descriptif',
'$dimension', '$gamme', '$ref', '$ambiance', '$quantite')" ;}

else {

$req = "UPDATE applique SET prix='$prix', descriptif='$descriptif',
dimension='$dimension', gamme='$gamme', ref='$ref',
ambiance='$ambiance', quantite='$quantite' WHERE id='$id'";}

$result = mysql_query($req);

echo "insertion ajouté";

?>



Merci
0
cs_anonymous38 Messages postés 12 Date d'inscription jeudi 10 novembre 2005 Statut Membre Dernière intervention 28 novembre 2005
21 nov. 2005 à 17:59
G bi1 compris malalam cke tu ve dire, mais moi j'aimerais ke tu me dise komen jpe incrémenT a chaque insertion ? merci
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
21 nov. 2005 à 18:01
Le bvut, dans l'ordre :

- chercher si l'id choisi existe dans ta table...(apparemment).

- s'il existe, on met à jour

- sinon, on insère.



Où vas tu vérifier l'id là? Et d'où vient un quelconque id, d'ailleurs?
0
cs_anonymous38 Messages postés 12 Date d'inscription jeudi 10 novembre 2005 Statut Membre Dernière intervention 28 novembre 2005
21 nov. 2005 à 18:05
Le but, dans l'ordre :

- chercher si l'id choisi existe dans ta table.

- s'il existe, on met à jour

- sinon, on insère.



C ça !!!!



En fait il pe y avoir une insertion de 2 id identique, ds le cas ou 2
id st identique jvE mettre à jour les données rattaché a cette id. Si
l'id n'existe pas si non on insère
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
21 nov. 2005 à 18:09
Ben oui...ben vas-y ? Tu as toutes les données en main, y compris les fonctions à utiliser !
0
cs_anonymous38 Messages postés 12 Date d'inscription jeudi 10 novembre 2005 Statut Membre Dernière intervention 28 novembre 2005
21 nov. 2005 à 18:11
moi jvoudré C ke tu me
dise kL code jdoi tapper pr K chaque fois ke j'insère il m'incrémente
de 1, kom ça mon code fonctionnera peut-être tel kil est écrit...
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
21 nov. 2005 à 18:19
Non!

D'abord, ça ne fonctionnera pas, ça n'est pas comme ça qu'on procède.
Ensuite, tu écris en SMS et je n'aime pas ça... ;-) Et enfin, tu ne
progresseras pas si on te mâche tout le travail.
0
cs_anonymous38 Messages postés 12 Date d'inscription jeudi 10 novembre 2005 Statut Membre Dernière intervention 28 novembre 2005
21 nov. 2005 à 18:38
Nan mé C pa grave malalam, tu pE pas tt savoir nan plus, jten vE pa, t'as encore une bonne marge de progression oci...
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
21 nov. 2005 à 20:07
Lol, Malalam connait aussi bien la réponse que moi à la question que tu viens de poser.

Regarde, tu veux savoir pourquoi ton update ne marche pas ?
Change ta query en quelque chose comme ca :
$result = mysql_query($req) or die ( mysql_error() );
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
22 nov. 2005 à 08:54
Lol, si c'était une tentative pour me vexer et que je donne une
réponse, c'est raté...je ne me sens pas l'obligation de te prouver quoi
que ce soit, cher anonyme numéro 38.

Simplement, quand je vois un script comme celui que tu nous as montré,
je vois un vrai débutant (et pas un débutant qui code depuis 1 an mais
qui n'a guère avancé...y en a plein). Et je me dis : chouette, une
occasion de vraiment le faire avancer, il n'a pas encore pris de
mauvaises habitudes. Donc, il me semble que le mieux n'est pas de te
donner la réponse toute faite, mais de te forcer à réflêchir.

FhX t'as donné de très bonnes indications. Je t'ai expliqué pourquoi ta
condition renverrait toujours 0. FhX te donne un nouveau truc :
détecter et afficher les erreurs, très pratique pour débugger. Si tu
veux un truc de plus : www.php.net, et tu cherches les fonctions que
t'a donné FhX.

Pour le COUNT(*), c'est une clause sql; le site de référence pour mysql :

http://dev.mysql.com/doc/refman/5.0/fr/



Ponds nous un code avec tout ça...après on verra.
0
cs_anonymous38 Messages postés 12 Date d'inscription jeudi 10 novembre 2005 Statut Membre Dernière intervention 28 novembre 2005
22 nov. 2005 à 09:09
Bon malalam t'es bien sympa avec t'es remarque impertinente, mais ce qui est dommage c'est que tu n'as pas le niveau...
car lorsqu'il sagit de
donner le code à quelqu'un sur comment génerer un chiffre de 1 à 16 là
il y a aucun problème pour toi (c'est tellement simple), mais
pour des problèmes comme les miens tu donnes pas la réponse car tu es
incapable de résoudre le problème tout simplement, mais heureusement
que tout le monde n'est pas comme toi... Sinon j'ai un pote qui a réusi a me deboguer, lui au moins il a du mérite, c'est un boss à l'inverse de toi. Merci à toi FhX, bien que tu n'as pas résolus le problème tu m'as apporté ton aide.



Tchao
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
22 nov. 2005 à 09:43
Lol, intéressant. Comme tu veux. Continue à faire régler tes problèmes par les autres au lieu d'essayer de progresser. Perso, je le répête, je n'ai rien à prouver, et surtout pas à toi ;-)
Ps : l'impertinence de mes réponses, je la cherche encore, mais on ne doit pas avoir le même vocabulaire. Par contre, il faut reconnaître que tes réponses sont largement criticables : depuis quand fait-on preuve d'agressivité stupide envers quelqu'un qui ne l'a pas été envers soi ?

Bonne journée.
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
22 nov. 2005 à 12:40
Aller, juste pour finir :

"WHERE id='1' AND prix='' AND descriptif='' AND dimension='' AND gamme='' AND ref='' AND ambiance='' AND quantite='' LIMIT 1";}"

Ca sert à rien tout ca :)

Enfin si, juste le Where id=1... mais le reste y'a pas besoin !
0
Rejoignez-nous