php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 04.01.2009, 18:40  
Neuer Benutzer
 
Registriert seit: 21.10.2008
Beiträge: 13
parti02 befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] MySQL Abfrage

Hallo Leute,
habe hier 2 MySQL Abfragen.

Code:
$result = mysql_query("
                       SELECT
                              media.medium_id,
                              media.name AS media_name, 
                              vcodecs.vcodec_id, 
                              vcodecs.name AS vcodecs_name,
                              movies.*
                       FROM
                            movies
                            LEFT JOIN media USING (medium_id)
                            LEFT JOIN vcodecs USING (vcodec_id)

                       WHERE
                             movies.movie_id = $_GET[movie]");

while($row = mysql_fetch_object($result))
  {
  }

$result2 = mysql_query("
                        SELECT
                               languages.lang_id,
                               languages.name AS lang_name,
                               acodecs.acodec_id,
                               acodecs.name AS acodec_name,
                               achannels.achannel_id,
                               achannels.name AS achannel_name,
                               subformats.subformat_id,
                               subformats.name AS subformat_name,
                               movie_lang.*
                        FROM
                             movie_lang
                             LEFT JOIN languages USING (lang_id)
                             LEFT JOIN acodecs USING (acodec_id)
                             LEFT JOIN achannels USING (achannel_id)
                             LEFT JOIN subformats USING (subformat_id)

                        WHERE
                              movie_lang.movie_id = $_GET[movie]");

while($row2 = mysql_fetch_object($result2))
  {
  }
Im Augenblick sieht mein Code so aus, dass ich die 2te Abfrage innerhalb der while Schleife der ersten Abfrage ausführe, das finde ich aber unschön, einmal wird der Code sehr unübersichtlich und zum Anderen wird aus $row plötzlich $row2, bei $result das Gleiche.
Kann ich aus beiden Abfragen eine machen? Wie?

Gruß
Parti
parti02 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 04.01.2009, 18:48  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Zitat:
Zitat von parti02 Beitrag anzeigen
Im Augenblick sieht mein Code so aus, dass ich die 2te Abfrage innerhalb der while Schleife der ersten Abfrage ausführe
Dem Codeausschnitt zufolge tust Du das nicht
David ist offline   Mit Zitat antworten
Alt 05.01.2009, 01:05  
Neuer Benutzer
 
Registriert seit: 21.10.2008
Beiträge: 13
parti02 befindet sich auf einem aufstrebenden Ast
Standard

doch tue ich. Hab ich vieleicht ungünstig dargestellt.

Gruß
Parti
parti02 ist offline   Mit Zitat antworten
Alt 05.01.2009, 05:51  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Na dann zeig doch mal, was Du wirklich machst. Ich sehe in der zweiten Abfrage nicht mal eine Abhängigkeit zur ersten. Die sind beide nur abhängig von
Zitat:
movie_lang.movie_id = $_GET[movie]
David ist offline   Mit Zitat antworten
Alt 05.01.2009, 13:08  
Neuer Benutzer
 
Registriert seit: 21.10.2008
Beiträge: 13
parti02 befindet sich auf einem aufstrebenden Ast
Standard

Code:
$result = mysql_query("
                       SELECT
                              media.medium_id,
                              media.name AS media_name, 
                              vcodecs.vcodec_id, 
                              vcodecs.name AS vcodecs_name,
                              movies.*
                       FROM
                            movies
                            LEFT JOIN media USING (medium_id)
                            LEFT JOIN vcodecs USING (vcodec_id)

                       WHERE
                             movies.movie_id = $_GET[movie]");

while($row = mysql_fetch_object($result))
  {
  --hier sind 100 Zeilen Code um die Ergebnisse der Abfrage darzustellen--

  $result2 = mysql_query("
                          SELECT
                                 languages.lang_id,
                                 languages.name AS lang_name,
                                 acodecs.acodec_id,
                                 acodecs.name AS acodec_name,
                                 achannels.achannel_id,
                                 achannels.name AS achannel_name,
                                 subformats.subformat_id,
                                 subformats.name AS subformat_name,
                                 movie_lang.*
                          FROM
                               movie_lang
                               LEFT JOIN languages USING (lang_id)
                               LEFT JOIN acodecs USING (acodec_id)
                               LEFT JOIN achannels USING (achannel_id)
                               LEFT JOIN subformats USING (subformat_id)

                          WHERE
                                movie_lang.movie_id = $_GET[movie]");

  while($row2 = mysql_fetch_object($result2))
    {
    --30 Zeilen für die Ergebnisse der 2ten Abfrage--
    }
  --30 Zeilen für die restlichen Ergebnisse der 1ten Abfrage--
  }
So wird es hoffentlich etwas deutlicher.
Finde es wirklich unübersichtlich, ich brauche so eine Abfrage auch an verschiedenen Stellen im Quellcode, wäre wirklich praktischer wenn man EINE einheitliche Abfrage hätte.
Ich weiß, außer der movie_id gibt es nicht wirklich Gemeinsamkeiten, außer dass die Informationen aus den Tabellen zusammen gehören. Lässt es sich vieleicht trotzdem kombinieren?

Gruß
Parti
parti02 ist offline   Mit Zitat antworten
Alt 05.01.2009, 16:27  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Wenn sich die zweite Abfrage nicht auf die erste bezieht, bekommst Du doch in der "inneren" Schleife immer die selben Daten - für jeden Datensatz der äußeren Schleife.
Das ist wirklich so gewollt?
Dann kannst Du die Abfrage aus der inneren Schleife noch vor die äußere Abfrage setzen und einfach das Ergebnis immer wieder mit mysql_data_seek zurückspulen.
David ist offline   Mit Zitat antworten
Alt 05.01.2009, 17:17  
Neuer Benutzer
 
Registriert seit: 21.10.2008
Beiträge: 13
parti02 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von David Beitrag anzeigen
Wenn sich die zweite Abfrage nicht auf die erste bezieht, bekommst Du doch in der "inneren" Schleife immer die selben Daten - für jeden Datensatz der äußeren Schleife.
Das ist wirklich so gewollt?
Sry, leider verstehe ich nicht genau was du meinst, bin noch ein ziemlicher Anfänger was php und MySQL angeht.
Ich denke jedenfalls, dass es so gewollt ist.
Kurz zur Erklärung: Es gibt einen Film in der Datenbank mit einer eindeutigen movie_id. In der Tabelle movies befinden sich jede Menge Infos zu diesem Film (movie_id) und in der Tabelle movie_lang befinden sich halt alle Infos zu der movie_id, die irgendwas mit Sprache (Audio Codec, Untertitel usw.) zu tun haben.
Die zweite Abfrage bezieht sich in soweit auf die Erste, dass die movie_id gleich ist. Ich möchte alle Informationen die es zu einer movie_id gibt anzeigen.

Zitat:
Zitat von David Beitrag anzeigen
Dann kannst Du die Abfrage aus der inneren Schleife noch vor die äußere Abfrage setzen und einfach das Ergebnis immer wieder mit mysql_data_seek zurückspulen.
Weiß zwar leider auch nicht genau wie das gemeint ist, hört sich aber auch nach 2 Abfragen und 2 Schleifen an.

Gruß
Parti
parti02 ist offline   Mit Zitat antworten
Alt 05.01.2009, 18:28  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Ah, und Du bekommst pro Abfrage auch nur einen Datensatz zurück? (Was soviel heißt wie: Du brauchst dafür gar keine keine Schleifen?)
David ist offline   Mit Zitat antworten
Alt 07.01.2009, 19:19  
Neuer Benutzer
 
Registriert seit: 21.10.2008
Beiträge: 13
parti02 befindet sich auf einem aufstrebenden Ast
Standard

Stand zwar so nicht in meinem PHP-Tutorial , aber funktioniert prima.
Vielen Dank.

Gruß
Parti
parti02 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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

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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
MySQL - Fehler in einfacher Abfrage oden Datenbanken 11 03.01.2009 20:03
MySQL Abfrage Problem mit Where parti02 Datenbanken 14 23.10.2008 14:52
MySQL Abfrage von Ver. 5 für Ver 3. des MySQL Servers FireFIghter Datenbanken 3 02.02.2007 17:18
Datum bezogene mysql abfrage ApfeL Datenbanken 5 22.10.2006 16:03
MySQL Abfrage macht Seite langsam Datenbanken 11 19.10.2006 19:38
MySQL Abfrage Von / Bis andrew22 Datenbanken 1 02.10.2006 11:04
MySQL - Abfrage: Unterschiedliche Ergebnisse aus PHP/manuell horstenpeter Datenbanken 3 16.07.2006 13:22
mysql abfrage in Schleife havok PHP Tipps 2006 6 09.05.2006 08:39
Automatischer Logout per Mysql Abfrage ? PHP Tipps 2005-2 4 21.10.2005 11:09
[Erledigt] mysql abfrage über 4 Tabelle - bis 3 geht, bei der 4. habert Datenbanken 2 08.09.2005 11:59
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
variable in mysql abfrage djma PHP Tipps 2005 5 24.04.2005 11:09
[Erledigt] MYSQL Abfrage (mit Optimierter Datenbank) -> PhP Datenbanken 2 02.03.2005 18:50
varible mysql abfrage abgefangen in switch function PHP Tipps 2005 1 01.03.2005 18:55
[Erledigt] mysql Abfrage Datenbanken 5 18.06.2004 14:16

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql abfrage, mysql_fetch_object zurückspulen, my sql, abfragen, left join unübersichtlich, mysql abfrage innherhalb funktion php, mysql query in php quellcode

Alle Zeitangaben in WEZ +2. Es ist jetzt 04:07 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum