Page 1 sur 1

Probleme update !

Posté : 30 nov. 2006, 14:51
par Bingo
Bonjour,

<?php
$connect=@mysql_connect($....,$....,$....) or die(mysql_error());
$sql="UPDATE membre SET $chance='-1' WHERE id='$id' ";
mysql_query($sql) or die(mysql_error());
?>

J'ai fait ce script qui doit normalement updater la table "membre" et retirer "1" au champ "chance" mais je n'y arrive pas.... pourriez vous m'aider ?

De meme,comment puis-je faire pour que quand le nombre de chance arrive a 0 dans la base,on ne fait plus d'update mais plutot une redirection ou on affiche quelques chose ?

En faite,j'ai un script php qui prend une image dans un fichier .txt au hasard,en fonction de cette image dont les noms sont par exemple _10.swf,je voudrait que ce soit créditer sur le compte du membres dans le champ "points" je sait que c'est possible !

Help :(

Posté : 30 nov. 2006, 15:03
par fred9999
salut

alors non pas du tout


1- tu ne soustrait pas 1 a ton champ mais tu lui donne la valeur -1.
2- ton champ chance n'es pas une variable car elle est défini dans la base donc pas besoin de $
<?php 
$connect=@mysql_connect($....,$....,$....) or die(mysql_error()); 
$sql="UPDATE membre SET chance= chance-1 WHERE id='$id' "; 
mysql_query($sql) or die(mysql_error()); 
?> 

Posté : 30 nov. 2006, 15:28
par Bingo
Ok,j'ai fait comme ca mais maintenant,mes images ne s'affichent plus du tout ? Voici le code complet :

Code : Tout sélectionner

<? $cpt=0; $fpc = fopen("image.txt","r"); while (!feof($fpc)) { $enrc = fgets ($fpc,4096); $tabc[]=$enrc; $cpt++; } srand((double)microtime()*1000000); $nbrc=rand(0,($cpt-1)); ?> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="435" height="271"> <param name="movie" value="<?echo "$tabc[$nbrc]"; ?>"> <param name="quality" value="high"> <embed src="<?echo "$tabc[$nbrc]"; ?>" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="435" height="271"></embed></object> <?php $connect=@mysql_connect($....,$....,$....) or die(mysql_error()); $sql="UPDATE membre SET chance= chance-1 WHERE id='$id' "; mysql_query($sql) or die(mysql_error()); ?>
En clair,ce script prend une image aléatoirement dans le fichier .txt et l'affiche sur la page ! Puis update le champ "chance" !

le probleme est donc,que rien n'est updater et pire,que les images ne s'affiche pas et en plus,j'ai également un décalage en bas de mon site ?

Merci

Posté : 30 nov. 2006, 15:54
par Ryle
En théorie, la modification du champ chance dans ta base, n'a pas du influer sur la selection de ton image :)

As tu affiché le contenu de $tabc[$nbrc] (ou regarder dans le source) pour vérifier qu'il correspondait à ce que tu attendais ?

A noter que les guillemets autour de ta variable ne servent à rien : <?echo $tabc[$nbrc]; ?> fonctionne tout aussi bien et est plus léger (tant à l'exécution, qu'à la lecture de ton code :)

Posté : 30 nov. 2006, 17:07
par Bingo
Alors là,je comprend rien de rien.......

Je place ce code :
<?  
$connect=@mysql_connect($sql..,$nom,$passe) or die(mysql_error());  
$sql="UPDATE membre SET chance= chance-1 WHERE id='$id' ";  
mysql_query($sql) or die(mysql_error());  
?> 
juste avant :

Code : Tout sélectionner

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="435" height="271"> <param name="movie" value="<?echo "$tabc[$nbrc]"; ?>"> <param name="quality" value="high"> <embed src="<?echo "$tabc[$nbrc]"; ?>" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="435" height="271"></embed></object>
Et l'image swf ne s'affiche plus...?

J'ai essayer de placer le code php un peu partout dans la page et rien n'y fait,et si je le met après <body>,la page ne s'affiche carrément pas...???

Quelqu'un sait de quoi cela peut provenir car moi,je ne vois vraiment pas !

Merci !

Posté : 30 nov. 2006, 17:19
par Ryle
C'est probablement que ton code php provoque une erreur qui empêche le reste de la page de s'afficher correctement ... la commande die() interromp le traitement en cas d'erreur, c'est peut être de ce côté là qu'il te faut regarder.

N'as tu pas de message dans mysql_error() ? (enlève le @ devant mysql_connect())
Ne faudrait-il pas un mysql_select_db pour sélectionner ta base ? peut être est-ce ce qu'il manque pour parvenir à te connecter :)

Posté : 30 nov. 2006, 17:36
par Bingo
Je vient d'essayer ca et toujours rien :
<?   
$connect=mysql_connect($sql,$..,$...) or die(mysql_error()); 
$db selected= mysql_select_db('....');  
$sql="UPDATE membre SET chance= chance-1 WHERE id='$id' ";   
mysql_query($sql) or die(mysql_error());   
?> 
Et (mysql_error()); ne me dit absolument rien ?

Posté : 30 nov. 2006, 18:36
par Bingo
Re,

je vient encore d'essayer cela mais toujours rien...? je désespere. :cry:
<?   
$db = mysql_connect(localhost,login,passe) or die(mysql_error()); 
mysql_select_db('nombase',$db)  or die('erreur de selection '.mysql_error()); 
$sql="UPDATE membre SET chance= chance-1 WHERE id='$id' ";   
mysql_query($sql) or die(mysql_error());
mysql_close(); 
?> 

Posté : 30 nov. 2006, 18:52
par Ryle
Essayes ceci :
<?php
echo 1;   
$db = mysql_connect(localhost,login,passe) or die(mysql_error());  
echo 2;
mysql_select_db('nombase',$db)  or die('erreur de selection '.mysql_error());  
echo 3;
$sql="UPDATE membre SET chance= chance-1 WHERE id='$id' ";    
echo 4;
mysql_query($sql) or die(mysql_error()); 
echo 5;
mysql_close();  
echo 6;
?>


En fonction des chiffres qui vont apparaitre, tu sauras à partir de quel endroit commence le problème :)

