SQL-Abfrage

Alles, was nicht in die anderen Foren passt, kannst du hier loswerden.
Antworten
joesch
Beiträge: 683
Registriert: 22. Mai 2006, 14:40
Kontaktdaten:

SQL-Abfrage

Beitrag von joesch »

Guten Abend zusammen!

Eine Frage zu den SQL-Abfragen: Wie kann ich möglichst effektiv in der profile_photo_show ein von mir angelegtes Profilfeld auf dessen Inhalt abfragen und auswerten? Es handelt sich dabei um ein Ja/Nein-Feld mit der Bezeichnung x0815.

Ich würde es gern in die vorhandene Abfrage

Code: Alles auswählen

$sql = "SELECT usr_photo
        FROM ".TBL_USERS."
        WHERE usr_id= {0}";
mit einbauen wollen.

Ziel soll es sein, dem hier schon mehrfach geäußerten Sicherheitsaspekt nach der Anzeige der Profilfotos durch ein Ja/Nein-Feld und "umhängen" von

Code: Alles auswählen

require("../../system/login_valid.php");
zu begegnen und so flexibler als mit einem festen Arry zu sein. Kurz: Ist im Profil des jeweiligen Mitglieds "der Haken gesetzt", wird das Foto auf selbstdefinierten Abfragen auch im nicht eingeloggten Zustand angezeigt, sonst nicht.

Vielen Dank schon mal vorab.

VG - Joesch
Benutzeravatar
fasse
Administrator
Beiträge: 6228
Registriert: 12. Nov 2005, 16:06

Beitrag von fasse »

Code: Alles auswählen

SELECT usr_photo, usd_value
  FROM ".TBL_USERS.", ". TBL_USER_DATA. ", ". TBL_USER_FIELDS. "
WHERE usd_usr_id = usr_id
    AND usd_usf_id = usf_id
    AND usf_name = 'dein_feldname'
    AND usr_id= {0}
In usd_value sollte dann 0 oder 1 stehen, je nachdem was der Benutzer gewählt hat.
joesch
Beiträge: 683
Registriert: 22. Mai 2006, 14:40
Kontaktdaten:

Beitrag von joesch »

Hallo Fasse,

vielen Dank! Werde es aber erst am WE mal zum Testen einbinden können.

VG Joesch
joesch
Beiträge: 683
Registriert: 22. Mai 2006, 14:40
Kontaktdaten:

Beitrag von joesch »

Hallo Fasse!

Ich möchte dich doch noch mal diesbezüglich um Hilfe bitten. Den Code habe ich jetzt wie folgt:

Code: Alles auswählen

$sql = "SELECT usr_photo, usd_value
  FROM ".TBL_USERS.", ". TBL_USER_DATA. ", ". TBL_USER_FIELDS. "
    WHERE usd_usr_id = usr_id
    AND usd_usf_id = usf_id
    AND usf_name = 'weblist'
    AND usr_id= {0}";

$sql = prepareSQL($sql, array($_GET["usr_id"]));        
$result_photo = mysql_query($sql, $g_adm_con);
$test = mysql_result($result_photo,0,"usd_value");

if($test == 1)
{
header("Content-Type: image/jpeg");
echo mysql_result($result_photo,0,"usr_photo");
}
Setze ich zur Kontrolle $test == 0, dann müssten doch eigentlich die Fotos zur Anzeige kommen, bei denen das Feld weblist nicht markiert ist. Bei mir tritt aber der Effekt auf, dass dann gar keine Fotos mehr gelistet werden. Gibt es eigentlich eine elegantere Variante, den Inhalt von weblist auszuwerten bzw. an eine Variable weiterzugeben?

Vielen Dank für deine Hilfe.

VG - Joesch

PS: Ich hoffe, der Weihnachtsmann war fleißig :D
Benutzeravatar
fasse
Administrator
Beiträge: 6228
Registriert: 12. Nov 2005, 16:06

Beitrag von fasse »

Funktioniert denn der andere Fall $test == 1 ?

Schau mal in deine Tabelle, ob im anderen Fall wirklich 0 da steht oder die Spalte dann leer ist.
joesch
Beiträge: 683
Registriert: 22. Mai 2006, 14:40
Kontaktdaten:

Beitrag von joesch »

Hallo Fasse!

Der Fall mit $test ==1 klappt.

Das Feld "weblist" ist ein ja/nein-Feld. Wenn ich direkt auf die Datenbank schaue, dann steht in der Tabelle adm_usr_data für die zum Feldnamen äquivalente usd_usf_id der Wert 1, wenn das Feld "angehakt" ist. Entferne ich den Eintrag im Profil von Admidio, dann ist in der Tabelle adm_usr_data zur entsprechenden usr_id und usd_usf_id kein Eintrag mehr vorhanden. Hake ich im Profil das Feld erneut an, dann wird in der Tabelle adm_usr_data unter neuer usd_id ein neuer Eintrag mit dem Wert 1 in der Spalte usd_value erzeugt.

Demzufolge kann das Ganze mit $test == 0 als Umkehrtest gar nicht klappen :oops: !? Wäre der Code dann auch bezüglich der Übergabe an $test so oK?

VG - Joesch
Benutzeravatar
fasse
Administrator
Beiträge: 6228
Registriert: 12. Nov 2005, 16:06

Beitrag von fasse »

Hi Joesch,

darauf zielte meine Frage ab :) Wenn nichts im Feld steht, kann es somit nicht klappen.

Dein Code ist also so auch ok, da das Bild nur angezeigt wird, wenn der Haken gesetzt ist.

Gruß
Fasse
joesch
Beiträge: 683
Registriert: 22. Mai 2006, 14:40
Kontaktdaten:

Beitrag von joesch »

Na dann, guten Rutsch ins neue Jahr! :D

VG - Joesch
Benutzeravatar
fasse
Administrator
Beiträge: 6228
Registriert: 12. Nov 2005, 16:06

Beitrag von fasse »

Dir auch :)
Antworten