Отображать заголовок состояния только один раз и по-прежнему отображать все адреса в этом состоянии - PullRequest
0 голосов
/ 21 февраля 2019

Я ищу способ отображения:

<h1>State1</h1>

<h2>City1</h2>
<p>Address1</p>


***if next address is in the same state:*

<h2>City2</h2>
<p>Address2</p>

<hr>

**if next address is NOT in the same state

<h1>State2</h1>

<h2>City3</h2>
<p>Address3</p>

Я использую:

<?php    
    $query = "SELECT * FROM places";
    $select_all_places = mysqli_query($connection, $query);

    while($row = mysqli_fetch_assoc()){
    $p_state = $row['p_state'];
    $p_city = $row['p_city'];
    $p_address = $row['p_address'];

    ?>

    <h1><?php echo $p_state ?></h1>
    <h2><?php echo $p_city ?></h2>
    <p><?php echo $p_address ?></p>

    <?php } ?>

1 Ответ

0 голосов
/ 21 февраля 2019

Посмотрите на код здесь.Я добавил несколько точек с запятой в ваши операторы echo и добавил переменную запроса в метод mysqli_fetch_assoc.Я также добавил несколько комментариев, чтобы помочь вам понять, что я здесь сделал.

<?php
$query = "SELECT * FROM places";
$select_all_places = mysqli_query($connection, $query);

// This will be the state we are currently on. Start it as null.
$current_state = '';

while($row = mysqli_fetch_assoc($select_all_places)){
    $p_state = $row['p_state'];
    $p_city = $row['p_city'];
    $p_address = $row['p_address'];

?>
    <!-- Check if variable state is equal to current row's state. -->
    <?php if($current_state != $p_state): ?>

        <!-- Echo state if they aren't equal  -->
        <h1><?php echo $p_state; ?></h1>

        <!-- Assign new current state -->
        <?php $current_state = $p_state; ?>
    <?php endif; ?>
    <h2><?php echo $p_city; ?></h2>
    <p><?php echo $p_address; ?></p>

<?php } ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...