Suchen in einer MySLQ Datenbank via Android App

  • Antworten:12
TomTomB
  • Forum-Beiträge: 5

07.07.2015, 15:27:13 via Website

Hallo Forum,

ich bin noch nicht all zu erfahren was programmieren in Java betrifft angeht - das nur am Rande.

Also was will ich?

Ich möchte am Handy einen Suchbegriff, beispielsweise ein Produkt wie "Galaxy S6", eingeben. Dieser soll dann mit der Datenbank abgeglichen werden worauf mir die App passende Resultate mit kleinen Bildern in einer ListView anzeigt. Drückt man dann auf einen Eintrag so sollten in dem Fall genauere Details zu dem Gerät erscheinen. Das klingt jetzt sehr danach, als wolle ich einen E-Shop einrichten. Dem ist allerdings nicht so, ich brauche also nicht was mit Bezahlen und Log-In zu tun hat. ;-)

Ich habe selbst schon sehr viel danach gesucht aber in den meisten Tutorials geht es einfach darum, alle Datenbankeinträge anzuzeigen oder neue Einträge zu erstellen. Klar, das ist immerhin etwas, aber nicht unbedingt Zielführend...

Mit Android Studio kenne ich mich schon recht gut aus, diesbezüglich brauche ich also keine all zu langen Erklärungen.
Die Datenbank besteht soweit auch schon.

Über eure Hilfe würde ich mich sehr freuen!
Auch möchte ich bitte keine "blöden" Kommentare an den Kopf geworfen bekommen, solle ich doch Tutorial XY übersehen haben - verzeiht mir, das Internet ist nunmal nicht gerade klein :-)

MfG,
Tom

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

07.07.2015, 15:33:34 via Website

Hallo TomTomB ,
Herzlich wilkommen hier im Forum :)

Direkt würde ich das auf keinen Fall machen.
Du solltest dir da eine kleine PHP Api schreiben, die für dich den SQL anfragen ausführt und das Ergebnis in Json Form ausgibt.
Dafür muss man etwas php können und dann geht es.
In der App selber musst du dann nur noch die URL aufrufen und die JSON parsen und in der ListView anzeigen lassen.

— geändert am 07.07.2015, 15:33:47

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
TomTomB
  • Forum-Beiträge: 5

07.07.2015, 15:53:06 via Website

Hallo Pascal,

danke für die prompte Antwort.
Gibt es bezüglich der Sachen die du angesprochen hast Tutorials? Ob nun in deutsch/englisch mit Video oder nur Text ist mir egal.

Über ein paar Links wäre ich sehr dankbar ;-)
Die Sache ist nämlich die, ich habe nur (sehr) begrenzt Zeit und da versuche ich zu sparen wo nur möglich ist.

Antworten
Sven R.
  • Forum-Beiträge: 1.904

08.07.2015, 08:20:03 via App

Wenn die Datenbank lokal auf dem Gerät ist, und sie auch nicht geupdatet wird, dann könntest du einfach mit einer SQL Query(z.b. "Select gereatname, preis from Smartphones where gereatname like 'S6'") nach dem Begriff suchen lassen. Was Pascal vorgeschlagen hat, ist natürlich besser, wenn die Datenbank unabhängig von der App geupdatet werden soll und es bietet mehr Sicherheit.

— geändert am 08.07.2015, 08:20:39

Wenn dir mein Beitrag gefällt, kannst dich einfach mit dem 👍 "Danke"-Button auf der Website dieses Forums bedanken. 😀

Why Java? - Because I can't C#

Antworten
TomTomB
  • Forum-Beiträge: 5

08.07.2015, 09:49:53 via Website

@Pascal Na das sieht doch schonmal vielversprechend aus auch wenn da mit Eclipse gearbeitet wurde. Hast du bezüglich pdo auch so gute Tutorials "auf Lager" ? ;-)

@Sven Nein die Datenbank ist auf einem externen Server und da sollte sie auch gerne bleiben. Die Leute beschweren sich heut zu Tage ja schon darüber wenn die App 10 MB groß ist...

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

08.07.2015, 13:45:04 via Website

Ich habe zum eilerne in PDO das hier benutzt:
http://www.peterkropff.de/site/php/pdo.htm

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Ju Ku
  • Forum-Beiträge: 72

08.07.2015, 17:14:22 via Website

Besitzt du einen Server?
Wenn ja, könntest du den Server ja evtl. auch in Java und mit Socket.IO implementieren.
Es gibt einen Android Socket.IO Client und Socket.IO ist für Real-Time communication ausgelegt, d.h. die Events werden in Real-Time versandt und bearbeitet.
Desweiteren habe ich vor kurzem eine JBackendEngine geschrieben, welche dir dabei helfen könnte.

