1&1 Webhosting
Flashhilfe.de - Flash Community

Ein Array durchsuchen [Flash 9]

Forum > ActionScript 2.0 > Ein Array durchsuchen

 


AntwortenRegistrieren Seite1  

 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:13Re1
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 &uuml;bergeben
 
$meinSuchwort uft8_decode($_POST['meinSuchwort']);

// tabelle in der datenbank zum suchen ausw&auml;hlen
 
$db "meineTabelle";
 
$table "meineArtikel";
 
 
 
$db_selected mysql_select_db($db$conn);
  if(!
$db_selected) {
    die(
"Datenbank konnte nicht ausgew&auml;hlt werden.");
  }

// die datens&auml;tze ausw&auml;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($resultMYSQL_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
 

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.
Partner Webseiten: DesignerInAction.de   Designnation.de   Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   PSD-Tutorials.de   Tutorials.de

Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2012 Sebastian Wichmann - Flashhilfe.de