Aller au contenu

lier un spinner à une requete


Recommended Posts

salut,

mon probleme persiste encore avec la base de donnée mais j'ai avancé quand meme...la creation et l'insertion marche bien et meme ma requete...et c'est toujours grace à vos conseils precieux.

maintenant mon soucie consiste à selectionner un item d'un spinner et selon l'item selectionné je veux appeler ma requete qui va m'afficher les données concernant l'item selectionné.

je vous en prie de m'aider...

voiçi mon code si vous pouvez m'aider à le modifier afin d'obtenir une resultat

j'ai mis la creation des tables ainsi l'insertions en commentaire car ma base est déja crée ainsi l'insertion

package com.DBTest;
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
public class DBTest extends Activity { 
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) { 
 super.onCreate(savedInstanceState); 

 SQLiteDatabase myDB= null; 
 String TableName1 = "pharmacies"; 
 String TableName2 = "dates";
 String TableName3 = "disp";

 String Data1=""; 
 String Data2=""; 
 String Data3=""; 

 /*Create a Database*/
 try { 
  myDB = this.openOrCreateDatabase("DatabaseName", MODE_PRIVATE, null); 

  /* Create a Table in the Database. */ 
/*myDB.execSQL("CREATE TABLE " 
    + TableName1
    + " (idph INT(3),nomph VARCHAR );"); 



  /*Insert data to a Table*/ 
/* myDB.execSQL("INSERT INTO " 
    + TableName1
    + " (idph,nomph)" 
    + " VALUES (1,'ph1');"); 
  myDB.execSQL("INSERT INTO " 
	     + TableName1
	     + " (idph, nomph)" 
	     + " VALUES (2,'ph2');"); 
  myDB.execSQL("INSERT INTO " 
	     + TableName1
	     + " (idph, nomph)" 
	     + " VALUES (3,'ph3');"); 




  /*retrieve data from database */
 /* Cursor cph = myDB.rawQuery("SELECT * FROM " + TableName1 +" where idph=2;", null);


  int Column10 = cph.getColumnIndex("idph"); 
  int Column20 = cph.getColumnIndex("nomph"); 



  // Check if our result was valid.*/

 /* cph.moveToFirst(); 
  if (cph != null) {
   // Loop through all Results 
   do { 
    int idph = cph.getInt(Column10); 
    String nomph = cph.getString(Column20); 


   Data1=Data1+" "+idph+" "+nomph+" "+"\n"; 

   }while(cph.moveToNext()); 

  TextView tv = new TextView(this); 
  tv.setText(Data1); 

  setContentView(tv); 
  }


  /* Create a Table in the Database. */ 
/*myDB.execSQL("CREATE TABLE " 
    + TableName3
    + " (idph INT(3),iddate VARCHAR );"); 



  /*Insert data to a Table*/ 
/*myDB.execSQL("INSERT INTO " 
    + TableName3
    + " (idph, iddate)" 
    + " VALUES (1,2);"); 
  myDB.execSQL("INSERT INTO " 
	     + TableName3
	     + " (idph, iddate)" 
	     + " VALUES (2,1);"); 
  myDB.execSQL("INSERT INTO " 
	     + TableName3
	     + " (idph, iddate)" 
	     + " VALUES (3,2);");
  myDB.execSQL("INSERT INTO " 
	     + TableName3
	     + " (idph, iddate)" 
	     + " VALUES (3,3);");

  /*retrieve data from database */
 /* Cursor cdisp = myDB.rawQuery("SELECT * FROM " + TableName3 +" where idph=2;", null);


  int Column1 = cdisp.getColumnIndex("idph"); 
  int Column2 = cdisp.getColumnIndex("iddate"); 



  // Check if our result was valid.*/

  /*cdisp.moveToFirst(); 
  if (cdisp != null) {
   // Loop through all Results 
   do { 
    int idph = cdisp.getInt(Column1); 
    int iddate = cdisp.getInt(Column2); 


   Data3=Data3+" "+idph+" "+iddate+" "+"\n"; 

   }while(cdisp.moveToNext()); 

  TextView tv = new TextView(this); 
  tv.setText(Data3); 

  setContentView(tv); 
  }
 /* Create a Table in the Database. */ 
/* myDB.execSQL("CREATE TABLE " 
     + TableName2
     + " (iddate INT(3),datejour VARCHAR );"); 

   /*Insert data to a Table*/ 
 /*myDB.execSQL("INSERT INTO " 
     + TableName2
     + " (iddate, datejour)" 
     + " VALUES (1,'lundi');"); 
   myDB.execSQL("INSERT INTO " 
		     + TableName2
		     + " (iddate, datejour)" 
		     + " VALUES (2,'mardi');"); 
   myDB.execSQL("INSERT INTO " 
		     + TableName2
		     + " (iddate, datejour)" 
		     + " VALUES (3,'mercredi');"); 


   /*retrieve data from database */

   Cursor cc = myDB.rawQuery( "SELECT * from disp,dates,pharmacies where datejour='lundi'and pharmacies.idph=disp.idph and dates.iddate=disp.iddate" ,null);

   int Column = cc.getColumnIndex("idph"); 

   int Column2 = cc.getColumnIndex("nomph"); 




   // Check if our result was valid.*/

  cc.moveToFirst(); 
   if (cc!= null) {
    // Loop through all Results 
    do { 
     String idph = cc.getString(Column); 

     String nomph = cc.getString(Column2); 

     Data2=Data2+" "+idph+" "+nomph+"\n"; 

    }while(cc.moveToNext()); 

   TextView tv = new TextView(this); 
   tv.setText(Data2); 

   setContentView(tv); 
   }
   }
 catch(Exception e) { 
  Log.e("Error", "Error", e); 
 } finally { 
  if (myDB != null) 
   myDB.close(); 
 }



 }}




