Hi,
ich möcht' mir in der Memberslist anzeigen lassen, ob ein User ein eigenes Album in der Coppermine Gallery hat. Dazu hab ich die Abfrage etwas umgebaut, und zwar so:
SELECT
uid,
name,
uname,
femail,
url,
user_msnm,
user_icq,
user_sexus,
user_famstatus,
COUNT (pid) AS pics
FROM
mx_users u
LEFT JOIN mx_cpg132_pictures cpg ON uid = owner_id
WHERE
uname != 'Anonymous'
AND user_stat=1
AND uname like 'A%'
GROUP BY
uname
ORDER BY
uname
ASC
LIMIT 0, 20
Im phpMyAdmin funktioniert sie wunderbar, wenn ich sie aber in der Memberslist starte, bekomme ich keine Ergebnisse. Sobald ich die Zeile COUNT (pid)... raus nehme gehts. Die is halt nur recht wichtig, oder wie kann ich sonst ermitteln, ob der User Bilder in seiner Gallerie hat..?
Hmmm ....
Versuch mal so rum ...
Zitat
SELECT
pid,
uname,
uid,
user_stat
FROM
mx_cpg132_pictures
LEFT JOIN mx_users ON owner_id=uid
WHERE
((uname != 'Anonymous')
AND (user_stat=1)
AND (like= 'A%'))
ORDER BY pid
ASC
LIMIT 0, 20
MfG
jubilee
Hey Jubilee,
nach langem rumprobieren heut Nachmittag hab ich einfach das Count() weggelassen und einfach nur die owner_id genommen. Is nicht sauber, geht aber auch :)
Versteh ich deine Abfrage falsch oder würden dann nur die User ausgegeben werden, die auch ein Bild in der Galerie haben?
Dass in der normalen Liste ein Foto-Icon nur angezeigt wird, wenn ein Bild vorhanden ist, funktioniert wunderbar.
Ich verzweifle grade an der Stufe zwei der Abfrage. Und zwar möchte ich jetzt nach dem Feld owner_id selektieren, so wie auch nach femail oder url. Hier wieder das gleiche, im phpMyAdmin funktioniert es, im System nicht.
Die Abfrage sieht ca. so aus:
SELECT
uid,
name,
uname,
femail,
url,
user_msnm,
user_icq,
user_sexus,
user_famstatus,
owner_id
FROM
mx_users u
LEFT JOIN mx_cpg132_pictures cpg ON uid = owner_id
WHERE
uname != 'Anonymous'
AND user_stat=1
AND uname like 'A%'
AND owner_id <>' '
GROUP BY
uid
ORDER BY
uname
ASC
LIMIT 0, 20
bzw. im Script so:
$select = "SELECT
uid,
name,
uname,
femail,
url,
user_msnm,
user_icq,
user_sexus,
user_famstatus,
owner_id
FROM ${user_prefix}_users u
LEFT JOIN ${prefix}_cpg132_pictures cpg ON uid = owner_id "; //select our data
$where = " WHERE uname != 'Anonymous' AND user_stat=1 ";
if ($sortby != "user_sg") {
if ( ( $letter != "Other" ) AND ( $letter != "All" ) ) { // are we listing all or "other" ?
$where .= "AND uname like '".$letter."%' AND $sortby <>''"; // I guess we are not..
} else if ( ( $letter == "Other" ) AND ( $letter != "All" ) ) { // But other is numbers ?
$where .= "AND uname REGEXP '^\[1-9]' AND $sortby <>'' ";
} else { // or we are unknown or all..
$where .= "AND $sortby <>''"; // this is to get rid of anoying "undefinied variable" message
}
}
Das "AND owner_id <>' ' " hab ich eingefügt, damit nur die User angezeigt werden, die auch Daten hinterlegt haben. Bei allen bereits im Standard enthaltenen Selektionen (Username, Name, Email, URL) geht das auch wunderbar, nur bei den Fotos kommen dann keine Einträge.
Ich versteh den Grund einfach nicht. Hab -zig Selektionsvarianten probiert, nix funktioniert im Script, aber alles im myAdmin... ???
Einen schönen Abend :)
Martin
Zitatnur bei den Fotos kommen dann keine Einträge.
Ähhh da ist im select ja auch gar kein Feld aus der Coppermine-Tabelle drinne. Was soll er Dir dann daraus auch anzeigen ??
MfG
jubilee
doch, doch. Die owner_id kommt ja aus der Coppermine Tabelle...
Hallo !
Mach mal bitte folgendes :
ZitatAND owner_id <>0
Da es sich um einen numerischen Wert handelt, der immer als Standard mit 0 belegt ist, wird <>' ' nix bringen ...
Evt löst das das Problem ....
MfG
jubilee
Danke!
Probier ich aus, sobald ich mal wieder daheim bin... ;)