Эхо разное и одна строка в каждом изображении занимает последние 2 строки в базе данных - PullRequest
0 голосов
/ 08 мая 2019

Мой код отображает все значения в базе данных в одном изображении. Я хочу, чтобы каждое изображение отображало только одно значение в базе данных, начиная с последних 2 значений.ниже мой код

    <div class="col-xs-3 col-sm-3 col-md-3">
                <img src="grey.jpg">            

       <div class="top-left"> <p><?php $servername = "localhost";
           $username = "root";
           $password = "";
           $dbname = "software";

            // Create connection
           $conn = new mysqli($servername, $username, $password, $dbname);
           // Check connection
           if ($conn->connect_error) {
           die("Connection failed: " . $conn->connect_error);
            }

            $sql = "SELECT ID, description FROM test";
            $result = $conn->query($sql);

             //if ($result->num_rows == 1) {
           // output data of each row

           while($row = $result->fetch_assoc()) {
            echo " ". $row["description"]. "<br>";
           }

         //} else {
          // echo "0 results";
         //} ?> </p></div>

   </div>
    <div class="col-xs-3 col-sm-3 col-md-3">
     <img src="imagesb.jpg">
    </div>

1 Ответ

0 голосов
/ 08 мая 2019

Вы можете получить последние две строки из БД, используя что-то вроде

SELECT ID, description FROM test ORDER BY ID DESC LIMIT 2

(или какой столбец вы хотите заказать).

Что касается того, как вы хотите, чтобы он выводил, не ясно, о чем вы спрашиваете, но похоже, что вы хотите переместить цикл while за пределы тега div. Что-то вроде ...

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

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT ID, description FROM test ORDER BY ID DESC LIMIT 2"; // Last 2 rows
$result = $conn->query($sql);
while($row = $result->fetch_assoc()) : ?>
    <div class="col-xs-3 col-sm-3 col-md-3">
        <img src="grey.jpg">
        <div class="top-left">
            <p><?php echo htmlspecialchars($row["description"], ENT_QUOTES); ?></p>
        </div>
    </div>
    <div class="col-xs-3 col-sm-3 col-md-3">
        <img src="imagesb.jpg">
    </div>
<?php endwhile;

Помните, что всякий раз, когда вы выводите какие-либо переменные / содержимое БД, вам нужно их экранировать (в данном случае htmlspecialchars), иначе ваша страница может быть взломана. Вот случайная ссылка, которую я нашел об этом, которая охватывает основы https://www.inanimatt.com/php-output-escaping.html

...