Page 1 sur 1

Update par rapport a un fichier ?

Posté : 05 déc. 2006, 18:31
par Brice83
bonjour,

J'ai un script qui prend au hasard un fichier .swf ! Le fichier .swf se nomme par exemple "10.swf" !

Si je tombe dessus,je voudrait qu'il soit créditer de "10" sur mon compte avec un update !

Je sait que c'est possible car je l'ai déja fait mais cela remonte a 2 ans et demi et depuis j'ai tout oublier :cry:

Donc par exemple, j'ai un fichier .txt et à l'intérieur de celui ci,j'ai écrit :

1.swf
2.swf
2.swf

le 2.swf sortira donc 2 fois plus que le 1 ! Mon script php choisi au hasard et l'affiche avec le code d'affichage des fichiers flash ! Et en fonction du fichier choisi,un update sur le compte du membre est effectuer !

Voilà,pouvez vous m'aider ?

Merci !

Posté : 05 déc. 2006, 18:54
par Brice83
Voici par exemple le script qui choisi l'aléatoire :
<? 
$cpt=0; 
$fpc = fopen("fichier.txt","r"); 

while (!feof($fpc)) 
{ 
$enrc = fgets ($fpc,4096); 
$tabc[]=$enrc; 
$cpt++; 
} 
srand((double)microtime()*1000000); 
$nbrc=rand(0,($cpt-1));  
?> 
Et le fichier choisi est afficher comme ca :
<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>
Maintenant,il faudrait que j'update en fonction du fichier choisi avec par exemple :
$mysql="UPDATE membres SET fichier= fichier.txt WHERE id='$id'";
c'est une chose dans le genre !

Posté : 05 déc. 2006, 19:38
par Ajoloca
Bonsoir,

Perso je ferais de la manière suivante.

Une fois que j'ai le nom du fichier complet '$tabc[$nbrc]' je récupère la partie devant le point qui me donnera le chiffre.

Avec ce chiffre je construis ma requête 'UPDATE'.
Exp:
$pointsTmp = explode('.', $tabc[$nbrc]);
$pointsToAdd = $pointsTmp[0];
$qryUpdatePoints = "UPDATE membres SET points = points + " .  $pointsToAdd . " WHERE id='" . $id . "'";

Posté : 05 déc. 2006, 19:57
par Brice83
Je vient de tenter cela mais aucun update ne s'effectue :
<?php 
$base = mysql_connect ("serveursql", "login","unpasse");  
mysql_select_db ("nomdelabase", $base) ; 
$pointsTmp = explode('.', $tabc[$nbrc]); 
$pointsToAdd = $pointsTmp[0]; 
$qryUpdatePoints = "UPDATE membres SET points = points + " .  $pointsToAdd . " WHERE id='" . $id . "'"; 
mysql_close (); 
?>
Dans mon ftp,j'ai le fichier 10.swf et dans le fichier .txt,j'ecrit tout simplement 10 !

Comment puis-je faire ?

Merci beaucoup

Posté : 05 déc. 2006, 20:02
par Ajoloca
Re,

Qu'on se comprainne bien avant.
Quel est le contenu exact de $tabc[$nbrc] ? (fais un 'echo' pour le voir)
Il ne faut pas que tu oublies de modifier dans la requête le mot 'points' par le nom du champ de ta table.

Posté : 05 déc. 2006, 20:08
par Brice83
Le contenu de $tabc[$nbrc] m'affiche le fichier flash avec :
<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 j'ai aussi modifier le mot points par le champ de ma table

Posté : 05 déc. 2006, 20:11
par Ajoloca
Re,

Je te demande de donner son contenu exact car si ton fichier s'appelle a.10.swf mon script ne marcheras pas.

Fais afficher la requête avant exécution et poste les deux résultats.

Posté : 05 déc. 2006, 20:17
par Brice83
j'ai donc fait un echo et mon fichier en .swf est apparu et a coté,c'est écrit " 10.swf" !

Voilà :wink:

Posté : 05 déc. 2006, 20:23
par Ajoloca
Re,

Et la requête, elle est où?

Posté : 05 déc. 2006, 23:25
par Brice83
ben,en premier,il y a le code php qui choisi le fichier aléatoire. Ensuite,il y a le code pour les fichier flash et enfin,pour finir,je met le code pour l'update.....

C'est pas comme ca que je doit faire ?

Posté : 06 déc. 2006, 08:49
par Ajoloca
Bonjour,

Je ne demande qu'à t'aider mais il faut que tu y mettes du tien.
Si je te demande d'afficher la requête, c'est pas pour t'embeter, mais pour voir exactement ce que l'on envoie à la base.

Si tu ne sais pas comment faire, demande (n'oublie pas qu'il n'y-a pas de question bete, seuls les b.... ne posent pas de questions). On te le dira avec plaisir mais ne réponds pas à coté car en tourne en rond.

On va procéder par étapes.
1 - Récupérer la donnée dans le fichier
2 - Construire la requête
3 - Afficher la requête

Une fois cette partie validée
4 - Exécution de la requête
5 - Adaptation à ta page (intégration dans Flash)

Etape 1
<?php // Ne jamais utiliser les short_open_tags (<?)
// Initialisation du compteur de lignes
$cpt=0;
// Ouverture du fichier
$fileName = 'fichier.txt';
if(false == ($fpc = fopen($fileName,"r")){
   die('<h3>Ouverture du fichier "' . $fileName . '" impossible!</h3>');
}
// Lecture du contenu du fichier
while (!feof($fpc)) {
   $enrc = fgets ($fpc,4096);
   // Mise en mémoire du contenu de la ligne lue
   $tabc[]=$enrc;
   // Incrémentation du compteur du nombre de lignes 
   $cpt++; 
}
// Fermeture du fichier
fclose($fpc);
// Recherche d'un nombre entre 0 et le nombre de lignes dans le fichier
srand((double)microtime()*1000000); 
$nbrc=rand(0,($cpt-1));
// Récupération du nom du fichier
$file = $tabc[$nbrc];
// Destruction du tableau (Libération de la mémoire)
unset($tabc);
// Affichage du résultat obtenu
echo '<h3>Contenu de  $file : #' . $file . '#</h3>';
?>
Tu vas exécuter ce script tout seul (sans l'intégrer dans ta page) et poster le résultat.
En fonction du résultat on va construire le reste.

Posté : 06 déc. 2006, 16:10
par Brice83
Merci de ton aide !

Y'a une petite erreur que je ne trouve pas :
Parse error: syntax error, unexpected '{' in /home/.filer3/webys/www/requete.php on line 6

Posté : 06 déc. 2006, 17:52
par Ajoloca
Re,
Il manque une parenthèse fermante dans cette ligne. Prends celle-ci
if(false == ($fpc = fopen($fileName,"r"))){ 

Posté : 23 déc. 2006, 21:11
par Invité
Bonjour,

je remonte ce topic car je n'ai toujours pas de solution !

J'ai donc effectuer la requete seul et j'ai :
10.swf
Voilà,une solution ?

Merci beaucoup !