Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
MySQL Abfrage mit Array-Fkt.?
#1
Hallo zusammen,

ich hätte eine Frage zu einer MySQL-Abfrage:
Code:
$query = $db->query("
SELECT * FROM `".TABLE_PREFIX."threads`
WHERE `replies` < 300
AND `fid`!= X1
AND `fid`!= X2
AND `fid`!= X3
AND `fid`!= X4
AND `fid`!= X5
AND `tid`!= Y1
ORDER BY `lastpost` DESC LIMIT 40");

Die Liste der Ausnahmen, die ich in der Abfrage eingebaut habe kann u.U. noch wachsen und ich frage mich, ob man die Werte vorweg auch in ein Array packen kann, um die Array-Werte dann anschließend in die MySQL-Abfrage zu integrieren.
Ich schaffe das leider nicht. Wohl auch wegen meiner fehlenden Kenntnisse was MySQL angeht. Wink

Würde mich freuen, wenn mir jemand auf die Sprünge helfen kann. Smile
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren
#2
Hallo Jockl,

Kurz und knapp: Ja es ist möglich.
Siehe folgendes Beispiel:

PHP-Code:
/* Array mit zu versteckenden  Foren-IDs*/
$hide_fids = array(1345821);

$sql "";
$fids ="";

// erstelle einen String "1, 3, 4, 5, 8, 21"
foreach ($hide_fids as $fid) {
  if(
$fids$fids .= ",";
  
$fids .= $fid;


// setze SQL-Statement zusammen
$sql "SELECT * FROM `".TABLE_PREFIX."threads` WHERE `replies` < 300 AND fid NOT IN ($fids) ORDER BY `lastpost` DESC LIMIT 40";

$query $db->query($sql); 


Mfg Garlant
Ich gebe keinen Support per Messenger oder PN!
Zitieren
#3
Mögliche Lösung:
PHP-Code:
$exceptions = array(
    
"X1" => "fid",
    
"X2" => "fid",
    
"X3" => "fid",
    
"X4" => "fid",
    
"X5" => "fid",
    
"Y1" => "tid"
);

foreach(
$exceptions as $exception => $value) {
    
$conditions .= " AND ".$value."!='".$exception."'";
}

$query $db->query("SELECT * FROM `".TABLE_PREFIX."threads` WHERE `replies` < 300 ".$conditions." ORDER BY `lastpost` DESC LIMIT 40"); 

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#4
foreach....*patsch* Smile

...eine Funktion, mit der ich immer noch auf Kriegsfuß stehe.

Super, vielen Dank Euch beiden!!!!!

@Garlant: bei dem $sql-Statement fehlt ein ";" und bei foreach muss noch ne Klammer rum.

Beide Vorschläge klappen einwandfrei !!!! Big Grin
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  [Anfänger] Array in mehrere varialben Schreiben Speil 5 2.284 15.06.2012, 14:07
Letzter Beitrag: Speil
  mysql-abfrage mewking 6 2.291 26.09.2009, 16:17
Letzter Beitrag: mewking
  [MySQL] Abfrage über 2 Tabellen Zwoetzen 4 2.360 20.06.2008, 17:50
Letzter Beitrag: Zwoetzen
  PHP Datei mit MySQL Abfrage lexington 2 1.930 30.03.2007, 06:53
Letzter Beitrag: lexington