2014-03-19 39 views
-1

我的表中有許多不同的商家店鋪(如耐克,銳步,阿迪達斯,羅託等)。我想用MySQL查詢顯示PHP中的特定字段的所有行

我想檢索與特定商店相關的所有信息(例如:耐克),並且我想顯示與該耐克商店相關的所有信息。

我的表像:

+----+--------------+--------------+ 
| id | store_name | description | 
+----+--------------+--------------+ 
| 1 | nike   | dasfdasdfas | 
| 2 | reebok  | dfasdfa  | 
| 3 | addidas  | adasdf  | 
| 4 | loto   | asdfasfdas | 
| 5 | nike   | sadlfjasldfj | 
+----+--------------+--------------+ 

我寫的代碼爲:

<?php include ('config.php'); 
$q = mysql_query("SELECT * FROM `Merchant Store` WHERE store=$store_name"); 
     while($r=mysql_fetch_array($q)){ 
     ?> 

echo <?php $r ?> 

我怎樣才能做到這一點?我想要顯示所有與耐克商店相關的內容。

+0

由於含糊不清說。我建議防止SQL注入如下所示:'$ q = mysql_query(「SELECT store FROM FROM coupons WHERE store ='」。mysql_real_escape_string($ store_name)。''「);' – Rossco

+0

您的列名和表名應使用小寫字母和下劃線 - 如果他們包含空間,那麼你就比他們需要做的更難。將表重命名爲'merchant_store'。除此之外,我不確定你有什麼問題 - 除了可能的SQL注入代碼看起來沒問題。 '$ store_name'從哪裏來?它工作嗎? – halfer

回答

1
$q = mysql_query("SELECT * FROM `coupons` WHERE store='" . $store_name . "'"); 

缺少的單引號

另外在你的桌子上有沒有

PS命名store列,因此貼查詢檢索所有列(使用*而不是store)。見this後,爲什麼不使用mysql擴展

0

這裏:

$q = mysql_query("SELECT * FROM coupons WHERE store='$store_name'"); 

而且你$store_name變量必須有一個商店,你想獲取和顯示其價值的價值。另外,你最有可能在你的餐桌上只有一次店名。所以你可以省略循環,當預期有多個結果時使用它。 並且在運行mysql_fetch_array()部分之後,您需要獲取變量中的每個字段,然後顯示它。 所以你的查詢看起來就像

<?php include ('config.php'); 
$q = mysql_query("SELECT * FROM coupons WHERE store='$store_name'"); 
$r=mysql_fetch_array($q); 
$store_name = $r['store_name']; 
$description = $r['description']; 

echo 'Store name '.$store_name; 
echo 'Description '.$description; 
?> 
相關問題