Ein Array durchsuchen [Flash 9]
| 04.07.2009, 00:15 | | Beiträge: 14 Registriert: Feb 2007
| Ein Array durchsuchen Hallo liebe Mitglieder,
ich habe da mal eine Frage, an der ich mir schon einige Tage die Zähne ausbeiße:
Ich habe eine mySQL-Datenbank, in der ich eine Tabelle habe. Diese hat 5 Spalten.
Eine davon heißt Keywords. Diese Tabelle lese ich mittels PHP aus, in ein PHP-Array.
Dieses PHP-Array übergebe ich an Flash und lasse es (momentan) in einem Textfeld ausgeben. Wenn ich in der Datenbank einen neuen Eintrag mache, und die Seite aktualisiere, klappt das wunderbar.
........................
Jetzt möchte ich gerne mittels einer comboBox.editable=true; eine Suchfunktion realisieren. Der User soll einen String eingeben (oder einen von mir definieren Suchbegriff auswählen), und ich möchte im Ausgabe-Textfeld nur Datensätze angezeigt bekommen, in deren Spalte "Keywords" dieser String (Suchbegriff) enthalten ist.
Beispiel:
mySQL Tabelle:
Spalten: farbe, gewicht, größe, alter, keywords
id1 = blau, 4, 123, 15, suchbegriff1
id2 = grün, 8, 545, 54, suchbegriff2
id3 = schwarz, 95, 46, suchbegriff1 & suchbegriff2 (durch Komma getrennt)
Wenn ich jetzt nach suchbegriff1 suche, soll er mir den ersten und den dritten datensatz aus dem array ausgeben.
Wie kann ich das realisieren?
Für Hilfe wäre ich sehr dankbar, ich versuche mich schon seit Tagen und mich hat der ehrgeiz gepackt, es zu schaffen. Hoffentlich mit Euch zusammen.
Grüße aus Mittelerde, FRODO ;) | |
| 15.07.2009, 20:13 | Re1 | Beiträge: 14 Registriert: Feb 2007
Themenautor/in
| Problem gelöst, ...
für alle die Wissen wollen wie es geht, hier die Antwort:
Wir wollen aus Flash heraus per PHP eine Datenbank nach einem Keyword durchsuchen, das Ergebnis in PHP in ein mehrdimensionales Array legen, dieses Array dann auffangen und in Flash verarbeiten.
Vorbereitungen:
mySQL Datenbank mit einer Tabelle, diese hat 7 Felder.
PHP Grundkenntnisse sollten vorhanden sein, ebenfalls AS 2 Kenntnisse.
In Flash erstellen wir ein Eingabe-Textfeld und einen Button, um den Inhalt, den String, des Feldes zu posten. Dabei rufen wir uns, weiter unten, die Funktion datenLesen(); auf.
Der PHP-Teil:
PHP: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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
<?php
// in der db_zugangsdaten sind die variablen $server, $benutzer & $kennwort definiert
include'db_zugangsdaten.php';
function encode($str) {
$str = utf8_encode($str);
$str = urlencode($str);
return $str;
}
$conn=mysql_connect($server,$benutzer,$kennwort);
if(!$conn){
die("Verbindung fehlgeschlagen.");
}
// suchwort wird an php übergeben
$meinSuchwort = uft8_decode($_POST['meinSuchwort']);
// tabelle in der datenbank zum suchen auswählen
$db = "meineTabelle";
$table = "meineArtikel";
$db_selected = mysql_select_db($db, $conn);
if(!$db_selected) {
die("Datenbank konnte nicht ausgewählt werden.");
}
// die datensätze auswählen, die das Keyword enthalten
$sql = "SELECT * FROM `$db`.`$table` WHERE (`Keywords` LIKE '%$meinSuchwort%')";
$result=mysql_query($sql,$conn);
$counter = 0;
// schleife
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$id = encode($row["Modell-ID"]);
$hersteller = encode($row["Hersteller"]);
$modell = encode($row["Modell"]);
$herstellerfarbe = encode($row["Herstellerfarbe"]);
$keywords = encode($row["Keywords"]);
$swflink = encode($row["SWF-Link"]);
$thumb = encode($row["Thumb"]);
// ausgabe
$output.= '&id'.$counter.'='."$id";
$output.= '&hersteller'.$counter.'='."$hersteller";
$output.= '&modell'.$counter.'='."$modell";
$output.= '&herstellerfarbe'.$counter.'='."$herstellerfarbe";
$output.= '&keywords'.$counter.'='."$keywords";
$output.= '&swflink'.$counter.'='."$swflink";
$output.= '&thumb'.$counter.'='."$thumb";
$counter++;
}
$output.="&counter="."$counter";
echo "$output";
?>
|
Dieses Script ließt alle Datensätze aus, die im Feld "keywords" den String oder einen Teil des Strings enthalten.
In Flash fangen wir das ganze dann in einer for-Schleife auf:
ActionScript: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 29 30 | // die funktion datenLesen wird initialisiert
function datenLesen():Void{
var meinLader:LoadVars=new LoadVars();
// dem LoadVars-Objekt wird das Keyword zugewiesen
meinLader.meinSuchwort = meinSuchwort;
// meinProdukteArray wird angelegt
meinProdukteArray=new Array();
meinLader.sendAndLoad("php/db_verbindung.php", meinLader, "POST");
meinLader.onLoad=function(success:Boolean){
if(success){
var produktAnzahl:Number=Number(this.counter);
var ref:LoadVars=this;
for (var i:Number=0; i<produktAnzahl; i++){
var id:Number=ref["id"+i];
var hersteller:String=ref["hersteller"+i];
var modell:String=ref["modell"+i];
var herstellerfarbe:String=ref["herstellerfarbe"+i];
var keywords:String=ref["keywords"+i];
var swflink:String=ref["swflink"+i];
var thumb:String=ref["thumb"+i];
meinProdukteArray.push({id:id, hersteller:hersteller, modell:modell, herstellerfarbe:herstellerfarbe, keywords:keywords, swflink:swflink, thumb:thumb});
}
// aufruf der funktion datenOrdnen
datenOrdnen();
}else{
// fehlermeldung wird ausgegeben
meinStatus.text="Fehler beim Laden der Daten.";
}
};
}
|
Auf dieses Array können wir dann zugreifen und die Daten, beispielsweise, in Textfelder ausgeben.
Für Kritik oder Verbesserungsvorschläge bin ich offen ;) | Geändert von FRODO BEUTLI am 15.07.09 um 20:14 Uhr
| |
|
| | Themen Ähnliche Beiträge zum Thema | 07.07.2009 - strukturart 05.08.2011 - TarekHaddad 15.02.2010 - pat_and_nobody 06.06.2009 - shadow_zed |
|
Flashhilfe.de Flash Platform Tipps & Tutorials Flash Platform Andere Programmiersprachen Jobangebote Diskussionen
Flashhilfe News 
Regeln & Bedingungen
|