Forums Développement Multimédia

Aller au contenu

Application et basse de données

application base données air php

25 réponses à ce sujet

#1 cortoh

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 464 messages

Posté 21 February 2019 - 19:04 PM

Bonjour,

Je souhaiterais avoir quelques conseils pour la suite de mon application Android qui est pratiquement terminée, cette application contient principalement des champs texte à renseigner, nom, prénom, age, adresse, ville etc...
Pour le moment j'envois ces données depuis mon application par mail via un php, je souhaiterais maintenant passer à l'étape d'enregistrer ces données dans une base de données sur mon serveur ftp, je me pose plusieurs questions sur les potentielles faisabilités comme, un serveur ftp free peut-il suffir pour héberger une base de donnée et ce en toute sécurité, php est-il la bonne passerelle entre mon appli et la basse de données, et pour finir mon application pourrat-elle accéder et récupérer et modifier ces données ?

Merci d'avance pour vos conseils et infos.

#2 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1781 messages

Posté 22 February 2019 - 23:53 PM

PHP est une bonne solution pour une BDD, même chez Free, le FTP ça n'a rien à voir, ça sert à transférer des fichiers.

#3 cortoh

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 464 messages

Posté 23 February 2019 - 08:15 AM

Bonjour pol2095,
Donc effectivement j'ai fouiné un peu de mon appli Air(as3) je peux enregistrer ou importer via php vers une base de données, je n'ai pas trouvé de tuto en français dans ce sens si tu à un lien je suis preneur, pour la BDD je peux apparement la réaliser en utilisant "Wampserver".

#4 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1781 messages

Posté 23 February 2019 - 11:19 AM

Chaque page perso free est fourni avec une BDD MySQL qu'il faut activer dans les paramètres du compte.

#5 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1781 messages

Posté 24 February 2019 - 08:28 AM

Une fois la BDD activé, tu vas à l'adresse http://sql.free.fr (phpMyAdmin)
tu crées une table comme dans cet exemple
chez free c'est du php5 (le php7 c'est différent)
pour insérer une nouvelle ligne

$connexion_serveur=mysql_connect("sql.free.fr", "login", "mdp");
if ($connexion_serveur)
{
        //echo "Connexion serveur reussie";
}
else
{
        //echo "Connexion serveur ratée";
}
mysql_select_db("login") or die('Echec de la connexion à la base de donnée');

$sql = "INSERT INTO forum Personne (nom, prenom, age) VALUES ('".mysql_real_escape_string( $_POST['nom'] )."', '".mysql_real_escape_string( $_POST['prenom'] )."', '".mysql_real_escape_string( $_POST['age'] )."')";
$result = mysql_query($sql);
if( $result )
{
        echo "Modification effectuee";
}
else
{
        echo "Error";
}

après il existe d'autre commande pour lire la table : SELECT, mettre à jour : UPDATE...

#6 cortoh

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 464 messages

Posté 24 February 2019 - 20:49 PM

Bonsoir pol2095,

Merci pour ton aide c'est vraiment sympa, je n'ai pas eu beaucoup de temps aujourd'hui mais j'ai toutefois aquis les première bases pour créer ma première base de données en installant phpMyAdmin sur mon PC et en suivant le tuto que tu ma indiqué, toutefois ça reste quelque peut confus quand à l'utilisation de phpMyadmin sur Free car le lien http://sql.free.fr ça ne fonctionne pas, j'ai un message d'erreur "#2005 - Unknown MySQL server host 'monmail@free.fr.sql.free.fr' (1)" mon login et mdp sont parfaitement entrés et l'activation de la base de données MySQL est active depuis bien longtemps, donc j'ai bien crée une base de données depuis mon PC en loalhost mais pour la suite je ne sais pas trop je suis un peu dans l'inconnu.

#7 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1781 messages

Posté 25 February 2019 - 10:43 AM

Il y a un point dans ton email free ?

#8 cortoh

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 464 messages

Posté 25 February 2019 - 13:24 PM

Bonjour pol2095,
Je peux enfin accéder à phpMyadmin sur Free, je vais pouvoir commencer mes premiers tests ce soir.

#9 cortoh

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 464 messages

Posté 02 March 2019 - 09:58 AM

Bonjour,
Après de gros efforts j'ai réalisé mes premiers test et je suis désormais en mesure d'envoyer des données dans une bdd depuis mon Fla, je suis allez plus loin et j'ai étudié et testé d'autres requêtes comme suggéré par pol2095 à savoir SELECT, DELETE, UPDATE etc... pour ces derniers ce sont des tests que j'ai pratiqués de php à phpmyadmin et non depuis mon Fla car c'est déjà plus compliqué, je souhaite désormais passer à la phase SELECT et donc de récupérer des données de ma bdd et les inserrer dans mes saisies texte les mêmes que j'utilise pour les envois, j'ai donc dans un premier temps créer dans mon Fla une saisie texte pour envoyer une condition de recherche qui sera ajouté à la requête SELECT comme ceci:

