0

誰かが私を助けてくれることを願って、結果を取得するのに少し問題があります。

カンマベースの文字列である$incategoryというフィールドがあります。私がやりたいのは、次のように結果を取得するために使用できる配列に分解することです(意味のあることを願っています)。

<?php 

$showlist = $row_listelements['incategory']; 

// ** e.g. $incategory = 1,3,5, 
// ** What I want to do is look at table 'category' 
// ** and retrieve results with an 'id' of either 1, 3 or 5

// ** Display Results
mysql_select_db($database_db, $db);
$query_display = "SELECT * FROM category WHERE id = ".$showlist." ORDER BY name ASC";
$display = mysql_query($query_display, $db) or die(mysql_error());
$row_display = mysql_fetch_assoc($display);
$totalRows_display = mysql_num_rows($display);

?>
4

3 に答える 3

4

SQLのINキーワードは、このように直接使用できます。

query_display = "SELECT * FROM category WHERE id IN (".$showlist.") ORDER BY name ASC";

もう1つのヒントは、PHP 5.3で非推奨になっているため、MYSQL_QUERYの使用を停止することです。

編集:$ showlist = '1,3,5'の場合、クエリで使用できるようにするには、文字列から最後のカンマを削除する必要があります。このクエリを使用してください

query_display = "SELECT * FROM category WHERE id IN ('".str_replace(",", "','", substr($showlist, -1))."') ORDER BY name ASC";
于 2013-01-30T07:05:28.867 に答える
0

分解機能を使用,し、区切り文字として使用します。

ここを参照してくださいhttp://www.w3schools.com/php/func_string_explode.asp

お役に立てれば。

于 2013-01-30T07:01:25.383 に答える
0

まず、$incategory文字列を分解して、すべてのカテゴリ番号を含む配列にします。例えば:

$incategory = explode(",", $incategory);

そして、このクエリを実行する必要があります。

$query_display = "SELECT * FROM category WHERE id = "
               . $incategory[$i] . " ORDER BY name ASC";

$i事前に定義する必要があります(通常はループを使用)。

于 2013-01-30T07:16:38.563 に答える