2011-11-09 7 views
0

私は以下のクラスを持っています。特定のフィールドを返します。私は参考文献に興味があります。クエリが返された後、参照に 'A'が含まれている場合は、Bが返された場合はそれを返すように、データを分割する必要があります。私はテーブルに置くことができるので、返されたaの量、返されたbの量などを表示することができます。データは部屋ごとに一覧表示されます。データベースからの文字列中の特定の文字の検索return

<?php 


class CHWIPProgress { 

    var $conn; 

    // Constructor, connect to the database 
    public function __construct() { 
     require_once "/var/www/reporting/settings.php"; 
     define("DAY", 86400); 
     if(!$this->conn = mysql_connect(DB_HOST, DB_USERNAME, DB_PASSWORD)) die(mysql_error()); 
     if(!mysql_select_db(DB_DATABASE_NAME, $this->conn)) die(mysql_error()); 
    } 

    public function ListWIPOnLocation($location) { 
    $sql = "SELECT DISTINCT 
      `ProgressPoint`.`PPDescription` AS Description ,`Bundle`.`WorksOrder` AS WorksOrder, `Bundle`.`BundleNumber` AS Reference,`TWOrder`.`DueDate` AS DueDate , `Stock`.`Description` as Stock , `Stock`.`ProductGroup` as Group 
     FROM TWOrder,Bundle,ProgressPoint, Stock 
        WHERE `Bundle`.`CurrentProgressPoint`=`ProgressPoint`.`PPNumber` 
     AND `TWOrder`.`Colour`=`Bundle`.`Colour` 
     AND `TWOrder`.`Size`=`Bundle`.`Size` 
        AND `TWOrder`.`WorksOrderNumber`=`Bundle`.`WorksOrder` 
        AND `TWOrder`.`Product`=`Stock`.`ProductCode` 
        AND `ProgressPoint`.`PPDescription` = '" . $location . "' 
     ORDER BY `TWOrder`.`DueDate` ASC"; 
     mysql_select_db(DB_DATABASE_NAME, $this->conn); 
     $result = mysql_query($sql, $this->conn); 
        $num_rows = mysql_num_rows($result); 
        echo "Number of rows : $num_rows"; 
     while($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 
      $return[] = $row; 
     }  

     return $return; 

    } 


} 
?> 
+0

助けを求めているものを特定することは困難です。もっと精巧であれば、もっと多くの人が手伝ってくれるだろう。配列を使用した – Nightwolf

答えて

0

ListWIPOnLocation機能は、各アイテムは、クエリからの行に対応する配列を返すように見えます。この配列を反復し、PHP string functionsを使用して項目を分離し、おそらく他の配列を追加できます。データを配置するために複数の方法がここにあり一つの例です:

$returned = array(); 
$returned["A"] = array(); 
$returned["B"] = array(); 
foreach($return as $row) { 
    if (strpos($row["Reference"], "A") !== FALSE) { // note the !== operator 
     $returned["A"][] = $row; 
    } 
    if (strpos($row["Reference"], "B") !== FALSE) { // note the !== operator 
     $returned["B"][] = $row; 
    } 
} 
var_dump($returned); 

代わりに、あなたは参照列が特定の文字が含まれている行を取得するためにWHERE句でのMySQL LIKE演算子を使用することができます

WHERE ... AND Reference = LIKE '%A%' 
+0

では値が返されません。残念ながら。 – user1010756

+0

があり、REPENCE NUMBERSには26文字が含まれているため、クエリは非常に効率的ではありません。 – user1010756

+0

'$ row [" Reference "]'にはどのような値がありますか? –

関連する問題