Lien vers le commentaire
Partager sur d’autres sites

salut,

mon probleme persiste encore avec la base de donnée mais j'ai avancé quand meme...la creation et l'insertion marche bien et meme ma requete...et c'est toujours grace à vos conseils precieux.

maintenant mon soucie consiste à selectionner un item d'un spinner et selon l'item selectionné je veux appeler ma requete qui va m'afficher les données concernant l'item selectionné.

je vous en prie de m'aider...

voiçi mon code si vous pouvez m'aider à le modifier afin d'obtenir une resultat

j'ai mis la creation des tables ainsi l'insertions en commentaire car ma base est déja crée ainsi l'insertion

package com.DBTest;
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
public class DBTest extends Activity { 
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) { 
 super.onCreate(savedInstanceState); 

 SQLiteDatabase myDB= null; 
 String TableName1 = "pharmacies"; 
 String TableName2 = "dates";
 String TableName3 = "disp";

 String Data1=""; 
 String Data2=""; 
 String Data3=""; 

 /*Create a Database*/
 try { 
  myDB = this.openOrCreateDatabase("DatabaseName", MODE_PRIVATE, null); 

  /* Create a Table in the Database. */ 
/*myDB.execSQL("CREATE TABLE " 
    + TableName1
    + " (idph INT(3),nomph VARCHAR );"); 



  /*Insert data to a Table*/ 
/* myDB.execSQL("INSERT INTO " 
    + TableName1
    + " (idph,nomph)" 
    + " VALUES (1,'ph1');"); 
  myDB.execSQL("INSERT INTO " 
	     + TableName1
	     + " (idph, nomph)" 
	     + " VALUES (2,'ph2');"); 
  myDB.execSQL("INSERT INTO " 
	     + TableName1
	     + " (idph, nomph)" 
	     + " VALUES (3,'ph3');"); 




  /*retrieve data from database */
 /* Cursor cph = myDB.rawQuery("SELECT * FROM " + TableName1 +" where idph=2;", null);


  int Column10 = cph.getColumnIndex("idph"); 
  int Column20 = cph.getColumnIndex("nomph"); 



  // Check if our result was valid.*/

 /* cph.moveToFirst(); 
  if (cph != null) {
   // Loop through all Results 
   do { 
    int idph = cph.getInt(Column10); 
    String nomph = cph.getString(Column20); 


   Data1=Data1+" "+idph+" "+nomph+" "+"\n"; 

   }while(cph.moveToNext()); 

  TextView tv = new TextView(this); 
  tv.setText(Data1); 

  setContentView(tv); 
  }


  /* Create a Table in the Database. */ 
/*myDB.execSQL("CREATE TABLE " 
    + TableName3
    + " (idph INT(3),iddate VARCHAR );"); 



  /*Insert data to a Table*/ 
/*myDB.execSQL("INSERT INTO " 
    + TableName3
    + " (idph, iddate)" 
    + " VALUES (1,2);"); 
  myDB.execSQL("INSERT INTO " 
	     + TableName3
	     + " (idph, iddate)" 
	     + " VALUES (2,1);"); 
  myDB.execSQL("INSERT INTO " 
	     + TableName3
	     + " (idph, iddate)" 
	     + " VALUES (3,2);");
  myDB.execSQL("INSERT INTO " 
	     + TableName3
	     + " (idph, iddate)" 
	     + " VALUES (3,3);");

  /*retrieve data from database */
 /* Cursor cdisp = myDB.rawQuery("SELECT * FROM " + TableName3 +" where idph=2;", null);


  int Column1 = cdisp.getColumnIndex("idph"); 
  int Column2 = cdisp.getColumnIndex("iddate"); 



  // Check if our result was valid.*/

  /*cdisp.moveToFirst(); 
  if (cdisp != null) {
   // Loop through all Results 
   do { 
    int idph = cdisp.getInt(Column1); 
    int iddate = cdisp.getInt(Column2); 


   Data3=Data3+" "+idph+" "+iddate+" "+"\n"; 

   }while(cdisp.moveToNext()); 

  TextView tv = new TextView(this); 
  tv.setText(Data3); 

  setContentView(tv); 
  }
 /* Create a Table in the Database. */ 
/* myDB.execSQL("CREATE TABLE " 
     + TableName2
     + " (iddate INT(3),datejour VARCHAR );"); 

   /*Insert data to a Table*/ 
 /*myDB.execSQL("INSERT INTO " 
     + TableName2
     + " (iddate, datejour)" 
     + " VALUES (1,'lundi');"); 
   myDB.execSQL("INSERT INTO " 
		     + TableName2
		     + " (iddate, datejour)" 
		     + " VALUES (2,'mardi');"); 
   myDB.execSQL("INSERT INTO " 
		     + TableName2
		     + " (iddate, datejour)" 
		     + " VALUES (3,'mercredi');"); 


   /*retrieve data from database */

   Cursor cc = myDB.rawQuery( "SELECT * from disp,dates,pharmacies where datejour='lundi'and pharmacies.idph=disp.idph and dates.iddate=disp.iddate" ,null);

   int Column = cc.getColumnIndex("idph"); 

   int Column2 = cc.getColumnIndex("nomph"); 




   // Check if our result was valid.*/

  cc.moveToFirst(); 
   if (cc!= null) {
    // Loop through all Results 
    do { 
     String idph = cc.getString(Column); 

     String nomph = cc.getString(Column2); 

     Data2=Data2+" "+idph+" "+nomph+"\n"; 

    }while(cc.moveToNext()); 

   TextView tv = new TextView(this); 
   tv.setText(Data2); 

   setContentView(tv); 
   }
   }
 catch(Exception e) { 
  Log.e("Error", "Error", e); 
 } finally { 
  if (myDB != null) 
   myDB.close(); 
 }



 }}




