Exporter formulaire SWF vers BD MySql par script PHP

 

On se propose de montrer comment enregister les données recueillies depuis un formulaire SWF vers une base de données MySQL au moyen d'un script PHP.

La création du formulaire a été décrite précédemment ⇒ Revoir.
J'indiquerai seulement les adaptations à effectuer.

Création des Objets

Vous devrez réaliser quelquechose comme çà :

1 - Définissez les dimensions générales 640x280 ainsi que la couleur du fond #000066. Prenez un Frame Rate quelconque.

2 - C'est quasiment la même chose que pour l'exemple cité plus haut. Le tout en images !

   

   

Scripts SwishMax

Dans Outline, sélectionnez la scéne, passez en Mode Expert. Entrez le script suivant :

function reset()
{ adversaire = ""; date1= ""; style = ""; scores = ""; }
onFrame (20,afterPlacedObjectEvents) { stop(); }

Dans Outline, sélectionnez le bouton Reset. Entrez le script suivant :

on(press)
{
   _root.reset();
   gotoSceneandPlay("<current scene>",1);
}

Dans Outline, sélectionnez le bouton Envoyer. Entrez le script suivant :

on(press)
{ // les variables x...... sont récupérées par PHP
   xadversaire = adversaire;
   xdate = date1;
   xstyle = style;
   xscores = scores;
    // la page est matchs.php
   _root.loadVariablesNum("matchs.php",0,'POST');
   gotoSceneandPlay("<current scene>",1);
}

Scripts PHP

Avec votre éditeur de texte favori, entrez :

<?
// xadversaire, xdate, xstyle, xscores viennent du SWF
$data = array();
$data[0] = $_POST['xadversaire'] ;
$data[1] = $_POST['xdate'] ;
$data[2] = $_POST['xstyle'] ;
$data[3] = $_POST['xscores'] ;
// si tous les champs sont remplis, on continue
$checksum = 0;
for ($i=0; $i<4; $i++)
   if ($data[$i] != "")
   { // enlève les balises html et se protège des car spéciaux
      $data[$i] = AddSlashes(strip_tags($data[$i]));
      $checksum++;
   }
if ( $checksum == 4 )
{    // connexion à la BD
   $hostname = "aaaaaaaaaaaaa" ; // Nom du serveur mysql
   $mysqluser = "bbbbbbbbbbbbb" ; // login
   $mysqlpswd = "ccccccccccc" ; // password
   $database = "dddddddddddd" ; // Nom de la base de données
   $diemessage="Connection refusée" ; // Message d'erreur
   @mysql_connect($hostname, $mysqluser, $mysqlpswd) OR $diemessage;
   @mysql_selectdb($database) OR $diemessage;
   // on crée la table nommée resultats
   $sql = "CREATE TABLE IF NOT EXISTS `resultats` (
   `idresultat` bigint(20) unsigned NOT NULL auto_increment,
   `adversaire` char(80) NOT NULL default '',
   `date` char(20) NOT NULL default '',
   `style` char(80) NOT NULL default '',
   `scores` char(80) NOT NULL default '',
   PRIMARY KEY (`idresultat`)
   ) TYPE=MyISAM COMMENT='table de résultats' AUTO_INCREMENT=1 ;";
   // crée la table si elle n'existe pas
   mysql_query( $sql ) ;
   // insère l'enregistrement
   mysql_query ( "INSERT INTO resultats (adversaire, date, style, scores) VALUES ('$data[0]', '$data[1]', '$data[2]', '$data[3]')" ) ;
   echo '<SCRIPT language="JAVASCRIPT">alert("Table resultats : Création effectuée");</SCRIPT>';
} // fin if checksum
else echo '<SCRIPT language="JAVASCRIPT">alert("Veuillez remplir tous les champs");</SCRIPT>';
?>

Sauvez ce fichier sous le nom matchs.php

( même nom que dans le script SwishMax )
Il n'est pas certain que les messages s'affichent à cause de l'appel depuis le SWF.
( A voir et à améliorer )

Et maintenant, l'affichage des enregistrements dans la table resultats.
C'est sommaire mais çà marche. Modifiez les styles et la présentation.

Avec votre éditeur de texte favori, entrez :

<?
function affiche_resultats()
{
   //---------- connexion à la BD ---------------------------
   $hostname = "aaaaaaaaaaa" ; // Nom du serveur mysql
   $mysqluser = "bbbbbbbbbb" ; // login
   $mysqlpswd = "ccccccccc" ; // password
   $database = "dddddddddd" ; // Nom de la base de données
   $diemessage = "Connection refusée" ; // Message d'erreur
   @mysql_connect($hostname, $mysqluser, $mysqlpswd) OR $diemessage;
   @mysql_selectdb($database) OR $diemessage;
   //--------- lance les requêtes pour tout récupérer ------------
   $req = "SELECT * FROM resultats";
   $result = mysql_query($req);
   $total = mysql_num_rows($result);
   for ($j=0; $j < $total; $j++)
   {
       $row = mysql_fetch_array( $result ); // récupère un enregistrement complet
       echo "<TR><TD>".stripslashes($row['adversaire'])."</TD>
      <TD>".stripslashes($row['date'])."</TD>
      <TD>".stripslashes($row['style'])."</TD>
      <TD>".stripslashes($row['scores'])."</TD></TR>\n";
   }
}
?>
<html> <head> </head>
<body>
<TABLE border="2">
<TR><TD>Adversaire</TD><TD>Date</TD><TD>Style</TD><TD>Scores</TD></TR>
<? affiche_resultats(); ?>
</TABLE>
</body> </html>

Sauvez ce fichier sous le nom affiche.php par exemple. Voilà, c'est basique mais çà fonctionne.

 


Si vous aimez le site

 

Select a language if you need :


Page chargée en 0.004 sec.

Dernière Modification : Mer 25 Janvier 2017 8:56
Copyright © 1999-2017 Jean-Paul Molina Tous droits réservés.

vers Google