w3concepts.alist.mod4 - Artikel werden doppelt gelistet

Gesperrt
tsommer
Beiträge: 12
Registriert: So 11. Jul 2004, 17:11
Wohnort: Haimhausen
Kontaktdaten:

w3concepts.alist.mod4 - Artikel werden doppelt gelistet

Beitrag von tsommer » So 11. Jul 2004, 18:18

Hallo zusammen,

ich möchte das Modul "alist.mod4" einsetzen, um bei einer Artikelliste auch die Unterkategorien anzuzeigen.
Irgendetwas läuft jedoch schief, denn ich bekomme in der Liste jeden Artikel doppelt angezeigt.
Wenn ich zum Test das Modul "alist.mod3" einsetze werden alle Artikel nur einmal angezeigt.
Ich bin am verzweifeln, denn ich konnte den Fehler im Modul einfach nicht finden.
Hat jemand hierzu eine Idee oder vielleicht das selbe Problem?

Vielen Dank für eure Hilfe,

Thomas Sommer

emergence
Beiträge: 10641
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Fr 23. Jul 2004, 06:46

da sollte sich kummer zu wort melden da ich das modul nicht kenne..
*** make your own tools (wishlist :: thx)

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer » Fr 23. Jul 2004, 08:03

da bin ich auch schon. sorry for the delay.

ich kann allerdings das problem nicht ohne weiteres reproduzieren. am besten du nimmst mal den query am anfang des moduls (den der ebene -2) und setzt ihn in phpmyadmin ab. dann poste hier mal das resultat. vielleicht sieht man dann etwas mehr.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

tsommer
Beiträge: 12
Registriert: So 11. Jul 2004, 17:11
Wohnort: Haimhausen
Kontaktdaten:

Beitrag von tsommer » Fr 23. Jul 2004, 10:07

Hallo Andreas,

leider bin ich mir nicht ganz sicher, welchen Teil der Abfrage ich über phpmyadmin testen soll.

Ich habe jetzt mal folende Abfrage gestartet:

Code: Alles auswählen

                SELECT f.name, e.pagetitle, c.idcat, d.idart, e.idartlang, e.created, DATE_FORMAT(e.created,'%d.%m.%y') AS erstellungsdatum
                FROM {$cfg['tab']['cat']} AS a,
                {$cfg['tab']['cat']} AS b,
                {$cfg['tab']['cat']} AS c
                LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat
                LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
		LEFT JOIN {$cfg['tab']['cat_lang']} AS f ON f.idcat = d.idcat
                WHERE
                    (
                        (
                            c.parentid = b.idcat
                            AND b.parentid = a.idcat
                        )
                        OR
                        (
                            c.idcat = b.idcat
                            AND b.parentid = a.idcat
                        )
                        OR
                        (
                            c.idcat = b.idcat
                            AND b.idcat = a.idcat
                        )
                    )
                    AND a.idcat = $categorie
                    AND e.online = 1
                    AND e.redirect = 0
                    AND e.external_redirect = 0
                    AND e.idlang = $lang
                    $nurstartartikel
                ORDER BY e.created DESC
                LIMIT $limit, $angezeigte_anzahl

ERGEBNIS:
MySQL meldet:
#1064 - You have an error in your SQL syntax near '[ 'tab'][ 'cat']} AS a, {$cfg[ 'tab'][ 'cat']} AS b, {$cfg[ 'tab'][ 'cat']} AS c' at line 2

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer » Fr 23. Jul 2004, 10:12

das wäre schon der richtige query. aber du musst alle variablen von php durch richtige werte ersetzen (aus einem artikel).

das betrifft alle auftreten von $ und geschweiften klammern.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

Zardust
Beiträge: 3
Registriert: Mi 11. Aug 2004, 15:03
Kontaktdaten:

Beitrag von Zardust » Mi 11. Aug 2004, 15:17

Bei mir ist der Fehler in der artlist.mod4 auch aufgetreten. Ich konnte den Fehler finden nur sind meine Kentnisse zu schwach um ihn schnell einmal selbst zu beheben.

Die Abfrage

Code: Alles auswählen

SELECT f.name, e.pagetitle, c.idcat, d.idart, e.idlang, e.idartlang, e.created, DATE_FORMAT( e.created, '%d.%m.%y' ) AS erstellungsdatum
FROM con_cat AS a, con_cat AS b, con_cat AS c
LEFT JOIN con_cat_art AS d ON c.idcat = d.idcat
LEFT JOIN con_art_lang AS e ON d.idart = e.idart
LEFT JOIN con_cat_lang AS f ON f.idcat = d.idcat
WHERE (
(
c.idcat = b.idcat AND b.idcat = a.idcat
)
) AND a.idcat = 113 AND e.online = 1 AND e.redirect = 0 AND e.external_redirect = 0 AND e.idlang = 1 LIMIT 0, 30 
ergibt folgendes

Code: Alles auswählen

name         pagetitle       idcat idart  idlang  idartlang   created  erstellungsdatum  
GALLERY      Stephansplatz    113   67      1        262    2004-08-10 14:15:00 10.08.04 
FOTOGALERIE  Stephansplatz    113   67      1        262    2004-08-10 14:15:00 10.08.04 
PHOTOGALLERY Stephansplatz    113   67      1        262    2004-08-10 14:15:00 10.08.04 
GALLERY      Stephansplatz    113   67      1        262    2004-08-10 14:15:00 10.08.04 
GALLERY      WCTE Lathi 2004  113   68      1        266    2004-08-11 10:18:22 11.08.04 
FOTOGALERIE  WCTE Lathi 2004  113   68      1        266    2004-08-11 10:18:22 11.08.04 
PHOTOGALLERY WCTE Lathi 2004  113   68      1        266    2004-08-11 10:18:22 11.08.04 
GALLERY      WCTE Lathi 2004  113   68      1        266    2004-08-11 10:18:22 11.08.04 
Ich habe in die Ausgabe noch "e.idlang" eingefügt. Ich verwende bei meiner Seite 4 Sprachen, bekomme aber bei dieser SQL-Syntax ein falsches Ergebnis bei "WHERE e.idlang = 1". In meinen Fall sind die Artikel nicht nur doppelt, sondern vierfach da.

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer » Mi 11. Aug 2004, 16:03

einfach nach SELECT ein DISTINCT einfügen sollte das problem lösen.

also: SELECT DISTINCT ...
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

Zardust
Beiträge: 3
Registriert: Mi 11. Aug 2004, 15:03
Kontaktdaten:

Beitrag von Zardust » Mi 11. Aug 2004, 16:13

Danke für die prompte Antwort, leider führt SELECT DISTINCT nicht zum gewünschten Ergebnis. Ich bekommen jetzt 3 anstatt der der zuvor 4 Einträge.

Hier noch das Ergebnis:

Code: Alles auswählen

name         pagetitle       idcat idart  idlang  idartlang   created  erstellungsdatum  
GALLERY      Stephansplatz    113   67      1        262    2004-08-10 14:15:00 10.08.04 
FOTOGALERIE  Stephansplatz    113   67      1        262    2004-08-10 14:15:00 10.08.04 
PHOTOGALLERY Stephansplatz    113   67      1        262    2004-08-10 14:15:00 10.08.04 
GALLERY      WCTE Lathi 2004  113   68      1        266    2004-08-11 10:18:22 11.08.04 
FOTOGALERIE  WCTE Lathi 2004  113   68      1        266    2004-08-11 10:18:22 11.08.04 
PHOTOGALLERY WCTE Lathi 2004  113   68      1        266    2004-08-11 10:18:22 11.08.04 


Zardust
Beiträge: 3
Registriert: Mi 11. Aug 2004, 15:03
Kontaktdaten:

Beitrag von Zardust » Mi 11. Aug 2004, 17:22

Ich konnte jetzt das Problem lösen.

Ich habe bei der WHERE eine Zeile mit AND f.idlang = $lang hinzugefügt habe. Danach war DISTINCT auch nicht mehr notwendig.

Gesperrt