pour vous expliquez encore mieux les changements seront aux niveau du requete select all from mes tables where condition=spinner.itemSelected.j'espere que c'est expliqué un peu là je vous remercie de m'aider à adapter le spinner à ma requete

Lien vers le commentaire
Partager sur d’autres sites

pour vous expliquez encore mieux les changements seront aux niveau du requete select all from mes tables where condition=spinner.itemSelected.j'espere que c'est expliqué un peu là je vous remercie de m'aider à adapter le spinner à ma requete

Chpil t'as lu mon post? t'as compris mon probleme si oui aides moi merci

Lien vers le commentaire
Partager sur d’autres sites

Chpil t'as lu mon post? t'as compris mon probleme si oui aides moi merci

Il n'y a pas que moi sur ce forum, d'autres peuvent aussi répondre...

Et non, je n'ai pas vraiment compris la question...

Lien vers le commentaire
Partager sur d’autres sites

Il n'y a pas que moi sur ce forum, d'autres peuvent aussi répondre...

Et non, je n'ai pas vraiment compris la question...

Tes reponses me sont toujours utiles, il n'ya pas que toi mais t'es le meilleur pour moi...je te suis à travers d'autres posts et il y'a toujours resolu...merci pour l'effort que tu fais...je vais essayer à te faire comprendre mon probleme et si je ne reussi pas pas grave il me suffit que t'as essayé à me comprendre

j'ai un curseur qui contient cette requete

Cursor cc = myDB.rawQuery( "SELECT * from pharmacie where ville=ItemSelected" ,null);

