etud21 Posté(e) 5 mai 2011 Share Posté(e) 5 mai 2011 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 More sharing options...
etud21 Posté(e) 5 mai 2011 Auteur Share Posté(e) 5 mai 2011 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 More sharing options...
etud21 Posté(e) 5 mai 2011 Auteur Share Posté(e) 5 mai 2011 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 More sharing options...
chpil Posté(e) 5 mai 2011 Share Posté(e) 5 mai 2011 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 More sharing options...
etud21 Posté(e) 5 mai 2011 Auteur Share Posté(e) 5 mai 2011 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 More sharing options...
chpil Posté(e) 6 mai 2011 Share Posté(e) 6 mai 2011 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 More sharing options...
etud21 Posté(e) 6 mai 2011 Auteur Share Posté(e) 6 mai 2011 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 More sharing options...
chpil Posté(e) 6 mai 2011 Share Posté(e) 6 mai 2011 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 More sharing options...
etud21 Posté(e) 7 mai 2011 Auteur Share Posté(e) 7 mai 2011 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 More sharing options...
etud21 Posté(e) 7 mai 2011 Auteur Share Posté(e) 7 mai 2011 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 More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.