begin process at 2013 05 19 05:48:19
  Trouver un code source :
 
dans
 
Accueil > 

Tutoriels

 > 

Base de données

 > AS2 ET PHP

AS2 ET PHP


 Information sur le tutoriel

Note :
Aucune note

 Description

ce cour nous montre comment faire la liaison entre un formulaire flash et une base de donnée(AJOUTER UN ------ENREGISTREMENT DANS UNE BD VIA UN FORMULAIRE
--VISUALISER UN ENREGISTREMENT D'UNE TABLE D'UNE BD
--VISUALISER UNE TABLE D'UNE BD
a vrais dire ce cour je l'ais trouver quel que par sur un site, mais je le trouve très intéressons et

Tutorial

Prémisses





La table des tests





Script de création


CREATE DATABASE cours DEFAULT CHARACTER SET latin1 COLLATE latin1_general_ci;

USE DATABASE cours;


DROP TABLE IF EXISTS villes;


CREATE TABLE IF NOT EXISTS villes (

cp varchar(5) collate latin1_general_ci NOT NULL,

nom_ville varchar(50) collate latin1_general_ci NOT NULL,

PRIMARY KEY (cp)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;


INSERT INTO villes (cp, nom_ville) VALUES ('06000', 'Nice'),

('59000', ''),

('69000', 'Lyon'),

('75011', 'Paris'),

('75012', 'Paris'),

('75021', 'Paris 21'),

('75022', 'Paris 22');



Ajouter un enregistrement dans une BD via un formulaire


Objectif


Insérer une nouvelle ville dans la table Villes de la base Cours.

Utiliser LoadVars et send().



Le script PHP


<?php

    $cp = $_REQUEST["cp"];

    $nom_ville = $_REQUEST["nom_ville"];

    $lien = mysql_connect("localhost","root","");

    mysql_select_db("cours",$lien);

    $ls_insert = "INSERT INTO villes(cp, nom_ville) VALUES('$cp','$nom_ville')";

    mysql_query($ls_insert, $lien);

    if(mysql_errno($lien) == 0) echo "Insertion réussie"; else echo mysql_error($lien);

?>



Syntaxes


Création d'un objet pour les attributs de la requête.


var envoi = new LoadVars();


Création d'un attribut et affectation d'une valeur.


envoi.nom_attribut = valeur;


Exécution de la requête d'envoi de valeurs avec la méthode send().

La méthode send() permet d'envoyer des valeurs.


envoi.send("url", "cible" [, "méthode"]);


L'url est composée du protocole, de l'adresse du serveur, du chemin et du document PHP.

Par exemple : http://localhost/flash_php/villes_ajout.php.


La cible prend les valeurs suivantes : "_self", "_blank", "_parent", "_top".


Les méthodes sont POST ou GET. La méthode POST est la méthode par défaut.



Démarche


Créez un nouveau .fla.

Ajouter des éléments de formulaire (Ctrl/F7).


, ,


Nommez les TextInput tb_cp et tb_nom_ville,

codez.


Code


on(click)

{

    var attributs = new LoadVars();

    

    attributs.cp = _root.tb_cp.text;

    attributs.nom_ville = _root.tb_nom_ville.text;


    attributs.send("http://localhost/flash_php/villes_ajout.php", "_self", "POST");

}


Commentaires


Cette méthode affiche un page HTML suite à l'insertion. Cf les paragraphes suivants avec les résultats dans la scène.



Visualiser un enregistrement d'une table d'une BD


Objectif


Créer une interface permettant de saisir un CP et à partir de celui-ci afficher le nom de la ville correspondante.

Utiliser LoadVars et sendAndLoad().



Le code PHP


<?php

    $cp = $_REQUEST["cp"];

    $lien = mysql_connect("localhost","root","");

    mysql_select_db("cours",$lien);

    $ls_sql = "SELECT nom_ville FROM villes WHERE cp = $cp";

    $rs = mysql_query($ls_sql, $lien);

    if(mysql_errno($lien) != 0) die(mysql_error($lien));

    $enr = mysql_fetch_array($rs);

    echo "nom_ville=" . $enr[0];

?>


Le code PHP doit renvoyer une URL type attribut=valeur.


En test direct dans le navigateur le résultat est :


URL testée

Résultat

http://localhost/flash_php/ville_visu.php?cp=59000

nom_ville=Lille

http://localhost/flash_php/ville_visu.php?cp=75011

nom_ville=Paris



Syntaxes


Création d'objets pour les attributs de la requête aussi bien en envoi qu'en réception.


var envoi = new LoadVars();

var resultats = new LoadVars();


Création d'un attribut et affectation d'une valeur.


envoi.nom_attribut = valeur; ou resultats.nom_attribut = valeur;


Exécution de la requête d'envoi et de récupération de valeurs avec la méthode sendAndLoad().

La méthode sendAndLoad() permet d'envoyer des valeurs et aussi d'en recevoir.


envoi.sendAndLoad("url", resultats, "méthode");


Récupération des résultats.

Il faut que PHP renvoie une URL type attribut=valeur.

La récupération finale est réalisée via une fonction anonyme.


resultat.onLoad = function(success)


A partir du moment où l'on utilise la méthode sendAndLoad() il faut créer une fonction anonyme de callback car il faut temporiser la réception des données du serveur. C'est seulement quand le serveur a renvoyé les données que l'on peut commencer à traiter les résultats. D'où l'utilisation de l'événement onLoad.



Démarche


Créez un nouveau .fla.

Ajoutez un Label, un InputText, un Button, un TextField.


Code


on(click)

{

    var attributs = new LoadVars();

    var resultats = new LoadVars();

    

    attributs.cp = _root.tb_cp.text;


    attributs.sendAndLoad("http://localhost/flash_php/ville_visu.php", resultats, "GET");

    

    resultats.onLoad = function(succes)

    {

        if(succes) _root.tf_nom_ville.text = "Ville : " + resultats.nom_ville;

        else _root.tf_nom_ville.text = "Echec";

    }

}


A la place de this il est possible d'utiliser la variable resultats.



Visualiser une table d'une BD


Objectif


Visualiser les enregistrements de la table Villes de la base Cours.



Le code PHP


<?php

    $lien = mysql_connect("localhost","root","");

    mysql_select_db("cours",$lien);

    $ls_sql = "SELECT cp, nom_ville FROM villes";

    $rs = mysql_query($ls_sql, $lien);

    if(mysql_errno($lien) != 0) die(mysql_error($lien));

    $sCps = "cps=";

    $sVilles = "&noms_villes=";

    while($enr = mysql_fetch_row($rs))

    {

        $sCps .= $enr[0] . ";";

        $sVilles .= $enr[1] . ";";

    }

    echo $sCps . $sVilles;

?>


Le résultat renvoyé est celui-ci :

cps=06000;59000;69000;75011;75012;75021;&noms_villes=Nice;Lille;Lyon;Paris;Paris;Paris 21;


donc la requête renvoie deux attributs cps et noms_villes.


Syntaxe


var tableau = chaîne.split("séparateur");


Démarche


Créez un nouveau .fla.

Ajoutez un TextArea nommé ta_villes.

Codez le scénario.


Note : il serait possible de mettre un TextField multiline à la place du TextArea mais il faudrait gérer le défilement vertical avec une barre de défilement ce qui est fait automatiquement avec le TextArea.


Code


var attributs = new LoadVars();

var resultats = new LoadVars();


_root.ta_villes.text = "";


resultats.onLoad = function(success)

{

    if(success)

    {

        var sCps = resultats.cps;

        var sNoms_Villes = resultats.noms_villes;


        var tCps = sCps.split(";");

        var tNoms_Villes = sNoms_Villes.split(";");

        for(i=0; i<tCps.length - 1; i++)

        {

            _root.ta_villes.text += tCps[i] + "-" + tNoms_Villes[i] + "\n";

        }

    }

    else _root.ta_villes.text = "Echec";

}

attributs.sendAndLoad("http://localhost/flash_php/villes_visu.php", resultats, "GET");





Commentaires


Malgré l'abscence d'attributs à envoyer, à la différence des deux précédents scripts, il faut quand même déclarer une variable d'envoi de type LoadVars().

Une erreur survient si l'URL de la requête est erronée ou si le serveur est indiponible mais si une erreur SQL survient aucun affichage. Il faut dans ce cas gérer l'erreur au niveau du PHP.

Cf paragraphe suivant.


Commentaires

Commentaire de trek9505 le 26/02/2011 23:15:07

Bonjour,

Comment est ce que je peux faire pour récupérer seulement un élément dans ma table sans avoir a cliqué sur un bouton je voudrais que mon texte ce charge directement .

Merci

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2013
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,218 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales