Zurück   Flashforum > Flash und Server > Flash und Datenbanken

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 21-12-2006, 15:47   #1 (permalink)
wau
 
Benutzerbild von Circushund
 
Registriert seit: Jan 2006
Ort: Hamburch
Beiträge: 404
SQL und Flash

hi,
in order to get started...


Ich hab eine Datenbank "DB" da hab ich eine Tabelle "TB" und da hab ich irgend ein Feld "FD" .

Wie les ich jetzt den Inhalt von "FD" in mein Flash in meine Variable ?
var db_wert = "FD"
Und,
wie schreib ich eine neuen Wert in FD aus Flash herraus?

...ich mach mir meinetwegen eine "get.php"
und eine "send.php".

Doch was kommt da rein?
Und wie les bzw. schreib ich die Variablen von "send" und "get" in Flash?
__________________
Say no to Internet Explorer 6!
Circushund ist offline   Mit Zitat antworten
Alt 23-12-2006, 02:41   #2 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
Da gibts mehrere Nöglichkeiten, aber bei allen gleich, ist das Du eine serverseitige Scriptsprache benötigst, denn Flash alleine bewerkstelligt das noch nicht. Wenn Du dich für eine Scriptsprache deiner Wahl entschieden hast, kannst Du die Kommunikation mit eben jener über: LoadVars, XML oder eine Service Klasse (Remoting) bewerkstelligen.

Für die ganzen Remoting-Geschichten haben wir hier einen extra Bereich, bzw. könntest Du auch hier fündig werden.

lg,
shorty
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.
shorty ist offline   Mit Zitat antworten
Alt 23-12-2006, 06:47   #3 (permalink)
wau
 
Benutzerbild von Circushund
 
Registriert seit: Jan 2006
Ort: Hamburch
Beiträge: 404
thx shorty,
frohe weihnachten und neues Jahr
__________________
Say no to Internet Explorer 6!
Circushund ist offline   Mit Zitat antworten
Alt 23-12-2006, 12:21   #4 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
Danke, das wünsch ich Dir auch!
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.
shorty ist offline   Mit Zitat antworten
Alt 02-01-2007, 12:49   #5 (permalink)
wau
 
Benutzerbild von Circushund
 
Registriert seit: Jan 2006
Ort: Hamburch
Beiträge: 404
SQL Datenbank die Zweite

hiho,
ich hab's immer noch nicht ganz verstanden,
hab mitlerweile mit phpMyAdmin mal Testweise eine Tabelle namens "
Baum" und da hab ich zwei Felder angelegt:
"vara" und "varb"(siehe screen). Allerding hab ich kein Auto-Index definiert ?

Ich wollte diese Zwei Felder nun wie Variablen benutzen, dh. das ich dort verschiedene Werte also zb mal "12" oder mal "573" ect. reinschreibe und auch lese.

Meine Frage ist nun: Wie bekomme ich die Werte dieser Felder in mein Flash mittes loadVars ?
Was für .php oder sonstige .html müsste ich schreiben, um die Daten zu "fetchen" bzw. aus der Datenbank zu holen?
Ok, ich weiss, das sind nicht gerade Flash-Fragen, aber schliessendlich hat es ja indirekt mit Flash zutun .

Ich bin für jede Hilfe dankbar, auch ein Strohalm im reissenden Wasser würde mir helfen.
Angehängte Grafiken
Dateityp: jpg ss.jpg (46,4 KB, 34x aufgerufen)
__________________
Say no to Internet Explorer 6!

Geändert von Circushund (02-01-2007 um 12:51 Uhr)
Circushund ist offline   Mit Zitat antworten
Alt 02-01-2007, 14:47   #6 (permalink)
Neuer User
 
Registriert seit: Oct 2006
Beiträge: 162
Wenn du es über loadVars laden möchtest, dann musst du ein PHP-Skript erstellen, dass die DB ausließt und die Werte dann als Zeichenkette ausgibt.
Noch einfacher ist es eie Serialisierung zu verwenden, wenn du nicht
auf AMFPHP oder ähnliches zurückgreifen möchtest.

http://www.sephiroth.it/test/unserializer/
MaticPel ist offline   Mit Zitat antworten
Alt 02-01-2007, 15:43   #7 (permalink)
-
 
Registriert seit: Jul 2003
Beiträge: 714
Zitat:
Zitat von MaticPel Beitrag anzeigen
Wenn du es über loadVars laden möchtest, dann musst du ein PHP-Skript erstellen, dass die DB ausließt und die Werte dann als Zeichenkette ausgibt.
Und da liegt wohl auch das Problem, das er ebend das nicht hinbekommt.
So verstehe ich es wenigstens.


Hier mal 2. Beispiele:

Als XML (Code):

PHP-Code:
<?php
    $host 
"localhost";
    
$username "";
    
$pw "";
    
$database "dwienand";
    
$table "Baum";

    
mysql_connect($host$username$pw);
    
mysql_select_db($database);
    
    
$query mysql_query("SELECT * FROM ".$table);
    
    
$str '<?xml version="1.0" encoding="UTF-8"?>';
    
$str .= '<root>';
    
    while(
$result mysql_fetch_assoc($query)) {
        
$str .= '<node>';
        
$str .= '<vara>'.$result['vara'].'</vara>';
        
$str .= '<varb>'.$result['varb'].'</varb>';
        
$str .= '</node>';
    }
    
    
$str .= '</root>';
    
    echo 
$str;
?>
Beispielergebnis als XML:

PHP-Code:
<?xml version="1.0" encoding="UTF-8"?>
<root>
    <node>
        <vara>a1</vara>
        <varb>b1</varb>
    </node>
    <node>
        <vara>a2</vara>
        <varb>b2</varb>
    </node>
    <node>
        <vara>a3</vara>
        <varb>b3</varb>
    </node>
</root>
-----------------------------------------------------------------------

Als Variabeln (Code):
PHP-Code:
<?php
    $host 
"localhost";
    
$username "";
    
$pw "";
    
$database "dwienand";
    
$table "Baum";

    
mysql_connect($host$username$pw);
    
mysql_select_db($database);
    
    
$query mysql_query("SELECT * FROM ".$table);
    
    
$str '';
    
$i 0;
    
    while(
$result mysql_fetch_assoc($query)) {
        
$str .= 'vara'.$i.'='.$result['vara'].'&';
        
$str .= 'varb'.$i.'='.$result['varb'].'&';
        
        
$i++;
    }
    
    
    echo 
$str;
?>
Beispielergebnis als Variabeln:
PHP-Code:
vara0=a1&varb0=b1&vara1=a2&varb1=b2&vara2=a3&varb2=b3 

Die Ergbnisse brauchst du dann einfach nur über die XML bzw. LoadVars - Klasse verarbeiten.
(Schau mal in der Flashilfe [F1 drücken] nach).

PS: Die Skripte sind nur einfache Beispiele und sollten nicht in einer produktiven Umgebung eingesetz werden.
messingfeld ist offline   Mit Zitat antworten
Alt 03-01-2007, 15:04   #8 (permalink)
wau
 
Benutzerbild von Circushund
 
Registriert seit: Jan 2006
Ort: Hamburch
Beiträge: 404
@messingfeld

danke erstmal, deine Beispiele gehen in die Richtung die ich meine.
Bin noch nicht dazu gekommen sie auszutesten doch das wird wohl in den nächsten Tagen geschehen.

So wie ich das sehe, müsste ich eine index.php erstellen, den Code da reinschreiben und diese dann im Browser aufrufen.
Wenn ich zusätzlich noch einen Flash-Movie einbette, könnte ich dann
die Variablen mittels LoadVars laden ?
__________________
Say no to Internet Explorer 6!
Circushund ist offline   Mit Zitat antworten
Alt 03-01-2007, 16:10   #9 (permalink)
Neuer User
 
Registriert seit: Oct 2006
Beiträge: 162
Zitat:
Werte von PHP an Flash

