IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Script php print json


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    etuidiant
    Inscrit en
    Octobre 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : etuidiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2011
    Messages : 64
    Par défaut Script php print json
    Salut à tous, pour mon app android j'ai besoin d'utiliser un script php entre ma bdd et mon app. Ici c'est qu'une phase de test ou je print en json la variable user que j'ai retrouvé via ma requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    <?php
     
    /* On verif qu'on a bien recu les 2 données */
    if( isset($_POST['username']) && isset($_POST['password'])) {
     
    	// on se connecte à notre base  pour recuperer les data
    	$base = mysql_connect ('localhost', 'root', ''); 
    	mysql_select_db ('db_snsr', $base) ; 
     
    	$login = $_POST['username'];
    	$pass = $_POST['password'];
     
    	$req =mysql_query("SELECT user from tbluser WHERE user = '".$login."' AND pwd = '".$pass."' "); 
     
    	while ($row=mysql_fetch_array($req)) {   
    		$output=$row;  	
    	}
     
    	$rep = $output[0];
     
    	$object[0] = array("user" => $rep);
    	$object1 = $object[0]; 
     
    	print(json_encode($object1));
    mysql_free_result ($req); 	
    }
    ?>
    Seulement voila j'ai l'impression que c'est très bourin pcq je récupère la variable $output avec un mysql_fetch_array alors que je sais qu'il ne peut y avoir qu'une entrée correspondante a la requete :S tout ce que je veut au final c'est de trouver le user, d'en faire un objet et de direct le mettre print(json_encode( ICI )); et ne pas devoir passer par ces étapes intermédiaires :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    		$output=$row;  	
    	}
     
    	$rep = $output[0];
     
    	$object[0] = array("user" => $rep);
    	$object1 = $object[0];
    D'ailleurs n y a t il pas un autre moyen que de faire un array pour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    	$object[0] = array("user" => $rep);
    Etant donné que je veut juste une variable ayant le bon format pour mon object JSON

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Si tu es certain de n'avoir qu'un résultat pourquoi faire un while ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $row=mysql_fetch_array($req)
    est suffisant.

    Pourquoi placer ton tableau dans $object[0] puis $object[0] dans $object1 ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    json_encode(array("user" => $rep));
    est suffisant.

    Tu devrais penser à sécuriser les variables reçues avant de les utiliser dans tes requêtes.
    Pour celà utilise mysql_real_escape_string , ou mieux, passe à PDO et aux requêtes préparées.

    Avec PDO ca donnerait quelque chose comme ça (non testé) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sth = $dbh->prepare("SELECT user from tbluser WHERE user = :user AND pwd = :pass ");
    $sth->execute(array(':user'=> $login,':pass'=>$pass));
    $user= $sth->fetchColumn();
    echo json_encode(array('user'=>$user));
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Homme Profil pro
    etuidiant
    Inscrit en
    Octobre 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : etuidiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2011
    Messages : 64
    Par défaut
    Ok merci bcp !

    En fait ce qui me dérange dans mon code c'est le

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    array("user" => $row)
    n'est il pas possible de ne pas utiliser un array et faire plutpt une sorte de correspondance entre "user" => $row vu que ce tableau n'a qu'une cellule au final :S ?

Discussions similaires

  1. [MySQL] Optimisation de scripts PHP/MySQL
    Par DgG dans le forum PHP & Base de données
    Réponses: 368
    Dernier message: 20/11/2013, 18h59
  2. Quel est le meilleur script PHP de portail (CMS) ?
    Par Lana.Bauer dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 187
    Dernier message: 18/10/2012, 07h45
  3. Récupération de données JSON d'un script PHP
    Par Nickonet dans le forum Android
    Réponses: 5
    Dernier message: 12/08/2012, 18h18
  4. Pb d'execution de requete avec un script php
    Par ythierrin dans le forum Requêtes
    Réponses: 3
    Dernier message: 22/08/2003, 14h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo