Zurück   Flashforum > Flash und Server > PHP und MySQL

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 14-09-2011, 21:44   #1 (permalink)
A..
PostTraum
 
Registriert seit: Apr 2003
Beiträge: 300
2.te While-Schleife für Spaltenwert von Tabelle1 für Tabelle2

Hi,

komplizerte als es eigenltich ist.

Ich habe eine Tabelle die heißt 'release' und eine die 'songs' heißt.

In 'releases' gibt es den Wert Release-Nummer, welche auch in Tabelle 'songs' bei jeden Songs dabeisteht, welche die Zusammengehörigkeit zeigt. Im Sinne von: Welchen Song auf welchem Album.

Jetzt will ich daraus ein XML node erstellen. Das wie folgt aussieht:
PHP-Code:
<audio datum="" ituneslink ="" releasenummer="14" titel="" typ="single" preimage="">
<
titel><![CDATA[]]></titel>
<
artist><![CDATA[]]></artist>
<
songs>
    <
song previewlink="" titel="" playtime="" video="">
        <
artist><![CDATA[]]></artist>
    </
song>
    <
song previewlink="" titel="" playtime="" video="">
        <
artist><![CDATA[]]></artist>
    </
song>
</
songs>
</
audio
Und ich möchte die Daten am Anfang in Flash laden. Also, keine weiterer Datenbankrequest mit versenden der Release-Nummer an die Songs-Tabelle aus Flash heraus.

Den Part für das Release selbst habe ich schon erstellt. (Hab die Ansicht mal stark gekürzt da es mir um die While-Schleife für die Songs geht.)
PHP-Code:
<?php
include("dbconnect.php");
$abfrage "SELECT * FROM `releases` LIMIT 0 ,100";
$ergebnis mysql_query($abfrage);
while (
$row=mysql_fetch_object($ergebnis)) 
    { 
    echo 
"
    <audio id=\"" 
$row->id "\" 
            datum=\"" 
utf8_encode ($row->datum) . "\" 
            releasenummer=\"" 
utf8_encode ($row->tp_nr) . "\" 
            titel=\"" 
utf8_encode ($row->tp_name) . "\" 
            typ=\"" 
utf8_encode ($row->tp_art) . "\" 
            preimage=\"" 
utf8_encode ($row->tp_image) . "\" 
            imageb=\"" 
utf8_encode ($row->tp_imageb) . "\">
            <songs>
            // Wie bau ich hier die schleife für die Songabfrage ein? 
            // Solange 'tp_nr' aus Tabelle 'songs' in 'tp_nr' von obigen $row-While Ergebnis zutrifft.
            // while ($row2->tp_nr == $row->tp_nr) { } <- so in der Art?
            <song     previewlink=\"" 
utf8_encode ($row->song_itunes) . "\" 
                    titel=\"" 
utf8_encode ($row->song_name) . "\" 
                    playtime=\"" 
utf8_encode ($row->song_duration) . "\" 
                    video=\"" 
utf8_encode ($row->VIDEO) . "\"></song>
        </songs>
</audio>"
;
};
?>
Kann man an die Stelle den Überhaupt ne While richtig einbauen? und soll ich dann oben $abfrage2 und $ergebnis2 für die Songs'tabelle' erstellen? Oder geht das mit Join? Hmmm

tut mir leid wenn ich frage aber bin ziemlich neu auf dem Gebiet.

Trotzdem vielen Danke
A..
A.. ist offline   Mit Zitat antworten
Alt 14-09-2011, 22:24   #2 (permalink)
A..
PostTraum
 
Registriert seit: Apr 2003
Beiträge: 300
ich habs gelöst weiss aber nicht wie es besser geht

also, ich hab mal mein wissen angewandt, und soweit passt das ergebnis.

Aber geht das auch eleganter? Performanter?

