2012-06-05 89 views
2

爲了讓我的頭腦清楚我所知道的應該是簡單的,我不確定解決方案是處於查詢還是處理結果,所以我努力尋找我肯定已經涵蓋的內容另一篇文章。如何處理來自共享公共ID的SQL查詢的多個結果?

我正在使用單個MySQL表,從中我需要能夠檢索和處理共享公共ID的內容。不幸的是,重組數據庫不是一種選擇。

下面是一個簡單的SELECT * WHERE contentID = '2'查詢返回:

|contentType|contentID|content  | 
-------------------------------------- 
|title  |2  |<h1>title</h1>| 
|intro  |2  |<p>intro</p> | 
|main  |2  |<p>main</p> | 

什麼來檢索具體的「標題」,「前奏」或「主」內容的正確方法是什麼?

在此先感謝。

+0

你已經在你的例子中,也許你需要澄清你的問題? – lanzz

回答

2
$result = mysql_query("SELECT * WHERE contentID = '2'"); 
    $array = array(); 
    while($rows = mysql_fetch_array($result,MYSQLI_ASSOC)){ 
     $array[$rows['contentType']] = $rows['content']; 
    } 

可以使用$陣列的每個內容類型

+0

工程很棒。謝謝! – hyppy

2

提取所有行到一個數組:

$data = array(); 
foreach ($rows as $r) { 
    $data[$r['contentType']] = $r['content']; 
} 
+0

謝謝埃米爾,這對我有很大的幫助。 – hyppy

0

你必須把你的內容類型到where子句。 Id和類型應該形成一個自然的好,並應該像這樣受到限制。如果不是,則需要重新設計。此外,編號考慮把內容類型作爲查詢而不是字符串。

-1
<?php 
function executeQuery($query,$connectionObject) 
       { 
       queryString=$query; 
         recordSet=mysql_query(queryString,$connectionObject); 
         if(!$recordSet) 
         { 
          $errorString=mysql_error($this->connectionObject); 
          return array("error"=>$errorString); 
         } 

         return recordSet; 
        } 
       function getNextRecord($recordSet) 
        { 
         $resultArray =mysql_fetch_assoc($recordSet); 
         if(!empty($resultArray)) 
         return($resultArray); 
         else 
         return "false"; 


        } 

     $result = executeQuery("SELECT * FROM foo WHERE contentID = '2'"); 

     $nextRecord = getNextRecord($result); 
     while($nextRecord!="false") 
     { 
     $nextRecord = getNextRecord($result); 
     //...........Process the record..... 

     ->$nextRecord['contentType']; 
     ->$nextRecord['contentID']; 
     ->$nextRecord['content']; 
    //.................................. 

     }