$nom   = $_POST['nom'];
$sql = 'SELECT nom, prenom, age FROM Personne WHERE nom ='.$nom;
 
ce qui me donne le résultat:

echo $data['nom'] ;
echo $data['prenom']  ;
echo $data['age'];
 
à ce niveau je suis bloqué, je voudrais maintenant récupérer et inserer le résultat de ces 3 valeurs dans les saisies texte de mon Fla.
Merci d'avance pour votre aide.

#10 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1781 messages

Posté 02 March 2019 - 14:14 PM

d'où sort le $data ???

#11 cortoh

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 464 messages

Posté 02 March 2019 - 17:09 PM

Mon php pour une meilleure lecture:

<?php
$nom   = $_POST['nom']; // Variable émisse depuis mon Fla
$base = mysql_connect ('sql.free.fr', 'login', 'mdp');
mysql_select_db ('Personne', $base) ;
$sql = 'SELECT nom, prenom, age FROM Personne WHERE nom="'.$nom.'"';
$req = mysql_query($sql) or die('Erreur SQL !
'
.$sql.'
'
.mysql_error());
$data = mysql_fetch_array($req);
mysql_free_result ($req);
mysql_close ();
if( $req )
{
                print "connexion=1"; // Récupéré dans mon Fla pour confirmer la connexion à la bdd
}
else
{
                print "connexion=2"; // Récupéré dans mon Fla pour confirmer la non connexion à la bdd
}
echo $data['nom'] ;
echo $data['prenom'];
echo $data['age'];
?>
 


#12 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1781 messages

Posté 02 March 2019 - 20:27 PM

en utilisant URLLoader

var request:URLRequest = new URLRequest("http://www.monsite.fr/mapage.php");
loader.addEventListener(Event.COMPLETE, completeHandler);
loader.load(request);
function completeHandler(event:Event):void
{
        nom.text = event.target.data;
}

mais tu vas recevoir "nomprenomage", le plus simple serait de faire un seul echo avec du JSON ou du XML.

if( $req )
{
    $connexion=1; // Récupéré dans mon Fla pour confirmer la connexion à la bdd
}
else
{
    $connexion=2; // Récupéré dans mon Fla pour confirmer la non connexion à la bdd
}
echo '{"connexion":'.$connexion.', "nom":"'.$data['nom'].'", "prenom":"'.$data['prenom'].'", "age":'.$data['age'].'}';

et dans flash

function completeHandler(event:Event):void
{
        var json:Object = JSON.parse( event.target.data );
        nom.text = json.nom;
}


#13 cortoh

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 464 messages

Posté 02 March 2019 - 22:08 PM

J'ai un message d'erreur: SyntaxError: Error #1132: Saisie d’analyse JSON non valide, perso je suis perdu car incapable d'analyser la ligne var json:Object ... c'est pas faute d'avoir planché et ingurgité dernièrement du php, du sql plus l'utilisation de phpmyadmin.

#14 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1781 messages

Posté 02 March 2019 - 23:13 PM

Fais un trace(event.target.data) pour voir ce que ça renvoie

#15 cortoh

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 464 messages

Posté 03 March 2019 - 08:15 AM

Salut po2095, Ca fonctionne parfaitement un énorme merci, pour le message d'erreur il reste présent si par exemple le nom demandé n'est pas dans la bdd, je ne suis pas sur mais je pensais utiliser la valeur de retour "connexion=2" pour créer une condition et afficher un texte, mais elle n'est pas retournée du coup.

#16 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1781 messages

Posté 03 March 2019 - 08:21 AM

Je l'ai placé au début du JSON, json.connexion
essaie
if( $req )
{
        $connexion=1; // Récupéré dans mon Fla pour confirmer la connexion à la bdd
}
else
{
        $connexion=2; // Récupéré dans mon Fla pour confirmer la non connexion à la bdd
}
echo '{"connexion":'.$connexion.', "nom":"'.$data['nom'].'", "prenom":"'.$data['prenom'].'", "age":"'.$data['age'].'"}';


#17 cortoh

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 464 messages

Posté 03 March 2019 - 08:57 AM

oui, je l'ai bien en retour mais si je rentre un nom qui n'est pas dans la base de donnée je n'ai aucun retour de la valeur connexion, je pensais ecrire:

