2013-02-04 101 views
1

所以,我試圖讓SELECT CONCAT查詢運行,返回查詢的結果並基本顯示在.php網頁上。例如,如果我手動把下面的SQL代碼到的phpMyAdmin:SELECT CONCAT查詢的echo結果?

SELECT CONCAT(m.Name, ' ', p.Model, ' - ', p.StorageSize, ' - ', o.Name, ' - ', p.Price) 
FROM phones p 
JOIN manufacturer m 
ON p.ManufacturerID = m.ManufacturerID 
JOIN operatingsystem o 
ON p.OSID = o.OSID 

的phpMyAdmin運行它和「蘋果iPhone 5顯示 - 16GB - iOS設備 - 499.99不過,我試圖讓這個顯示上。 PHP頁面,而不是僅僅通過PHPMyAdmin,並且無法讓它工作。我猜我需要使用某種回聲命令,但是當我使用例如echo $ result時,它或者在網頁上顯示什麼或者有時「資源ID#3」 我的整個PHP代碼如下:

<html> 
<head> 
<LINK rel="stylesheet" href="style.css"> 
<title>Phones | Mobiles Four You</title> 
</head> 

<body> 
<div id="container"> 
<div id"header"><img src="images/logo.png" alt="Logo"/></div> 
<div id="navbar"> 
<ul> 
<li><a id=」nav-home」 class=」first」 href="index.php">Home</a></li> 
<li><a id=」nav-phones」 href="phones.php?sort=Make">Phones</a></li> 
<li><a id=」nav-search」 href="search.php">Search</a></li> 
<li><a id=」nav-login」 href="login.php">Login</a></li> 
<li><a id=」nav-contact」 class=」last」 href="contact.php">Contact</a></li> 
</ul> 
</div> 

<div id="content"> 
<h1>Mobile Phones</h1> 
</div> 


<?php 
$con = mysql_connect("b*********", "*****", "*****"); 
if (!$con) 
{ 
die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db("bg29li", $con); 
$query = ("SELECT CONCAT(m.Name, ' ', p.Model, ' - ', p.StorageSize, ' - ', o.Name, ' -    ', p.Price) 
FROM phones p 
JOIN manufacturer m 
ON p.ManufacturerID = m.ManufacturerID 
JOIN operatingsystem o 
ON p.OSID = o.OSID"); 

mysql_close($con); 
?> 
</body> 
</html> 

任何幫助,將在大家的讚賞

+0

0.Name之後的巨大差距是什麼?也許這就是問題所在? –

+0

當使用選擇聯繫人()使用別名像聯繫人(blahblah)作爲短名稱,那麼你可以很容易地 – 2013-02-04 12:49:45

+0

我看不到你的代碼$結果變量,或者你在哪裏調用$查詢字符串。 – eLRuLL

回答

1

給了連在一起的名稱的別名,然後依次通過行和呼應他們:

mysql_select_db("bg29li", $con); 
$query = ("SELECT CONCAT(m.Name, ' ', p.Model, ' - ', p.StorageSize, ' - ', o.Name, ' -    ', '£' , p.Price) AS Names 
FROM phones p 
JOIN manufacturer m 
ON p.ManufacturerID = m.ManufacturerID 
JOIN operatingsystem o 
ON p.OSID = o.OSID"); 

$result = mysql_query($query); 

while($row=mysql_fetch_array($result)) 
{ 
    // here you can get the values using $row['names'] 
    echo $row['names']; 

} 

mysql_close($con); 

但是,請停止使用的mysql_query擴展和使用PDO或準備語句來代替。

+0

@ user1762928確保您在查詢中的「SELECT CONCAT(...)AS names'中添加了一個別名'AS names'。你能告訴我你試過的確切查詢嗎? –

+0

@ user1762928您可以將它添加到'CONCAT'中查看我的編輯。 –

0
$query = "SELECT CONCAT(m.Name, ' ', p.Model, ' - ', p.StorageSize, ' - ', o.Name, ' -    ', p.Price) AS val 
FROM phones p 
JOIN manufacturer m 
ON p.ManufacturerID = m.ManufacturerID 
JOIN operatingsystem o 
ON p.OSID = o.OSID"; 

$res = mysql_query($query); 

while($row = mysql_fetch_assoc($res)){ 
    print_r($row); 
} 
+0

mysql_ *被棄用使用mysqli或者PDO –

+0

在while循環中寫if條件if($ row ['val'] ==「something」){$ requ = $ row ['val'];}' –

+0

改變這樣的查詢和嘗試,但我不知道工作'$查詢=「選擇CONCAT(m.Name,'',p.Model,' - ',p.StorageSize,' - ',o.Name,' - £',p。價格)AS val' –

0

mysql_select_db(「bg29li」,$ con);

首先創建SQL查詢字符串格式運行

$查詢=「SELECT CONCAT(m.Name, '',p.Model, ' - ',p.StorageSize, ' - ',o.Name , ' - ',p.Price) FROM電話p JOIN製造商米 ON p.ManufacturerID = m.ManufacturerID JOIN OperatingSystem的直徑: ON p.OSID = o.OSID「;

後運行此查詢,您將獲得在$ result變量

$結果= mysql_query($查詢);

而($行= mysql_fetch_array($結果,MYSQL_NUM)){

printf("%s ", $row[0]); 

}

+0

它不會給你結果 –

+0

你需要使用mysql_fetch_ * –

+0

jay取得結果是必需的 – 2013-02-04 12:53:45

0
$query = ("SELECT CONCAT(m.Name, ' ', p.Model, ' - ', p.StorageSize, ' - ', o.Name, ' -    ', p.Price) 
FROM phones p 
JOIN manufacturer m 
ON p.ManufacturerID = m.ManufacturerID 
JOIN operatingsystem o 
ON p.OSID = o.OSID"); 

這不會有足夠的mysql_query($query)需要在其他它只是一個字符串變量執行再要麼你將不得不使用mysql_fetch_array或mysql_fetch_object來獲得結果