tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
312
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    OllyP234 OllyP234 ist offline Rookie
    Registriert seit
    Jul 2007
    Beiträge
    9
    Hallo zusammen!

    Ich baue seit Wochen eine Komponente für Joomla 1.5. Den Adminbereich habe ich sehr gut hin bekommen.
    Jedoch habe ich jetzt Probleme bei einer Abfrage im Frontbereich.

    Dieses hier ist meine Abfrage die ich erst einmal zum testen so gemacht habe.
    PHP-Code:
    $result mysql_query "SELECT id FROM jos_switchbase WHERE ( cat = 'A' OR cat = 'B' OR cat = 'C' ) AND published='1'" );
    $c_abc mysql_num_rows $result );

    $result mysql_query "SELECT id FROM jos_switchbase WHERE ( cat = 'D' OR cat = 'E' OR cat = 'F' ) AND published='1'" );
    $c_def mysql_num_rows $result );

    $result mysql_query "SELECT id FROM jos_switchbase WHERE ( cat = 'G' OR cat = 'H' OR cat = 'I' ) AND published='1'" );
    $c_ghi mysql_num_rows $result );

    $result mysql_query "SELECT id FROM jos_switchbase WHERE ( cat = 'J' OR cat = 'K' OR cat = 'L' ) AND published='1'" );
    $c_jkl mysql_num_rows $result );

    $result mysql_query "SELECT id FROM jos_switchbase WHERE ( cat = 'M' OR cat = 'N' OR cat = 'O' ) AND published='1'" );
    $c_mno mysql_num_rows $result );

    $result mysql_query "SELECT id FROM jos_switchbase WHERE ( cat = 'P' OR cat = 'Q' OR cat = 'R' ) AND published='1'" );
    $c_pqr mysql_num_rows $result );

    $result mysql_query "SELECT id FROM jos_switchbase WHERE ( cat = 'S' OR cat = 'T' OR cat = 'U' ) AND published='1'" );
    $c_stu mysql_num_rows $result );

    $result mysql_query "SELECT id FROM jos_switchbase WHERE ( cat = 'V' OR cat = 'W' OR cat = 'X' ) AND published='1'" );
    $c_vwx mysql_num_rows $result );

    $result mysql_query "SELECT id FROM jos_switchbase WHERE ( cat = 'Y' OR cat = 'Z' ) AND published='1'" );
    $c_yz mysql_num_rows $result ); 
    Wie man ersehen kann, werden für die einzelnen Abfragen jeweils nur die Anzahl der Datensätze gegeben.
    Nun wollte ich dieses vereinfachen, so das ich nur ein Query benutzen kann. Habe mal eine Funktion geschrieben jedoch weiß
    ich nicht, wie ich dieses umsetzen soll.

    PHP-Code:
    function _loadData()
        {
            
            if (empty(
    $this->_data))
            {
                
    $query 'SELECT COUNT(id) FROM '.$this->_table_prefix.'switchbase'.
                
    ' WHERE ( cat = "M" OR cat = "N" OR cat = "O" ) AND published = 1';
                
    $this->_db->setQuery($query);
                
    $this->_data $this->_db->loadObject();
                return (boolean) 
    $this->_data;
            }
            return 
    true;
        } 
    Eventuell könnte mir einer von Euch helfen dieses irgendwie zu coden.

    Sag schon einmal Danke für Eure Antworten.

    Grüße

    Olly
     

  2. #2
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.805
    Blog-Einträge
    5
    Hallo Olly,

    du könntest folgende Abfrage verwenden:

    Code sql:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    SELECT (CASE WHEN cat IN ('A', 'B', 'C') THEN 'ABC'
                 WHEN cat IN ('D', 'E', 'F') THEN 'DEF'
                 WHEN cat IN ('G', 'H', 'I') THEN 'GHI'
                 WHEN cat IN ('J', 'K', 'L') THEN 'JKL'
                 WHEN cat IN ('M', 'N', 'O') THEN 'MNO'
                 WHEN cat IN ('P', 'Q', 'R') THEN 'PQR'
                 WHEN cat IN ('S', 'T', 'U') THEN 'STU'
                 WHEN cat IN ('V', 'W', 'X') THEN 'VWX'
                 WHEN cat IN ('Y', 'Z')      THEN 'YZ'
                 ELSE '*'
            END) AS catgroup,
            COUNT(*) AS c
    FROM jos_switchbase
    WHERE published = 1
    GROUP BY catgroup

    Grüße,
    Matthias
     
    „Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
    “For every complex problem, there is an answer that is short, simple and wrong.”
    “Pessimism is safe, but optimism is a lot faster!”


    Aktuelles Coding Quiz: #17 - Wörter kreuz und quer

  3. #3
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Moin,

    noch nen Vorschlag

    Code SQL:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    SELECT COUNT(*) AS ROWS ,
           ELT( CEIL( INSTR( '#ABC#DEF#GHI#JKL#MNO#PQR#STU#VWX#YZ', cat ) /4 ) , 
                'ABC', 
                'DEF', 
                'GHI', 
                'JKL', 
                'MNO', 
                'PQR', 
                'STU', 
                'VWX', 
                'YZ' ) AS catgroup
            FROM `jos_switchbase`
              WHERE published =1
                GROUP BY catgroup
     

  4. #4
    OllyP234 OllyP234 ist offline Rookie
    Registriert seit
    Jul 2007
    Beiträge
    9
    Hallo zusammen,
    ein Dank erstmal an Sven Mintel und Matthias Reitinger.
    Sorry das ich mich jetzt erst melde, ich hatte einen Unfall und lag über 14 Wochen im Krankenhaus.

    Ich glaube ich habe mich nicht ganz so gut ausgedrückt, was ich eigentlich haben möchte.
    Wie oben im ersten Beitrag steht habe ich eine mehrfache Abfrage. Dieses wollte ich
    umgehen mit einer Abfrage.

    Aussehen sollte es ungefähr so:

    "LINK A - B - C" Bisher gibt es 12 Einträge.

    "LINK D - E - F" Bisher gibt es 26 Einträge.

    Ausgabe bis

    "LINK Y - Z " Bisher gibt es 16 Einträge.


    Es sollte mir nur den Wert bei "Bisher gibt es 16 Einträge" ausgeben.

    Die Frage ist ob es mit nur einer Abfrage geht oder muss ich für jeden Bereich eine machen?

    Danke schon mal im voraus.

    Grüße

    Olly
     

  5. #5
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Oje, dann wünsche ich gute Besserung


    Diesen Wert(16) findest du in den Ergebnissen.

    Bei mir heisst er rows, bei Matthias c
     

Ähnliche Themen

  1. RGB Farbzuweisung vereinfachen
    Von Transporter im Forum CSS
    Antworten: 4
    Letzter Beitrag: 30.04.10, 15:12
  2. AS vereinfachen/zusammenfassen
    Von MathiasG im Forum Flash Plattform
    Antworten: 4
    Letzter Beitrag: 23.01.09, 19:56
  3. Statistikquery vereinfachen?
    Von Admi im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 19.11.07, 00:37
  4. If Konstrukt vereinfachen
    Von Steffen Giers im Forum PHP
    Antworten: 2
    Letzter Beitrag: 22.08.05, 23:47
  5. Vereinfachen?
    Von BMo im Forum Javascript & Ajax
    Antworten: 8
    Letzter Beitrag: 25.07.04, 20:24