Antworten
TomTomB
  • Forum-Beiträge: 5

08.07.2015, 17:38:29 via Website

Nein ich selbst besitze ihn nicht aber er existiert schon.
Ein paar Fragen dazu:

Ist deine Methode mit viel Aufwand verbunden?

Ist sie in einem relativ kleinen Zeitfenster umsetzbar sprich in etwa 8 - 10 Wochen (für einen wie mich?) Dazu sei gesagt dass ich in den nächsten Wochen mich komplett auf die App und das drum herum konzentrieren kann, sprich es funkt nichts rein wie beispielsweise die Schule.

Gibt es Tutorials dazu/ kann ich auf dich als Hilfestellung zählen? - Wäre sonst recht blöde wenn ich schon quasi am Server "rumschraube" und auf einmal gehts nicht weiter ;-)

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

08.07.2015, 17:51:57 via Website

Direkt ist sehr unsicher, da kann jeder der die App "crackt" auf deine DB zugreifen..
Zudem ist bei sehr vielen Servern der Zuriff auf MySql nur vom localhost gestettet, das bedeutet, alle anderen clients dürfen nicht zugreifen.

Relisierbar ist das schon.
Kommt darauf an wie produktiv und wie lange pro Tag du arbeitest. Mit 5h am Tag die kompletten 8 Wochen solltest du damit schon fertig werden, wobei ich jetzt den Umfang deines Projektes schlecht einschätzen kann.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
TomTomB
  • Forum-Beiträge: 5

09.07.2015, 09:50:19 via Website

Also wenn das unsicher ist geht das natürlich nicht.

Sagen wir - ich gehöre zu denen die, wenn sie mit etwas anfangen, dass dann auch so schnell wie möglich Fertig haben wollen, weil es einen sonst quasi nicht in Ruhe schlafen lässt.
Die App sollte an sich auch schön schlank gehalten sein. Ein nettes Material Design - wofür es ja genug Beispiele auf Github gibt, ein paar Activitys in welchen schlichtweg eine Webview Komponente steckt und eine Suche mit der man nach Sache XY suchen kann und diese dann in Details anzeigen lassen kann.

Zu deinem zuerst geschriebenen Tutorial also: "....mal hier www(dot)androidhive.info/2012/05/how-to-connect-android-with-php-mysql/"
habe ich noch eine Anmerkung. Alles drum herum wie komplettes(!) auslesen der Datenbank wird dort zwar behandelt, jedoch eine Art "Suche in der Datenbank nach Schlagwörtern", sprich das was ich unbedingt brauche, findet sich dort leider nicht.

Antworten
Haakon T.
  • Forum-Beiträge: 375

09.07.2015, 15:13:44 via Website

TomTomB

habe ich noch eine Anmerkung. Alles drum herum wie komplettes(!) auslesen der Datenbank wird dort zwar behandelt, jedoch eine Art "Suche in der Datenbank nach Schlagwörtern", sprich das was ich unbedingt brauche, findet sich dort leider nicht.

Du weißt ja jetzt, wie man mit SQL Statements arbeitet. Nun suchst du die von dir gewünschten Statements raus und baust die Abfrage analog zu den Beispielen. Das ist nicht mehr als eine kleine Transferleistung und gut zu schaffen.

Antworten
Ju Ku
  • Forum-Beiträge: 72

10.07.2015, 12:44:11 via Website

TomTomB

Nein ich selbst besitze ihn nicht aber er existiert schon.
Ein paar Fragen dazu:

Ist deine Methode mit viel Aufwand verbunden?

Ist sie in einem relativ kleinen Zeitfenster umsetzbar sprich in etwa 8 - 10 Wochen (für einen wie mich?) Dazu sei gesagt dass ich in den nächsten Wochen mich komplett auf die App und das drum herum konzentrieren kann, sprich es funkt nichts rein wie beispielsweise die Schule.

Gibt es Tutorials dazu/ kann ich auf dich als Hilfestellung zählen? - Wäre sonst recht blöde wenn ich schon quasi am Server "rumschraube" und auf einmal gehts nicht weiter ;-)

Läuft auf deinem Server Java?
Zu der JBackendEngine kann ich dir exklusiven Support geben, da könnte ich dir sogar bei der Umsetzung helfen, dann sollte das nicht ewig dauern.
Aber dafür bräuchtest du dann einen Server, auf dem Java läuft.
Am besten verwendest du noch einen IntentService, um die Daten vom Server abzufragen.

Antworten