sachant que ville est un champ de la table pharmacie

je veux faire avant cette requete un spinner qui est remplit avec des villes et quand je selectionne une ville et je clique sur le boutton submit elle me renvois la liste des pharmacies affecté à la ville selectionné

esperant que j'ai eclairé un peu sinon pardon vraiment

Lien vers le commentaire
Partager sur d’autres sites

Sur ton Spinner, il faut que tu positionnes un Listener, et dans ce listener, tu pourras récupérer la valeur sélectionnée et l'utiliser pour faire ta requête

Quelque chose comme ça:

monSpinner.setOnItemSelectedListener( new AdapterView.OnItemSelectedListener() {
 public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
   String villeSelectionne = monSpinnerAdapter.getItem(position);
   Cursor cc = myDB.rawQuery("select * from pharamacie where ville=?", new String[] {villeSelectionnee});
   // ...
}
});

A adapter en fonction du nom de tes variables, du type des éléments gérés dans l'adapter de ton spinner, etc... Mais l'idée est là...

Lien vers le commentaire
Partager sur d’autres sites

Sur ton Spinner, il faut que tu positionnes un Listener, et dans ce listener, tu pourras récupérer la valeur sélectionnée et l'utiliser pour faire ta requête

Quelque chose comme ça:

monSpinner.setOnItemSelectedListener( new AdapterView.OnItemSelectedListener() {
 public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
   String villeSelectionne = monSpinnerAdapter.getItem(position);
   Cursor cc = myDB.rawQuery("select * from pharamacie where ville=?", new String[] {villeSelectionnee});
   // ...
}
});

A adapter en fonction du nom de tes variables, du type des éléments gérés dans l'adapter de ton spinner, etc... Mais l'idée est là...

ok Chpil, c'est ça normalement mais là ou se trouve

 where ville=?, 

je veux que ville egal à l'item selectionné du spinner

Lien vers le commentaire
Partager sur d’autres sites

Dans la requête SQL, le ? est remplacé à l'exécution par la valeur de la variable villeSelectionnee passée dans le tableau en deuxième paramètre de l'appel à la méthode rawQuery. Ce qui veut dire que, si dans cette variable villeSelectionne, tu as la bonne valeur de la ville, tu auras le résultat attendu dans ton Cursor

Lien vers le commentaire
Partager sur d’autres sites

Dans la requête SQL, le ? est remplacé à l'exécution par la valeur de la variable villeSelectionnee passée dans le tableau en deuxième paramètre de l'appel à la méthode rawQuery. Ce qui veut dire que, si dans cette variable villeSelectionne, tu as la bonne valeur de la ville, tu auras le résultat attendu dans ton Cursor

oui exactement ce que je cherche....encore merci pour l'explication

Lien vers le commentaire
Partager sur d’autres sites

oui exactement ce que je cherche....encore merci pour l'explication

aprés avoir trouvé la solution j'ai deux erreurs que j'ai honte de y poser...car je trouve que se sont deux fautes banales mais qui me genent...

il m'affiche une erreur qui consiste à inserer } to complete class body et quand j'insere me demande une erreur s'affiche pour j'efface...je sais que c'est surrement une position faute de } ou manquedu ); voiçi derniere partie du code là ou j'ai ce genre d'erreur

monSpinner.setOnItemSelectedListener( new AdapterView.OnItemSelectedListener() { 
  public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
    String villeSelectionne = monSpinnerAdapter.getItem(position); 



    Cursor cc = myDB.rawQuery("select * from pharamacie where ville=?", new String[] {villeSelectionne}); 

  int Column = cc.getColumnIndex("idph"); 

    int Column21 = cc.getColumnIndex("nomph");
    // Check if our result was valid.*/

   cc.moveToFirst(); 
    if (cc!= null) {
     // Loop through all Results 
     do { 
      String idph = cc.getString(Column); 

      String nomph = cc.getString(Column21); 


      Data2=Data2+" "+idph+" "+nomph+"\n"; 

     }while(cc.moveToNext()); 

    TextView tv = new TextView(this); 
    tv.setText(Data2); 

    setContentView(tv) ;



    }} 

 catch(Exception e) { 
  Log.e("Error", "Error", e); 
 } finally { 
  if (myDB != null) 
   myDB.close(); 
 }}

et s'il vous plait ne vous faches pas contre moi je termine mon pfe et je vous derange plus avec ce genre de question ;)

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...