Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Abfrage mit einem Array

Die zweite Abfrage sollte $thelist verwenden nicht $row , und es sollte außerhalb von while liegen Schleife. Die foreach Schleife ist unnötig, wenn eine einzelne Zeile verarbeitet wird. Sie können auf den Namen in $row zugreifen mit einem einfachen $row[0] . Etwa so (ungetestet):

$query1 = "SELECT name FROM clients WHERE sector = '$sectorlink'";
$clientresult = mysql_query($query1, $connection) or trigger_error("SQL", E_USER_ERROR);

while($row = mysql_fetch_array($clientresult)){
    $temp[] = '"'.$row[0].'"';
}

$thelist = implode(",",$temp);
$query = "SELECT count(*) FROM studies WHERE client IN ($thelist) ORDER BY (date) desc";
$result = mysql_query($query, $connection) or trigger_error("SQL", E_USER_ERROR);

Achtung: Bitte beachten Sie, dass Ihr Code sehr anfällig für SQL-Injection-Angriffe ist . Zum Testen oder für die interne Entwicklung ist es in Ordnung, aber wenn dieser Code die Fort-Knox-Website ausführen soll, werden Sie einiges daran ändern wollen. Nur ein FYI. :-)