PHP-Code:
<?php
include("dbconnect.php");
$abfrage "SELECT * FROM `releases` LIMIT 0 ,100";
$ergebnis mysql_query($abfrage);
while (
$row=mysql_fetch_object($ergebnis)) 
    { 
    echo 
"<audio id=\"" $row->id "\" 
    datum=\"" 
utf8_encode ($row->datum) . "\" 
    releasenummer=\"" 
utf8_encode ($row->tp_nr) . "\" 
    titel=\"" 
utf8_encode ($row->tp_name) . "\" 
    typ=\"" 
utf8_encode ($row->tp_art) . "\" 
    preimage=\"" 
utf8_encode ($row->tp_image) . "\" 
    imageb=\"" 
utf8_encode ($row->tp_imageb) . "\">\n    
    <songs>\n"
;
    
$abfragezwei "SELECT * FROM `songs` WHERE song_tp_nr='" $row->tp_nr "'";
    
$ergebniszwei mysql_query($abfragezwei);
    while (
$row=mysql_fetch_object($ergebniszwei)) 
    {
    echo 
"<song previewlink=\"" utf8_encode ($row->song_itunes) . "\" 
    titel=\"" 
utf8_encode ($row->song_name) . "\" 
    playtime=\"" 
utf8_encode ($row->song_duration) . "\" 
    video=\"" 
utf8_encode ($row->VIDEO) . "\">\n        </song>\n";
    };
    echo 
"</songs>\n</audio>";
    };
?>
Wie gesagt ich werde es jetzt mal eine weiteres Release und dessen Songs testen. Mal sehen ob ich richtig lage

Wenn jemand einen Tipp hat ... Immer her damit.

gruss
A..
A.. ist offline   Mit Zitat antworten
Alt 15-09-2011, 08:19   #3 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
Nein eine Datenbankanfrage in einer Schleif zu machen ist keine gut Idee. Je nach Grösse deiner Datenmenge ( in deinem Fall sogar bis zu 100 Durchläufen ) haut das zu sehr auf die Performance. Daher wenn möglich alles mit einem Query holen:

PHP-Code:
$query mysql_query"SELECT t1.*, t2.* FROM `releases` AS t1 LEFT JOIN `songs` AS t2 ON ( t1.`tp_nr` = t2.`song_tp_nr` ) LIMIT 100" ) or die( mysql_error() );
$temp_tp_nr 0;

while (
$row=mysql_fetch_object($ergebnis))  
    {
    if( 
$row->tp_nr != $temp_tp_nr ){
  
        echo 
"<audio id=\"" $row->id "\"  
        datum=\"" 
utf8_encode ($row->datum) . "\"  
        releasenummer=\"" 
utf8_encode ($row->tp_nr) . "\"  
        titel=\"" 
utf8_encode ($row->tp_name) . "\"  
        typ=\"" 
utf8_encode ($row->tp_art) . "\"  
        preimage=\"" 
utf8_encode ($row->tp_image) . "\"  
        imageb=\"" 
utf8_encode ($row->tp_imageb) . "\">\n     
        <songs>\n"

        }
 
    echo 
"<song previewlink=\"" utf8_encode ($row->song_itunes) . "\"  
    titel=\"" 
utf8_encode ($row->song_name) . "\"  
    playtime=\"" 
utf8_encode ($row->song_duration) . "\"  
    video=\"" 
utf8_encode ($row->VIDEO) . "\">\n        </song>\n"
     
    if( 
$row->tp_nr != $temp_tp_nr ){

            echo 
"</songs>\n</audio>";
        }

    
$temp_tp_nr $row->tp_nr;
 

ungetestet
__________________
(\__/)
(='.'=)
(")_(")
Nightflyer 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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
for-schleife in for-schleife/variablen zusammenbauen stuertz ActionScript 1 2 26-01-2006 19:42
x-pos anordnen innerhalb schleife/array, onEnterFrame innerhlab schleife? andretti ActionScript 1 9 15-06-2005 09:26
attachMovie + if-schleife/for-schleife bestboy ActionScript 1 9 12-02-2005 18:54
for-schleife xlive ActionScript 1 2 05-04-2004 15:24
else if mit for-schleife xlive ActionScript 1 2 05-04-2004 14:10


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:06 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele