php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.02.2009, 23:18  
Neuer Benutzer
 
Registriert seit: 01.02.2009
Beiträge: 4
DonPatricio befindet sich auf einem aufstrebenden Ast
Standard ORDER BY (2 Queries)

Hallo,
Folgendes Problem:
Ich habe zwei php queries die daten aus einer db holen und in einem array abspeichern. In meinem Beispiel:

PHP-Code:
$status21 mysql_query ("SELECT * from status_message where Username = '$status14[friend_name]';") or die ("13");

$status22 mysql_query ("SELECT * from status_message where Username = '$status16[own_name]';") or die ("13"); 
Beide Queries werden Daten von der selben tabelle ausgeben.

Logischer weise kann ich die erste Query ordnen (ORDER BY time ASC oder DESC) und das selbe bei der zweiten machen. Aber wie kann ich beide Queries ordnen? DAs heist ich wurde gerne die gesamten ausgaben von beiden queries ordnen.
DonPatricio ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 01.02.2009, 23:36  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Indem du nur eine Abfrage machst??? Du kannst die beiden WHERE Klauseln ja zu einer einzigen mit OR verknüpfen.
Flor1an ist offline  
Alt 02.02.2009, 00:41  
Neuer Benutzer
 
Registriert seit: 01.02.2009
Beiträge: 4
DonPatricio befindet sich auf einem aufstrebenden Ast
Standard

Ich kann es leider nicht mit OR machen, da mein Script so aussieht:

PHP-Code:
$status13 mysql_query ("SELECT * from friends_real where own_name = '$username';") or die ("13");

$status15 mysql_query ("SELECT * from friends_real where friend_name = '$username';") or die ("13");


        while (
$status14 mysql_fetch_assoc ($status13))

        {

                
$status21 mysql_query ("SELECT * from status_message where Username = '$status14[friend_name]';") or die ("13");
        


                while (
$status30 mysql_fetch_assoc($status21))
                {
                echo 
$status30[Username] . ":&nbsp;" $status30[normal_status] . "&nbsp;<br>";

                }        

    


        }






        while (
$status16 mysql_fetch_assoc ($status15))

        {
                
$status22 mysql_query ("SELECT * from status_message where Username = '$status16[own_name]';") or die ("13");



                while (
$status31 mysql_fetch_assoc($status22))
                {
                echo 
$status31[Username] . ":&nbsp;" $status31[normal_status] . "&nbsp;<br>";

                }



        } 
DonPatricio ist offline  
Alt 02.02.2009, 00:48  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Naja, mit etwas Gehirnschmalz kann man das schon kombinieren. Wenn man nicht vorher in Anbetracht der ganzen Status'se durchgedreht ist Anders ordnen kannst Du ohnehin nicht, weil Du ja alles beim Auslesen gleich ausgibst.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 02.02.2009, 00:50  
Neuer Benutzer
 
Registriert seit: 01.02.2009
Beiträge: 4
DonPatricio befindet sich auf einem aufstrebenden Ast
Standard

Stimmt, irgendwie sollte es gehen. Kannst du mir vielleicht irgendwelche tipps geben?
DonPatricio ist offline  
Alt 02.02.2009, 00:56  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ja, einen wichtigen.
Da vorher die Bedingungen schon durch die verschiedenen Abfrage getrennt waren, mußt Du bei einem OR ein zusätzliches Feld erzeugen, das jetzt die Bedingung transportiert. Dazu ein Pseudocode Beispiel:

Code:
SELECT * from Namen WHERE Vorname = 'Marianne'
Auslesen
  Ausgaben
SELECT * from Namen WHERE Vorname = 'Karl-Heinz'
Auslesen
  Ausgaben
Du kannst Dir sicher sein, dass oben nur Mariannes und unten nur Karl-Heinze stehen. Zum Kombinieren kannst Du einen der folgenden Ansätze wählen:

Code:
SELECT * , 
       IF(Vorname = 'Marianne'   , 1 , 0) AS is_Marianne  ,
       IF(Vorname = 'Karl-Heinz' , 1 , 0) AS is_KarlHeinz ,
FROM   Namen 
WHERE  Vorname = 'Marianne' OR Vorname = 'Karl-Heinz'
Auslesen
  if (1==is_Marianne)
      Ausgaben
  if (1==is_KarlHeinz)
    Ausgaben
Code:
SELECT * , 
       IF(Vorname = 'Marianne'   , 1 , 0) AS is_Marianne
FROM   Namen 
WHERE  Vorname = 'Marianne' OR Vorname = 'Karl-Heinz'
Auslesen
  if (1==is_Marianne)
    Ausgaben
  else
    Ausgaben
Ich denke, mit diesem Verfahren solltest Du die Nuss knacken können.
Eine reine PHP Lösung ist natürlich auch möglich: Der erneute Namensvergleich beim Auslesen.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--

Geändert von nikosch (02.02.2009 um 01:01 Uhr).
nikosch ist offline  
Alt 02.02.2009, 01:31  
Neuer Benutzer
 
Registriert seit: 01.02.2009
Beiträge: 4
DonPatricio befindet sich auf einem aufstrebenden Ast
Standard

Danke. Ich werd jetz einiges zum Nachdenken in den kommenden Tagen haben ...
DonPatricio ist offline  
 


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
[Erledigt] Subquery mit ORDER BY ohne Ergebnis stefanjann Datenbanken 8 11.12.2008 10:35
[Erledigt] ORDER BY 'Datum' DESC Quest15041983 PHP Tipps 2008 5 25.11.2008 20:52
MySQL: ORDER nach mehreren Kriterien? / Sessions etc StrikeDaMic Datenbanken 18 16.10.2008 09:30
Abfrage mit count, order by, group by...und Probleme BartTheDevil89 Datenbanken 2 15.06.2008 13:34
sql order by Joerg80 PHP Tipps 2008 17 28.03.2008 12:22
ORDER BY im Subquery cycap Datenbanken 12 31.10.2007 20:31
Abfrage = "SELECT * FROM links ORDER BY id" Taktaky PHP Tipps 2008 2 22.08.2007 14:37
Problem mit Ausgabe bzw. Abfrage mit ORDER BY mayer Datenbanken 7 02.07.2006 21:45
order by erweiterung . frage zum verst�ndnis... Promaetheus Datenbanken 5 07.12.2005 14:26
wie viel queries pro seite zapate PHP Tipps 2005-2 10 22.07.2005 23:02
[Erledigt] ORDER BY bei zusammengesetzten Abfragen Datenbanken 5 04.05.2005 09:39
SELECT tbl.col AS a ORDER BY tbl.a versionsabhängig? axo Datenbanken 3 15.04.2005 15:50
Syntaxfehler, wohin kommt ORDER BY PHP Tipps 2005 7 12.02.2005 13:21
ORDER BY, 2 Verschiedene Felder Datenbanken 1 05.10.2004 14:27
DISTINCT oder ORDER BY unknownsoul Datenbanken 5 20.08.2004 12:12

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
2 queries php, order by 2 ausgaben, \order by\ 2 abfragen

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:13 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