Posté : 30 nov. 2006, 19:01
par Bingo
Cela m'affiche 1

donc mon probleme commencerai depuis le début ?

Mes identifiant de connexion sont pourtant correct,ca fait 5000 fois que je vérifie...!

un ptit indice :(

Posté : 30 nov. 2006, 20:14
par Bingo
C'est bon,j'ai trouvé !

En faite,mon espace membre fesait certainement interférence :?:

Donc,au lieu de refaire une connexion mysql, j'ai mi un require_once pour prendre mes infos de connexion ailleurs...!

Voilà :wink:

Posté : 30 nov. 2006, 21:18
par Bingo
Voilà ce que ca me dit :

Connexion a la base impossible....

Pourquoi ?

Posté : 30 nov. 2006, 21:26
par Ajoloca
Voilà ce que ca me dit :

Connexion a la base impossible....

Pourquoi ?
Je n'avais pas vu ton message (post simultané) disant que tu avais trouvé l'erreur, j'ai don supprimé le mien qui n'a plus de sens

Le but était de détereminer exactement le PB en s'aidant des messages d'erreur de MySQL.

Mais c'est mieux quand c'est résolu!

Posté : 30 nov. 2006, 23:58
par Truc
Modération :
Puisque ta question est résolue, j'ajoute le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.

Tu peux réaliser cette opération toi-même
en cliquant sur le bouton [Mettre Résolu] qui s'affiche en haut à gauche de ce sujet
si tu as posté le 1er message en tant que membre (inscrit et identifié). ;)