MyBB.de Forum
Doppelt mit WHERE abfragen? - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Sonstiges (https://www.mybb.de/forum/forum-1.html)
+--- Forum: Programmierung (https://www.mybb.de/forum/forum-32.html)
+--- Thema: Doppelt mit WHERE abfragen? (/thread-28876.html)



Doppelt mit WHERE abfragen? - Yasilein - 17.12.2013

Hallo,

gerade bin ich wenig am herum php-en und stehe kurz vor der Lösung, scheitere aber gerade. Mit der einfachen Abfrage wie der hier klappt es ganz normal

Code:
WHERE uf.fid19 = 'weiblich'

Feld 19 ist ein Profilfeld, in dem man die Auswahl zwischen männlich und weiblich hat. Nun möchte ich aber, dass 'männlich' in diesem Fall ebenfalls dabei ist, also dass ein anderes angezeigt wird, egal was man in Feld 19 gewählt hat . Diese Codes funktionieren allerdings beide nicht:

Code:
WHERE uf.fid19 = 'weiblich, männlich'
Code:
WHERE uf.fid19 = 'weiblich', 'männlich'

Wie muss ich denn das eingeben? Shy
Danke im Voraus Smile


RE: Doppelt mit WHERE abfragen? - StefanT - 17.12.2013

Code:
WHERE uf.fid19 IN('weiblich',  'männlich')



RE: Doppelt mit WHERE abfragen? - Yasilein - 17.12.2013

Huhu,

danke, das hat leider nicht funktioniert. Der männliche Teil erscheint nicht, der weibliche wohl. Das komplette Teil sieht so aus:

Code:
$result = $db->query("SELECT u.uid, u.username, uf.fid23, uf.fid19
                      FROM ".TABLE_PREFIX."users u
                      LEFT JOIN ".TABLE_PREFIX."userfields uf
                      ON u.uid = uf.ufid
                      WHERE uf.fid19 IN('weiblich', 'männlich')
                      AND(uf.fid23
                      LIKE 'W%' OR uf.fid23
                      LIKE 'X%' OR uf.fid23
                      LIKE 'Y%' OR uf.fid23
                                          LIKE 'Z%')
                      ORDER BY uf.fid23 ASC");
while($row = $db->fetch_array($result)) {
      $userid = $row['uid'];
      $username = "<a href=\"member.php?action=profile&uid=".$row[uid]."\" target=_blank>$row[username]</a>";
      $nachname = $row['fid23'];
eval("\$nachnamen_wxyz .= \"".$templates->get("nachname_bit")."\";");    
}


Gibt es alternativ eine Möglichkeit, dass man die Abfrage für Feld 19 bei WHERE einfach rauslässt, so dass nur das andere Feld abgefragt wird und 19 praktisch irrelevant ist? Huh


RE: Doppelt mit WHERE abfragen? - StefanT - 17.12.2013

Klar kannst du die Abfrage ganz weg lassen, also:
Code:
$result = $db->query("SELECT u.uid, u.username, uf.fid23, uf.fid19
                      FROM ".TABLE_PREFIX."users u
                      LEFT JOIN ".TABLE_PREFIX."userfields uf
                      ON u.uid = uf.ufid
                      WHERE (uf.fid23
                      LIKE 'W%' OR uf.fid23
                      LIKE 'X%' OR uf.fid23
                      LIKE 'Y%' OR uf.fid23
                                          LIKE 'Z%')
                      ORDER BY uf.fid23 ASC");
while($row = $db->fetch_array($result)) {
      $userid = $row['uid'];
      $username = "<a href=\"member.php?action=profile&uid=".$row[uid]."\" target=_blank>$row[username]</a>";
      $nachname = $row['fid23'];
eval("\$nachnamen_wxyz .= \"".$templates->get("nachname_bit")."\";");    
}



RE: Doppelt mit WHERE abfragen? - Yasilein - 17.12.2013

Super, danke, das klappt! Smile