2016-12-16 34 views
0

我開始了對PHP的網站使用MySQL ...參照不同的MySQL查詢在相同的PHP網站

我有2個div的,我拉入的信息,我拉着serviceprice其中ID等於0進入每一個。

我可以做到這一點,但我現在必須做3個更多的容器divs,每個有2個div)。

我試圖把SELECT查詢放在每個div的頂部,如下所示,但是這不起作用。

我試圖保持MySQL表清潔而不使用service1,service2,service3等,而是使用id來引用。

我是否需要引用echo中的id或別的東西?

下面是一些代碼...

<?php 
$sql = "SELECT service, price FROM Australia WHERE id = '0'"; 
$result = $conn->query($sql); 

while($row = $result->fetch_assoc()) { 

    ?> 

    <div class="container-top"> 
    <div class="module-service"><span><?php echo $row['service']; ?></span></div> 
    <div class="module-price">&pound;<?php echo $row['price']; ?><small> inc VAT </small></div> 
    <div> 
    <?php $conn->close(); } ?> 

<?php 
$sql = "SELECT service, price FROM Australia WHERE id = '1'"; 
$result = $conn->query($sql); 

while($row = $result->fetch_assoc()) { 

    ?> 

    <div class="container-mid"> 
    <div class="module-service"><span><?php echo $row['service']; ?></span></div> 
    <div class="module-price">&pound;<?php echo $row['price']; ?><small> inc VAT </small></div> 
    <div> 
    <?php $conn->close(); } ?> 

<?php 
$sql = "SELECT service, price FROM Australia WHERE id = '2'"; 
$result = $conn->query($sql); 

while($row = $result->fetch_assoc()) { 

    ?> 

    <div class="container-mid"> 
    <div class="module-service"><span><?php echo $row['service']; ?></span></div> 
    <div class="module-price">&pound;<?php echo $row['price']; ?><small> inc VAT </small></div> 
    <div> 
    <?php $conn->close(); } ?> 

<?php 
$sql = "SELECT service, price FROM Australia WHERE id = '3'"; 
$result = $conn->query($sql); 

while($row = $result->fetch_assoc()) { 

    ?> 

    <div class="container-bottom"> 
    <div class="module-service"><span><?php echo $row['service']; ?></span></div> 
    <div class="module-price">&pound;<?php echo $row['price']; ?><small> inc VAT </small></div> 
    <div> 
    <?php $conn->close(); } ?> 
+1

你在每個循環中調用'$ conn-> close()'。這意味着你不能在下一個查詢中使用'$ conn'。 – Barmar

+1

在腳本中完成所有MySQL查詢之前,不要使用'$ conn-> close()'。 – Barmar

+0

你不應該爲每個'id'做一個單獨的查詢。使用一個單一的查詢,如「SELECT服務,價格從澳大利亞ORDER BY ID'。 – Barmar

回答

1

關閉在腳本的最末端的連接,不重複。第一次關閉後,其他查詢將不起作用,因爲連接將被關閉。這就像走進一家商店,只是在別人購買了東西后纔買東西;)

此外,你不需要創建所有的循環,你已經有一個唯一的ID,所以使用它並對其進行排序由ID按升序排列(ASC)。

抓住身份證以便使用它。既然你只是在改變這個類,你可以在循環中改變它,減少重複代碼。只有一個地方需要更新,當你需要改變的東西。

<?php 
$sql = "SELECT service, price, id FROM Australia ORDER BY id ASC"; 
$result = $conn->query($sql); 

while($row = $result->fetch_assoc()) { 
if ($row['id'] == 1) 
{ 
$container = 'top'; 
} 
if ($row['id'] == 2) 
{ 
$container = 'middle'; 
} 
if ($row['id'] == 1) 
{ 
$container = 'bottom'; 
} 
    ?> 

    <div class="container-<?php echo $container; ?>"> 
    <div class="module-service"><span><?php echo $row['service']; ?></span></div> 
    <div class="module-price">&pound;<?php echo $row['price']; ?><small> inc VAT </small></div> 
    <div> 
<?php } ?> 
+0

謝謝!有沒有簡單的方法在代碼中添加CASE?例如,如果表中沒有價格,那麼顯示'00'? – tbowden

+0

當然,只需製作一個類似於$價格的變量,如果設置了數據庫價格,那麼設置它,否則將其設置爲00,這很簡單。 – NaughtySquid

+0

努力工作......你能給我多一點建議嗎? :) – tbowden

相關問題