Datenbankabfrage

Gesperrt
php0815
Beiträge: 373
Registriert: Mi 26. Okt 2005, 12:12
Wohnort: Schwarzwald
Kontaktdaten:

Datenbankabfrage

Beitrag von php0815 »

Ich weiß es gehört nicht ins Contenidoforum aber vieleicht kann sich das mal einer anschauen.

Habe eine Datenbank abfrage über mehrere Tabellen realiesiert sie funktioniert sieht aber nicht so schöhn aus.

Kann man die abfrage auch anders z.b mit "left join"machen.

Code: Alles auswählen

if($name1[0]==""){$kat1="null";}else{ $kat1 = $name1[0];}
if($name1[1]==""){$kat2="null";}else{ $kat2 = $name1[1];}
if($name1[2]==""){$kat3="null";}else{ $kat3 = $name1[2];}
if($name1[3]==""){$kat4="null";}else{ $kat4 = $name1[3];}
if($name1[4]==""){$kat5="null";}else{ $kat5 = $name1[4];}
if($name1[5]==""){$kat6="null";}else{ $kat6 = $name1[5];}
if($name1[6]==""){$kat7="null";}else{ $kat7 = $name1[6];}

      $db2 = new DB_Contenido;
      $sql =$sql = 'SELECT
          B.ku_nr,
          B.name,
          B.kuenstlername,
          B.vorname,
       	  B.strasse,
          B.plz,
          B.ort,
          B.tel,
          B.fax,
          B.mobil,
          B.email,
          B.www,
          C.beschreibung,
          C.personen,
          C.zielgruppe,
          C.publikumsgroese,
          C.programmdauer,
          C.preis,
          C.referenzen,
          (D.january +
           D.february +
           D.march +
           D.april +
           D.may +
           D.june +
           D.july +
           D.august +
           D.september +
           D.october +
           D.november +
           D.december)AS besuche
        FROM
          '.$cfg["tab"]["frontdatkategorie"].' AS A,
          '.$cfg["tab"]["frontdatadress"].' AS B,
          '.$cfg["tab"]["frontdatkuenstlerbesch"].' AS C,
          '.$cfg["tab"]["frontdatstatistic"].' AS D
        WHERE
          ((A.kat_id1 = "'.$kat1.'" OR
          A.kat_id2 = "'.$kat1.'" OR
          A.kat_id3 = "'.$kat1.'" OR
          A.kat_id4 = "'.$kat1.'" OR
          A.kat_id5 = "'.$kat1.'" OR
          A.kat_id6 = "'.$kat1.'" OR
          A.kat_id7 = "'.$kat1.'") OR
          (A.kat_id1 = "'.$kat2.'" OR
          A.kat_id2 = "'.$kat2.'" OR
          A.kat_id3 = "'.$kat2.'" OR
          A.kat_id4 = "'.$kat2.'" OR
          A.kat_id5 = "'.$kat2.'" OR
          A.kat_id6 = "'.$kat2.'" OR
          A.kat_id7 = "'.$kat2.'") OR
          (A.kat_id1 = "'.$kat3.'" OR
          A.kat_id2 = "'.$kat3.'" OR
          A.kat_id3 = "'.$kat3.'" OR
          A.kat_id4 = "'.$kat3.'" OR
          A.kat_id5 = "'.$kat3.'" OR
          A.kat_id6 = "'.$kat3.'" OR
          A.kat_id7 = "'.$kat3.'") OR
          (A.kat_id1 = "'.$kat4.'" OR
          A.kat_id2 = "'.$kat4.'" OR
          A.kat_id3 = "'.$kat4.'" OR
          A.kat_id4 = "'.$kat4.'" OR
          A.kat_id5 = "'.$kat4.'" OR
          A.kat_id6 = "'.$kat4.'" OR
          A.kat_id7 = "'.$kat4.'") OR
          (A.kat_id1 = "'.$kat5.'" OR
          A.kat_id2 = "'.$kat5.'" OR
          A.kat_id3 = "'.$kat5.'" OR
          A.kat_id4 = "'.$kat5.'" OR
          A.kat_id5 = "'.$kat5.'" OR
          A.kat_id6 = "'.$kat5.'" OR
          A.kat_id7 = "'.$kat5.'") OR
          (A.kat_id1 = "'.$kat6.'" OR
          A.kat_id2 = "'.$kat6.'" OR
          A.kat_id3 = "'.$kat6.'" OR
          A.kat_id4 = "'.$kat6.'" OR
          A.kat_id5 = "'.$kat6.'" OR
          A.kat_id6 = "'.$kat6.'" OR
          A.kat_id7 = "'.$kat6.'") OR
          (A.kat_id1 = "'.$kat7.'" OR
          A.kat_id2 = "'.$kat7.'" OR
          A.kat_id3 = "'.$kat7.'" OR
          A.kat_id4 = "'.$kat7.'" OR
          A.kat_id5 = "'.$kat7.'" OR
          A.kat_id6 = "'.$kat7.'" OR
          A.kat_id7 = "'.$kat7.'")) AND
          A.ku_nr = B.ku_nr AND
          B.ku_nr = C.ku_nr AND
          C.ku_nr = D.ku_nr
        ORDER BY besuche DESC
        LIMIT 0,10';