Um Werte von PHP nach Flash zu bekommen gibt es leider nur eine, meiner Meinung nach, umständliche Variante. Das Problem ist, dass Flash zwar Daten einlesen kann, diese jedoch in Form eines URL-Strings kommen müssen. Ob es in Flash 8 mittlerweile eine andere Variante gibt ist mir nicht bekannt und die Variante, die ich euch zeige ist die einzigste, die ich kenne und die ab Flash 6 funktioniert. Okay, fangen wir an. Erstellt jetzt wieder mittels dem Textwerkzeug (T) zwei Textfelder. Wählt nun ein Textfeld aus, klickt unten auf Eigenschaften und wählt in der DropDownListe "Eingabetext" aus. Nun tragt weiter rechts bei "Var:" "test_3" ein. Das gleiche macht ihr auch mit dem anderen Textfeld, nur trag dort bei "Var:" "test_4" ein. Klickt nun in die Zeitleiste auf das erste Schlüsselbild mit der rechten Maustaste und klickt auf "Aktionen". Fügt in dem Fenster nun den Beispiel Code ein.

Beispiel ActionScript:
PHP-Code:
var LoadVarObject = new LoadVars ();
LoadVarObject.onLoad = function (loadSuccess)
{
  if (
loadSuccess == true)
  {
    
_root.test_3 this.mein_test3_wert;
    
_root.test_4 this.mein_test4_wert;
  }
};

LoadVarObject.load ("werte.php"); 
Kurze Erklärung:
In der ersten Zeile erzeugen wir ein Objekt der LoadVars-Klasse. .onLoad wird aufgerufen, sobald ein .load Vorgang beendet ist. Bei LoadVarObject.load(); übergeben wir werte.php als Quelle, aus der die Variablen geladen werden sollen. Ist der Vorgang erfolgreich beendet, dann sind die Variablen _root.test_3 und _root.test_4 mit den Werten aus werte.php "gefüllt". Erstellt nun eine Datei namens werte.php und fügt dort den Beispiel Code ein.

Beispiel PHP-Code:
PHP-Code:
<?php

$mein_test3_wert 
9876;
$mein_test4_wert 'Von PHP nach Flash';

echo 
'mein_test3_wert='.$mein_test3_wert.'&';
echo 
'mein_test4_wert='.$mein_test4_wert;

>
Habt ihr alles richtig gemacht, dann steht in euren beiden neuen Textfelder "9876" und "Von PHP nach Flash".
http://www.php-resource.de/tutorials/read/45/1/
MaticPel ist offline   Mit Zitat antworten
Alt 04-01-2007, 01:47   #10 (permalink)
wau
 
Benutzerbild von Circushund
 
Registriert seit: Jan 2006
Ort: Hamburch
Beiträge: 404
hi,
ich hab nun die .php Datei auf meinem Space upgeloadet:
Und da steht genau das drin:
Code:
<?php 
$a = 9876; 
$b = 'Von PHP nach Flash'; 
echo 'vara='.$a.'&'; 
echo 'varb='.$b; 
?>
Die Ausgabe im Browser ist:
vara=9876&varb=Von PHP nach Flash

Es scheint so, das er die Zeichenkette genau ausgibt.
Doch hab ich leider noch Probleme, die vara und varb richtig einzulesen in mein Flash

Mein Flash:
Code:
var LoadVarObject = new LoadVars (); 
LoadVarObject.onLoad = function (loadSuccess) 
{ 
  if (loadSuccess == true) 
  { 
      trace("erfolg");
	trace(this.toString());
	
    _root.a = this.vara; 
    _root.b = this.varb; 
  } 
}; 

LoadVarObject.load ("http://www.dwienand.de/getPHPtoFlash.php");
Die Ausgabe im Ausgabefenster ist:
erfolg
Zitat:
varb=Von%20PHP%20nach%20Flash%09%09%0A%09%0A&vara= 9876&onLoad=%5Btype%20Function%5D
Einen kleinen Fehler scheint es noch mit der formatierung der Daten zu geben ?
Wie muss ich das richtig formatieren ?
__________________
Say no to Internet Explorer 6!
Circushund ist offline   Mit Zitat antworten
Alt 04-01-2007, 01:49   #11 (permalink)
wau
 
Benutzerbild von Circushund
 
Registriert seit: Jan 2006
Ort: Hamburch
Beiträge: 404
hi,
ich hab nun die .php Datei auf meinem Space upgeloadet:
Und da steht genau das drin:
Code:
<?php 
$a = 9876; 
$b = 'Von PHP nach Flash'; 
echo 'vara='.$a.'&'; 
echo 'varb='.$b; 
?>
Die Ausgabe im Browser ist:
vara=9876&varb=Von PHP nach Flash

Es scheint so, das er die Zeichenkette genau ausgibt.
Doch hab ich leider noch Probleme, die vara und varb richtig einzulesen in mein Flash

Mein Flash:
Code:
var LoadVarObject = new LoadVars (); 
LoadVarObject.onLoad = function (loadSuccess) 
{ 
  if (loadSuccess == true) 
  { 
      trace("erfolg");
	trace(this.toString());
	
    _root.a = this.vara; 
    _root.b = this.varb; 
  } 
}; 

LoadVarObject.load ("http://www.dwienand.de/getPHPtoFlash.php");
Die Ausgabe im Ausgabefenster ist:
Zitat:
erfolg
varb=Von%20PHP%20nach%20Flash%09%09%0A%09%0A&vara= 9876&onLoad=%5Btype%20Function%5D
Einen kleinen Fehler scheint es noch mit der formatierung der Daten zu geben ?
Wie muss ich das richtig formatieren ?
__________________
Say no to Internet Explorer 6!
Circushund ist offline   Mit Zitat antworten
Alt 04-01-2007, 01:53   #12 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
PHP-Code:
var LoadVarObject = new LoadVars (); 
LoadVarObject.onLoad = function (loadSuccess

  if (
loadSuccess
  { 
      
trace("erfolg");
      
traceunescape this.vara ) );
      
traceunescape this.varb ) );
  } 
}; 
sorry herr hund. ich war ne weile nicht am start, aber hast ja prächtig hilfe bekommen
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.

Geändert von shorty (04-01-2007 um 01:55 Uhr)
shorty ist offline   Mit Zitat antworten
Alt 04-01-2007, 05:04   #13 (permalink)
wau
 
Benutzerbild von Circushund
 
Registriert seit: Jan 2006
Ort: Hamburch
Beiträge: 404
@shorty,
thx, habs auch ohne dem unescape hinbekommen:
Code:
	
_root.a.text = this.vara; 
_root.b.text = this.varb;
hab bloss das .text vergessen.

Nun hab ich das nächste Problem, nemlich wie kann ich die Daten nun verändern und in meine SQL-Datenbank einschreiben, also der Weg wieder zurück ?

Mein Quellcode:
Code:
<?xml version="1.0" encoding="UTF-8"?>
 <root>
  <node>
    <vara>Mein var a</vara>
    <varb>12345</varb>
  </node>
 </root>
__________________
Say no to Internet Explorer 6!

Geändert von Circushund (04-01-2007 um 05:43 Uhr)
Circushund ist offline   Mit Zitat antworten
Alt 04-01-2007, 07:24   #14 (permalink)
Neuer User
 
Benutzerbild von OliSchwarz
 
Registriert seit: Dec 2006
Ort: Stuttgart
Beiträge: 28
weiss nicht mehr weiter :-(

Hallo, und ein frohes neues Jahr euch allen ...

ich habe einen Gästebuch-Film erstellt, der ein bestehendes Gästebuch zunächst einmal nur ausliest.

wow, das klappte auch fast auf Anhieb, wenn ich lokal direkt unter "Vorschau für Veröffentlichung" den Film gestartet habe.

Ruf ich den Film lokal von der Festplatte auf, dann kommt eine Sicherheitswarnung: "Macromedia Flash Player hat einen möglicherweise unsicheren Vorgang gestoppt usw."

Stelle ich die Dateien (FIlm und html) online, geht gar nix, es wird wohl nix von Flash gesendet oder empfangen.

Warum gehts dann direkt, wie oben beschrieben??? Was ist hier anders?

Code:
var erstes:Number = 0;          // ab dem neuesten Eintrag lesen
var anzahl:Number = 10;        // zehn Enträge auslesen
var LoadVarObject = new LoadVars ();
	LoadVarObject.onLoad = function (loadSuccess){
  		if (loadSuccess == true){
			var i:Number = 0
			str.html = true;
			var ausgabe:Array = new Array();
			for (i = 0;i<10; i++) {
				ausgabe.push([eval("this.gb_"+i+"_id"),
						      eval("this.gb_"+i+"_name"),
						      eval("this.gb_"+i+"_mail"),
						      eval("this.gb_"+i+"_comment"),
						      eval("this.gb_"+i+"_hp"),
						      eval("this.gb_"+i+"_time")]);
			}
			for (i = 0;i<10; i++) {
                                //  str heisst mein dynamisches Textfeld
				str.htmlText += ausgabe[i][1]+" schrieb am "+ausgabe[i][5]+"<br /><br />";
			}
  		}

LoadVarObject.load ("http://einedomain.de/mysqltest/mysqltest2.php?nummer="+nummer+"&anzahl="+anzahl);
Gibt es vielleicht eine Art Sicherheitsanweisung, die ich entweder in meinen Flash-Film oder auf den Server, auf dem die Datenbank liegt, ablegen muss?
Verstehe einfach nicht, warum es direkt aus der Flash-Anwendung einwandfrei geht (ich greife hier mit obigem Code ja auch af eine Datenbank, die irgendwo online steht zu)

Bin dankbar für jede Hilfe.

Oli
OliSchwarz ist offline   Mit Zitat antworten
Alt 04-01-2007, 11:33   #15 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
@OliSchwarz: klick

@Circushund: Bisher hast Du, wie die Methode schon zu erkennen gibt Daten geladen. Wenn Du jetzt Daten senden möchtest, müsste die Methode ja, na wie müsste sie wohl heißen?

Richtig, send()

Da die send - Methode, egal ob LoadVars oder. XML, ein neues Browserfenster öffnet, bedienen wir uns der erweiterten Methode sendAndLoad(). Diese hat den Vorteil, dass sich a) kein neues Browserfenster öffnet, und b) du von deinem PHP-Script sofort ein Feedback an die Flashanwendung senden kannst.

Um es für den Anfang einfacher zu halten, machen wir das alles mit einem Objekt.

flash
PHP-Code:

var lv LoadVars = new LoadVars ()
lv.onLoad = function ( success Boolean )
{
    if ( 
success )
    {
        
trace this.callback)
    }
    else
    {
        
trace 'Error' )
    }
}

lv.new_var_a_value 'hello'
lv.new_var_b_value 'world'

lv.sendAndLoad'http://www.dwienand.de/update.php'lv'POST' 
file:update.php
PHP-Code:
<?php

    $host 
"localhost";
    
$username "";
    
$pw "";
    
$database "dwienand";
    
$table "Baum";

    
mysql_connect($host$username$pw);
    
mysql_select_db($database);
    
    
/** 
     * hier fangen wir die von flash, per post gesendetet daten auf
     * und weisen sie unseren php variablen zu
     */
    
$vara $_POST['new_var_a_value'];
    
$varb $_POST['new_var_b_value'];
    
    
$query mysql_query("UPDATE $table SET vara='$vara', varb='$varb';");
    
    if ( 
$query )
    {
        echo 
"&callback=erfolgreich";
    }
    else
    {
        echo 
"&callback=fehler";
    }
    
?>
Rezitat messingfeld: Die Skripte sind nur einfache Beispiele und sollten nicht in einer produktiven Umgebung eingesetz werden.
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.

Geändert von shorty (04-01-2007 um 11:58 Uhr)
shorty ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 00:27 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele