我有一個表,其中一列包含一個逗號分隔值。 我需要在查詢中獲取這些值,將它們分解並對另一個表執行查詢。MySQL查詢從數組值查詢另一個表
讓我解釋一下結構。
表1:課程。 列大家都擔心這個例子:
courses.id, courses.products
這將返回一個值
$query['id']-> 1000
$query['products']-> 1,5
內查詢我需要拉的產品名稱從產品表中的每個產品
所以
products.productname
即使我必須創建5 p查詢中的roductname列,因爲沒有人應該有超過5個產品。
所有這一切的關鍵是我必須將其轉儲到電子表格中,並且我需要在其中包含產品名稱。
要完成CSV轉儲我有這個代碼。 (我已經查詢書面不過現在剛剛返回「1,5」,而不是產品名稱
$query = " QUERY GOES HERE ";
$result = mysql_query($query, $db) or die(mysql_error());
if (!$result) die('Couldn\'t fetch records');
$num_fields = mysql_num_fields($result);
$headers = array();
for ($i = 0; $i < $num_fields; $i++)
{
$headers[] = mysql_field_name($result , $i);
}
$fp = fopen('php://output', 'w');
if ($fp && $result)
{
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="export.csv"');
header('Pragma: no-cache');
header('Expires: 0');
fputcsv($fp, $headers);
while ($row = mysql_fetch_row($result))
{
fputcsv($fp, array_values($row));
}
die;
}
請[停止使用'mysql_ *'函數](http:// stackoverflow。COM /問題/ 12859942 /爲什麼 - 不應該,我使用MySQL的函數功能於PHP)。 [這些擴展](http://php.net/manual/en/migration70.removed-exts-sapis.php)已在PHP 7中刪除。瞭解[編寫](http://en.wikipedia.org/ wiki/Prepared_statement)語句[PDO](http://php.net/manual/en/pdo.prepared-statements.php)和[MySQLi](http://php.net/manual/en/mysqli.quickstart .prepared-statements.php)並考慮使用PDO,[這真的很簡單](http://jayblanchard.net/demystifying_php_pdo.html)。 –
謝謝託尼。我知道。這個應用程序是龐大的和書面的,以便每個頁面的查詢在頂部而不是基於功能的中央位置。它開始在DreamWeaver中開發,並已發展成爲一個龐大的系統。我的第一個目標之一是轉移到基於功能的系統,因此不會在每頁基礎上處理查詢或sql操作。 – phpman13