Json et sql

Messages postés
2
Date d'inscription
mardi 26 janvier 2016
Dernière intervention
26 janvier 2016
-
Bonjour,
je travaille sur application android et c'est la premiere fois que je touche au java
mon application est connéctée a une bdd sql distante, mon application doit recuperer les données de la table produit qui se trouve dans ma base et les afficher dans une liste ou spinner dans l'interface android. le probleme c'est que suand j'essaye de rajouter une condition WHERE il veut pas laccepter et ma liste est vide, je sais pas si c la syntaxe de json qui est fausse ou autre chose
voici mon code php et svp si quelqun qui a deja rencontré ce problem qu'il me donne une piste
merci


  <?php
                include("Connection.php");

                $result=mysqli_query($connect,"SELECT  nom FROM produit WHERE mat-act = 1");

                while($e=mysqli_fetch_array($result, MYSQLI_ASSOC))
     $output[]=$e; 
                {
                    ?>

                <?php }
  print(json_encode($output)); 
  $mysqli->close(); 


    ?>

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ICI

Merci d'y penser dans tes prochains messages.
Afficher la suite 

Votre réponse

2 réponses

Messages postés
14288
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
14 décembre 2018
0
Merci
Hello,

J'ai déplacé ta demande dans la section PHP car ton souci n'est pas lié à Java.
J'ai, de plus, édité ton message pour rajouter les balises 'code'. Plus d'infos dans l'encadré que j'ai ajouté. N'oublie pas de les ajouter la prochaine fois.
Commenter la réponse de BunoCS
Messages postés
23610
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 décembre 2018
0
Merci
Bonjour,


Beaucoup d'erreurs dans ton code.
Des choses placées en dehors de tes accolades dans ta boucle while ... ???
L'utilisation de l'écriture OBJET ET de l'écriture PROCEDURALE pour mysqli ...
Aucun débogage en cas d'erreur....
Un nom de champ avec un tiret ... ( A EVITER ABSOLUMENT. )
-->> Mais si tu tiens à l'utiliser... mets des back-quotes autour.
-->> Dans l'idéal... mettre un underscrore à la place du tirer

Enfin bon...
Testes ceci :
//Connexion à la BDD
require_once("Connection.php");

//Requete
$sql = "SELECT  nom 
        FROM produit 
        WHERE `mat-act` = 1";
				
$result=mysqli_query($connect,$sql) or die( "<br><b>ERROR ! </b>".mysqli_error($connect) ." <u>Dans la requête :</u><br>".$sql);

//On stocke le résultat dans un Array :
$output = mysqli_fetch_all($result);

//fermeture de la connexion
mysqli_close($connect); 

//Renvoie en JSON
print(json_encode($output)); 


lolittakey
Messages postés
2
Date d'inscription
mardi 26 janvier 2016
Dernière intervention
26 janvier 2016
-
merci pour ta reponse , mais mon code marche bien il recupere tous les données mais le seul probleme que j'ai , c'est qu il recupere pas le contenu de la requete sql avec condition WHERE
je vous rappel que je travaille sur une application android, et les données s'affiche bien sur fichier php meme avec condition WHERE mais elles saffichent pas dans mon interface android cest comme si il naccepte pas la condition WHERE; je suppose que cest json qui est le probleme ,
voici le code du fichier qui recupere les données dans l interfae android



public class produit extends ActionBarActivity {

ArrayList<String> listItems=new ArrayList<String>();
ArrayAdapter<String> adapter;
HttpURLConnection urlConnection = null;
Spinner sp1;
Button button2;


protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_matiere);
sp1=(Spinner)findViewById(R.id.spinner6);

adapter=new ArrayAdapter<String>(this,R.layout.spin_layout,R.id.text,listItems);
sp1.setAdapter(adapter);
button2=(Button)findViewById(R.id.button10);


button2.setOnClickListener(new Button.OnClickListener(){

public void onClick(View arg0) {

String message1=sp1.getSelectedItem().toString();
Intent intent=new Intent();
intent.putExtra("MESSAGE",message1);

setResult(3,intent);


finish();


}
});


}
public void onStart(){
super.onStart();
BackTask bt=new BackTask();
bt.execute();
}
private class BackTask extends AsyncTask<Void,Void,Void> {
ArrayList<String> list;
protected void onPreExecute(){
super.onPreExecute();
list=new ArrayList<String>();
}
protected Void doInBackground(Void...params){
InputStream is=null;
String result="";
try{



URL url = new URL("http://xxxx/yyyy");
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.connect();
is = urlConnection.getInputStream();



}catch(IOException e){
e.printStackTrace();
}

//convert response to string
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"utf-8"));
String line = null;
while ((line = reader.readLine()) != null) {
result+=line;
}
is.close();
//result=sb.toString();
}catch(Exception e){
e.printStackTrace();
}
// parse json data
try{
JSONArray jArray =new JSONArray(result);
for(int i=0;i<jArray.length();i++){
JSONObject jsonObject=jArray.getJSONObject(i);
// add interviewee name to arraylist
list.add(jsonObject.getString("nom"));





}
}
catch(JSONException e){
e.printStackTrace();
}
return null;
}
protected void onPostExecute(Void result){
listItems.addAll(list);
adapter.notifyDataSetChanged();
}
}

}
jordane45
Messages postés
23610
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 décembre 2018
> lolittakey
Messages postés
2
Date d'inscription
mardi 26 janvier 2016
Dernière intervention
26 janvier 2016
-
1 **** Attention ****
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

.
2 - As tu testé le code que je t'ai donné au moins ??
Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.