2016-12-16 2 views
0

Я начиная с использованием MySQL на PHP вебе-сайтах ...Ссылаясь на различные запросы MySQL в том же PHP сайте

У меня 2 див, что я тянущие информации в, я потянув service и price где идентификатор равен 0 в каждом.

Я могу сделать это хорошо, однако теперь мне нужно сделать это в еще 3 контейнерах divs, каждый с двумя div).

Я попытался поставить запрос SELECT поверх каждого div, как показано ниже, однако это не сработало.

Я стараюсь, чтобы таблица MySQL была чистой без использования service1, service2, service3 и т. Д., Вместо этого используйте идентификатор для ссылки.

Нужно ли мне ссылаться на идентификатор в эхо или что-то еще?

Вот некоторые из кода ...

<?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

Не используйте '$ conn-> close()', пока не закончите со всеми запросами MySQL в скрипте. – Barmar

+0

Вам не нужно делать отдельный запрос для каждого 'id'. Используйте один запрос, например, 'SELECT service, price FROM Australia ORDER BY id'. – Barmar

ответ

1

Закрыть соединение в самом конце сценария, не раз. После первого закрытия другие запросы не будут работать, потому что соединение будет закрыто. Это как ходить в магазин, который только что закрылся, чтобы купить что-то, когда кто-то купил что-то;)

Кроме того, вам не нужно создавать все эти циклы, у вас уже есть уникальный идентификатор для каждого, поэтому используйте его и сортируйте по 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

Конечно, просто сделайте var как $ price, если установлена ​​цена db, тогда установите его иначе, сделайте это 00, просто, если будете делать. – NaughtySquid

+0

Борьба за то, чтобы эта работа ... Не могли бы вы дать мне немного больше советов? :) – tbowden

Смежные вопросы