Kann man die Abfrage in eine Schleife setzen

Code: Alles auswählen

(A.kat_id1 = "'.$kat1.'" OR
          A.kat_id2 = "'.$kat1.'" OR
          A.kat_id3 = "'.$kat1.'" OR
          A.kat_id4 = "'.$kat1.'" OR
          A.kat_id5 = "'.$kat1.'" OR
          A.kat_id6 = "'.$kat1.'" OR
          A.kat_id7 = "'.$kat1.'") OR
          (A.kat_id1 = "'.$kat2.'" OR
          A.kat_id2 = "'.$kat2.'" OR
          A.kat_id3 = "'.$kat2.'" OR
          A.kat_id4 = "'.$kat2.'" OR
          A.kat_id5 = "'.$kat2.'" OR
          A.kat_id6 = "'.$kat2.'" OR
          A.kat_id7 = "'.$kat2.'") OR
Wenn niemand Antwortet bin ich auch nicht traurig es funzt ja.
Muß mich doch noch mehr mit PHP, MySql auseinandersetzten.
In der Ruhe liegt die Kraft den wer suchet der findet
Wer Rechtschreibfehler findet kann sie behalten, Codefehler können gemeldet werden.
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Da das sowieso alles OR ist kannst Du auch

A.kat_id1 IN ("'.$kat1.','.$kat2.','.$kat3.','.$kat4.','.$kat5.','.$kat6.','.$kat7.') OR
A.kat_id2 IN ("'.$kat1.','.$kat2.','.$kat3.','.$kat4.','.$kat5.','.$kat6.','.$kat7.') OR...

usw. schreiben.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
php0815
Beiträge: 373
Registriert: Mi 26. Okt 2005, 12:12
Wohnort: Schwarzwald
Kontaktdaten:

Beitrag von php0815 »

Danke für die Antwort.
War noch ein kleiner Fehler drinn funzt jetzt aber wunderbar.

Code: Alles auswählen

A.kat_id2 IN ("'.$kat1.'","'.$kat2.'","'.$kat3.'","'.$kat4.'","'.$kat5.'","'.$kat6.'","'.$kat7.'")
Es haben ein paar Anführungszeichen gefehlt.
In der Ruhe liegt die Kraft den wer suchet der findet
Wer Rechtschreibfehler findet kann sie behalten, Codefehler können gemeldet werden.
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Wollte Dich nur testen... :wink:

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
php0815
Beiträge: 373
Registriert: Mi 26. Okt 2005, 12:12
Wohnort: Schwarzwald
Kontaktdaten:

Beitrag von php0815 »

Danke für den Test
Habe echo $sql; eingefügt das eine " habe ich gesehen, entfernt, ging nicht, alle hinzugefügt, funzte.

Wie heist es so schöhn wer lesen kann ist im Vorteil. :lol:
In der Ruhe liegt die Kraft den wer suchet der findet
Wer Rechtschreibfehler findet kann sie behalten, Codefehler können gemeldet werden.
Gesperrt