select NAME where NAME = Array[bla..]

Guten Tag zusammen,
Ich wollte mal fragen wie ich in der WHERE Klausel von MySQL einen Array durchsuchen kann.
Sprich:

Ich hab eine Tabelle mit dem Feld Name und einen Array, in dem verschiedene Namen gespeichert sind.
Nun möchte ich über die mysql anfrage die Namen anzeigen lassen, die im Array drin stehen.

Ich hoffe, ihr könnt mir helfen.
Mit freundlichen Grüßen,
Georg
:)
 
Schau dir mal die IN Syntax an.. sieht dann so aus:

SQL:
SELECT * FROM `user` WHERE `name` IN ('norbert','diether','teddy','tommie')
 
Zuletzt bearbeitet von einem Moderator:
Dies habe ich bereits versucht und habe immer die Fehlermeldung erhalten uknown colum oder so... Also als ob mysql in wirklich als inm versteht... Könnte mir einer vielleicht ein Codeschnipselbeispiel liefer in dem vorher ein Testarray erzeugt worden ist?

Es kommt irgendwie nur diese Fehlermeldung :confused::(
 
Probiers mal so:

SQL:
      SELECT * FROM `user` WHERE name IN ('norbert','diether','teddy','tommie')

Spaltennamen werden soweit ich weiß in Mysql nicht in `` gesetzt.
 
Hi,

Spaltennamen werden soweit ich weiß in Mysql nicht in `` gesetzt.

Doch natürlich. Backticks verwendet überall da, wo man einen Bezeichner verwendet, der ein reserviertes Wort in MySQL ist.
Ich vermute eher, er hat die Werte nicht in Hochkommata gesetzt.

@_saurerregen_: Poste mal die Abfrage, die Du generierst.

LG
 
Also ich habe jetzt mal ein Testarray erzeugt, in dem ich eine Textdatei zeilenweise auslese.
In der Textdatei sind Namen von Freunden.
Nun sollen mir Benutzerdaten(also hier nur die Namen) aus der Tabelle angezeigt werden.

Folgenden Code habe ich verwendet:
Code:
$testpfad = 'users/crok74/testfreunde.txt';
$testnamen = file($testpfad);
		


connect(); //verbinden und dann suchen

$sql5 = "
        SELECT
            Benutzername,
			geschlecht,
			bday
			
			
        FROM
            user
        WHERE
           Benutzername IN ($testnamen) ";
			
$submit4 = mysql_query ($sql5) OR die(mysql_error()); 	
			
 // Benutzerdaten auslesen. 
 
    while ($data4 = mysql_fetch_array ($submit4))
    { 
			
		if ($data4['Benutzername'] != ""){
		echo $data4['Benutzername'];
                }	

	
}

Ich bekomme leider nur Fehlermeldungen..
:(

"Unknown column 'Array' in 'where clause'"
 
So kann MySQL nicht.
Du musst ihm das schon aufschlüsseln. MySQL ist eine Datenbank, kein Hellseher:

Ungetestet (und ich bin in PHP ein bisschen eingerostet :) )
PHP:
$in_klausel = '';

for($i=0; $i<length($testnamen); $i++) {
   $in_klausel .= "'".$testnamen[$i]."'"
   if($i != length($testnamen) -1) 
       $in_klausel .= ", " 
}

Und dann verwendest du diese in_klausel da, wo du derzeit testnamen verwendest.
 
Ich bekomme wieder nur Fehlermeldungen, wohin genau soll dieser Codeschnippsel?
Und soll ich dann IN($in_klausel) benutzen?

Das funktionierte irgendwie nicht. :(
 
Also dann nochmal:

PHP:
$testpfad = 'users/crok74/testfreunde.txt';
$testnamen = file($testpfad);

$in_klausel = ''; 

for($i=0; $i<length($testnamen); $i++) { 
   $in_klausel .= "'".$testnamen[$i]."'" 
   if($i != length($testnamen) -1)  
       $in_klausel .= ", "  
}  


connect(); //verbinden und dann suchen

$sql5 = '
        SELECT
            Benutzername,
            geschlecht,
            bday
			
			
        FROM
            user
        WHERE
           Benutzername IN ('.$in_klausel.') ';
			
$submit4 = mysql_query ($sql5) OR die(mysql_error()); 	
			
 // Benutzerdaten auslesen. 
 
    while ($data4 = mysql_fetch_array ($submit4))
    { 
			
		if ($data4['Benutzername'] != ""){
		echo $data4['Benutzername'];
                }	

	
}

Und soll ich dann IN($in_klausel) benutzen
Hab ich doch schon gesagt ^^

Und wenn du Fehlermeldungen bekommst, dann solltest du die uns vielleicht mal mitteilen.
 

Neue Beiträge

Zurück