if(connexion.text == "1")
  {
   info_send.text = "Le transfert des données est réussi !"; // ici ça fonctionne
  }

  else
 
  {
   info_send.text = "Le transfert des données a échouée !"; // ici ça ne fonctionne pas car aucun retour mis à part le message d'erreur dans la sortie
  }
 


#18 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1781 messages

Posté 03 March 2019 - 09:34 AM

utilises ce code en php, j'ai modifié age
if( $req )
{
                $connexion=1; // Récupéré dans mon Fla pour confirmer la connexion à la bdd
}
else
{
                $connexion=2; // Récupéré dans mon Fla pour confirmer la non connexion à la bdd
}
echo '{"connexion":'.$connexion.', "nom":"'.$data['nom'].'", "prenom":"'.$data['prenom'].'", "age":"'.$data['age'].'"}';

dans flash, il faut faire
function completeHandler(event:Event):void
{
        var json:Object = JSON.parse( event.target.data );
 
        if( json.connexion == 1 )
        {
                info_send.text = "Le transfert des données est réussi !"; // ici ça fonctionne
                nom.text = json.nom;
                ...
        }
        else
        {
                info_send.text = "Le transfert des données a échouée !"; // ici ça ne fonctionne pas car aucun retour mis à part le message d'erreur dans la sortie
        }
}


#19 cortoh

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 464 messages

Posté 03 March 2019 - 10:42 AM

Alors après avoir fait les modifications, j'obtiens systématiquement "Le transfert des données est réussi !"
j'ai fait un trace(json.connexion); qui me renvoi "1" même si je n'entre aucune données ou un nom qui n'est pas dans la bdd.

#20 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1781 messages

Posté 03 March 2019 - 11:16 AM

c'est normal, tu ne cherches pas une erreur de connexion à la BDD mais un nom qui n'est pas dans la BDD
$num_rows = mysql_num_rows($req);
if( $num_rows != 0 )
{
        $connexion=1; // Récupéré dans mon Fla pour confirmer la connexion à la bdd
}
else
{
        $connexion=2; // Récupéré dans mon Fla pour confirmer la non connexion à la bdd
}


#21 cortoh

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 464 messages

Posté 03 March 2019 - 13:26 PM

Oui c'est vrai j'étais figé sur la connexion et oublié la véritable cible, cela dit avec la condition php que tu as proposé plus rien ne fonctionne en interne ou en ligne Warning: mysql_num_rows(): 2 is not a valid MySQL result resource in ... même avec un nom correct.

#22 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1781 messages

Posté 03 March 2019 - 13:47 PM

$num_rows = mysql_num_rows($req);
mysql_free_result ($req);
mysql_close ();
if( $num_rows != 0 )
{
    $connexion=1; // Récupéré dans mon Fla pour confirmer la connexion à la bdd
}
else
{
    $connexion=2; // Récupéré dans mon Fla pour confirmer la non connexion à la bdd
}


#23 cortoh

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 464 messages

Posté 03 March 2019 - 15:30 PM

Merci pol2095, ça fonctionne parfaitement, je vais étudier davantage sur le php et le sql, on pense à tort avoir les premières bases mais quand ça ce complique on est vite perdu et on perd un temps fou, j'espère ne pas avoir pris trop de ton temps, encore gros merci à toi.

#24 cortoh

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 464 messages

Posté hier, 08:05 AM

Bonjour pol2095,
Suite à de nombreux tests et vérifications sur les phases envois (INSERT INTO) et récupération (SELECT), l'ensemble fonctionne correctement du moins pour la partie (INSERT INTO) les données sont parfaitement et immanquablement transmises dans ma BDD mais la requête (SELECT) semble capricieuse, en effet il arrive qu'en retour (environ 3 à 4x /10) ça me délivre un message d'erreur "SyntaxError: Error #1132: Invalid JSON parse input." pourtant les données entrées juste avant sont bien présentes dans la BDD.

#25 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1781 messages

Posté aujourd'hui, 17:55 PM

Il faudrait faire un trace sur "event.target.data" avant le JSON.parse(), il doit y avoir un caractère qui bloque l'analyse JSON.

#26 cortoh

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 464 messages

Posté aujourd'hui, 21:51 PM

Bonsoir pol2095,
Après 1 millions de tests et de nombreuses heures de vérification as3, php et bdd, je pense avoir trouvé le problème qui n'était pas là où je l'attendais, il semblerait que JSON soit récalcitrant à restituer ses données dans les saisies texte multiligne, après les avoir passés en comportement "une seule ligne" tout se charge correctement.



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP