2016-07-21 216 views
1

我一直在使用我的網站 - 這是一個針對不同商品(這也是我的第一個網站)的商店。我剛剛完成了網站的HTML/CSS部分,但我希望使其更加動態和易於編輯,而無需一次更改多個頁面。我認爲我可以做到這一點,也使網站搜索的實現更容易,方法是將數據庫中的項目的名稱和價格與PHP代碼一起檢索名稱和價格,並將其插入項目圖像的下方。不幸的是,我完全不知道如何去做這件事。我試過尋找其他人有類似的問題,但沒有一個人似乎特別是我在找什麼。我將把我的PHP代碼放在下面,然後我會放一些HTML代碼來顯示我想放置信息的位置。如何從MySQL數據庫獲取數據並將其插入到文本中

<?php 
$servername = "localhost"; 
$username = "root"; 
$password = "testpw"; 
$dbname = "testdb"; 

$conn = new mysqli($servername, $username, $password, $dbname); 
if($conn->connect_error) { 
} 
$sql = "SELECT id, name, price FROM items"; 
$result = $conn->query($sql); 

if ($result->num_rows > 0) { 
while($row = $result->fetch_assoc()) { 
echo " " .$row["id"]. " " .$row["name"]. " " .$row["price"]. "<br>"; 
} 
} else { 
echo "0 results"; 
} 
$conn->close(); 

?> 

這就是我用來獲取每個項目信息的PHP代碼。但問題是,它獲取每個項目的信息並立即顯示。我希望代碼檢查項目的ID,然後檢索關於它的統計信息並顯示它們。這意味着如果我想重新安排商店中的商品,我只需要更改ID,這使我更容易操作商店及其中的商品。以下是項目的HTML代碼。

<div id="images"> 
<figure> 
    <img class="gunimage" id="(THIS IS THE ID USED TO GET THE INFO)" src="idk.png" width="225" height="190" alt=""> 
    <figcaption><h3>Name: (INSERT NAME HERE USING PHP) </h3></figcaption> 
    <figcaption><h5>Price: (INSERT OTHER PRICE HERE)/month</h5></figcaption> 
    <figcaption><div id="tfbutton5"><form action="buy.html"><input type="submit" value="Rent" class="tfbutton5"></form></figcaption> 
</div> 
</figure> 
</div> 

我標記,我想的信息去了,我希望有ID的事情,所以PHP代碼知道它是什麼項目。我知道兩個代碼都是分開工作的,因爲我已經多次測試了這兩個代碼。很抱歉,如果我的問題很長,我想盡可能具體,因此很明顯我的問題是什麼。請原諒我的代碼是否需要進行很多更改才能適用於我描述的情況,因爲我只能弄清楚如何製作列出每個項目信息的內容。任何幫助,將不勝感激。謝謝。

+0

https://en.wikipedia.org/wiki/Where_(SQL) –

+0

我在哪裏可以在我的代碼中添加該商品以僅獲取商品的信息與該集ID? – Nathan

+0

'$ sql =「SELECT ID,name,price FROM items WHERE ID ='the_item_id'」;'如果你也想要項目的統計信息,查詢更復雜,因爲它涉及至少一個JOIN,但這取決於關於你的數據庫結構 – Gianluca

回答

0

如果你想要做更多的東西,你可以把一個名爲
「connection.php」或更具描述性的文件

try { 
    $servername = 'localhost'; 
$username = 'root'; 
$password = 'testpw'; 
$dbname = 'testdb'; 
$db = new mysqli($servername, $username, $password, $dbname); 
} catch(Exception $e) { 
    echo $e->error_list; 
    exit; 
} 
function execute_query($con, $query, $variables) { 
$stmt = $con->prepare($query); 
$stmt->execute($variables); 
return $stmt; 
} 

,你可以在當一個connection.php拆分這些頂部如果您有多個函數,則在function.php文件中運行。

include ('connection.php'); 
$id_number = $_GET['id']; 
# !! NOTICE if grabbing | my understanding another page | 
// filter if grabbing from GLOBAL Variable $_GET 
$id = filter_var($id_number, FILTER_SANITIZE_NUMBER_INT); //take out 
if not grabbing from outside source. 
$con = $db; 
try { 
    $query = 'SELECT t.id as id , t.name as name, t.price as price 
    FROM items as t 
    WHERE t.id = :id'; 
$variables[':id'] = $id; 
    $items = execute_query($con, $query, $variables); 
}catch(mysqli_error_list $e) { 
    echo $e->getMessage(); 
} 
?> 
<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <meta http-equiv="X-UA-Compatible" content="ie=edge"> 
    <title>Document</title> 
</head> 
<body> 
<div id="images"><!-- i am guessing you want it within this div--> 
<?php if(isset($item)) { ?> 
<?php foreach ($items as $item) { ?> 
<figure> 
     <img class="gunimage" id="<?php echo $item['id']; ?>" 
src="idk.png" width="225" height="190" alt="<?php echo $item['name']; 
?>"> 
    <figcaption><h3>Name: <?php echo $item['name']; ?> </h3> 
</figcaption> 
    <figcaption><h5>Price: <?php echo $item['price']; ?> </h5> 
</figcaption> 
    <figcaption> 
    <!-- instead of a id tfbutton5 needs to be a class otherwise your 
    going to have an issue here when it loops, you will have an error--> 
    <div class="tfbutton5"><form action="buy.html"><input 
    type="submit" value="Rent" class="tfbutton5"></form> 
    <!--also, not sure why you have an Id and a class named exactly 
identical but it is bad practice. sorry do not do it. --> 
    </figcaption> 
    </div> 
    </figure> 
    <?php } ?> 
<?php } ?> 
</div> 
</body> 
</html> 

,如果你想要一個圖像源,則需要輸入到數據庫中,你的項目表具有say..rows編號,圖片,和項目的ID表連接到圖像表。然後使用商品ID作爲商品和圖像之間的點

相關問題