Почему он только показывает мне самую недавнюю стоимость? PHP

Я делаю консультацию php и просто он показывает мне самую недавнюю стоимость, идея состояла бы в том, чтобы он явился всеми. Уже я попробовал позволять открытому коду закрывать, а именно php, но не закрывая квадратных скобок, потом html и потом помещать другой php с квадратными скобками завершения. Но оно не функционирует и я не знаю, что больше я могу делать, пробовал с несколькими руководителями youtube и читая похожие ошибки в этой и других страницах, но ничто я не функционирует. Всегда он показывает меня так, хотя он будет пробовать уже с различными кодами. Пожалуйста, помогите мне.

<?php 
if($db){
$consulta="SELECT * FROM posts";
$resultado = mysqli_query($db, $consulta);
if($resultado){
    while($row1= $resultado->fetch_array()){
        $titulo = $row1['titulo'];
        $creador = $row1['creador'];
        $creacion = $row1['creacion'];
    }
}
}

<div id="lista"style=" position: fixed;left: 20%; bottom: 3%;background-color:white; width: 58%;height: 82%; border-radius: 10px; box-shadow: 4px 6px   rgba(205,205,205,0.6);
">
<h2><?php echo$titulo;?></h2>
<div>
<p>
<b></b><?php echo$creador;?><br>
<b><?php echo$creacion;?></b>
</p>
</div>
</div>
3
задан 08.11.2019, 15:19
3 ответа

CГіmo уже comentГ© не estГЎs definiendoo типы переменной cГіmo array, чтобы сохранять их mГєltiples данные, которые прибывают в $row, ademГЎs этого, ты должен печатать каждого из данных, которых ты сохраняешь, следовательно ты должен пробегать array, quedarГ - в asГ-:

<div id="lista"style=" position: fixed;left: 20%; bottom: 3%;background-color:white; width: 58%;height: 82%; border-radius: 10px; box-shadow: 4px 6px   rgba(205,205,205,0.6);">
  <?php 
    if($db){
      $consulta="SELECT * FROM posts";
      $resultado = mysqli_query($db, $consulta);
      if($resultado){
          while($row1= $resultado->fetch_array()){
              echo "<div><h2> {$row1['titulo']}</h2>
              <div>
              <p>
              <b></b>{$row1['creador']} <br>
              <b> {$row1['creacion']}</b>
              </p>
              </div></div>";
          }
      }
    }
  ?>
</div>

CГіmo подсказка, podrГ-эксперт брать стили, которые ты он даешь <div id="lista" и в разе помещать их все как таковой в этикетку ты можешь делать это с разделом CSS, podrГ, - чтобы оставаться asГ-:

<style type="text/css">
  #lista{
    position: fixed;
    left: 20%; 
    bottom: 3%;
    background-color:white; 
    width: 58%;height: 82%; 
    border-radius: 10px; 
    box-shadow: 4px 6px   rgba(205,205,205,0.6);
  }
</style>

Следовательно просто ты помещаешь div asГ-:

<div id="lista">

Какое-то сомнение или подсказка ты выдвигаешь ее мне, ojalГЎ подайте тебя.

4
ответ дан 01.12.2019, 12:16
  • 1
    Твой ответ надоедает слишком много куропатке. ¿ Для qué сохранять данные в нескольких array, чтобы потом печатать их сразу? ¿ Из-за qué не печатать внутри первого while? Además, la respuesta ignora aspectos básicos de HTML, como meter un montón de div' внутри цикла. В отделении элементов, которые связаны используя один h2 и части этого h2 внутри одного div – A. Cedano 08.11.2019, 16:24
  • 2
    Так как сначала serí чтобы как для не иметь так, чем изменять có я говорю, sí уже есть у сформированной структуры, так как я предпочитаю, что mantega и она лепится таким образом что я остался функциональным – DaxTter77 08.11.2019, 16:27
  • 3
    Я думаю, что в ответах может быть предложенным прогресс, прежде всего, когда мы оцениваем, что OP está помогая плохие prá cticas. Иногда ответ на чем-то может служить для того, чтобы помочь улучшать другие аспекты. Aquí нет из-за qué сохранять данные, потому что очевидно, что нужно печатать их ahí сам. Другая вещь serí если он будет нуждаться в данных, чтобы перемещать их в другом месте или чтобы возвращать их с return с funció n, но не кажется случай aquí. có я говорю не está оптимизированный, перегрузь память, сначала сохраняя и потом печатая. – A. Cedano 08.11.2019, 16:33
  • 4
    Я заношу в список, я верю в то, что así está гораздо лучше, только я отношусь к тому, что они остались как приученные для вещей, которые идут делая для того, чтобы они не запутались много, когда они сделают им изменения drá sticos, но sí ты имеешь razó n – DaxTter77 08.11.2019, 16:38
  • 5
    Я радуюсь, что он подал тебя, удача с твоим проектом, приветом! – DaxTter77 08.11.2019, 18:18

Поддерживая то, что он говорит @DaxTter77, я это пишу aquГ - потому что он следует мне mГЎs просто помещать cГіdigo. BГЎsicamente тебе остается интегрировать html внутри цикла (while) mГЎs или меньше asГ-:

while ($row1= $resultado->fetch_array()) { ?>
    <h2><?= $row1['titulo'] ?></h2>
    <div>
      <p>
        <b></b><?= $row1['creador'] ?><br>
        <b><?= $row1['creacion'] ?></b>
      </p>
    </div>
<?php }

, Если с тобой versiГіn php это ты не функционирует <?= $row1['titulo'] ?>, смени это на <?php echo $row1['titulo']; ?>

3
ответ дан 01.12.2019, 12:16
  • 1
    Не является правильным это. Если есть тысяча линий, ты будешь создавать тысячи div Этикетки div deberí an быть вне while – A. Cedano 08.11.2019, 16:13
  • 2
    Если в твоем có я говорю, что ты добавишь где deberí чтобы открывать и закрывать <div id="lista", podrí схвати показывать, что @A.Cedano está спутанный. – Marcos 08.11.2019, 16:18
  • 3
    @Marcos из-за ló gica <div id="lista"> deberí чтобы быть контейнером всего списка, или же всех линий, которые они идут печатать, следовательно, deberí чтобы открываться перед while и закрываться despué s while, имея así один div. Три ответов, данных до настоящего времени игнорируют аспекты bá sicos HTML. – A. Cedano 08.11.2019, 16:22
  • 4
    Так как возможно иметь контейнер для общего количества сохранять всю informació n и div, чтобы иметь каждую из отдельных линий, и уже sí он навязывает их ему css так как tomarí an отличная форма в có mo они видны, равного способа dirí в меня, кто следовательно ú nico, что не está n хорошо он состоит в том, чтобы не разместить <div id="lista" – DaxTter77 08.11.2019, 16:26
  • 5
    @Marcos процедура HTML говорит ясно, что не может быть элементов с id повторенные. Этот HTML не validarí в, и если ты присоединяешь его có я говорю Javascript, чтобы достигать элементов из-за id có я говорю podrí чтобы иметь поведение erró neo. – A. Cedano 08.11.2019, 16:27

cГіdigo HTML deberГ, - чтобы быть внутри loop while. А в Гєltima, перешедшей из while setea Гєltimo стоимость, что tomГі основания, и потом произведя HTML, он использует эту стоимость:

Например:

<?php
if ($db) {
    $consulta = "SELECT * FROM posts";
    $resultado = mysqli_query($db, $consulta);
    if ($resultado) {
        while ($row1 = $resultado->fetch_array()) {
            $i = 0;
            $titulo = $row1['titulo'];
            $creador = $row1['creador'];
            $creacion = $row1['creacion'];
            ?>
            <div id="lista-<?=$i++; ?>" style=" position: fixed;left: 20%; bottom: 3%;background-color:white; width: 58%;height: 82%; border-radius: 10px; box-shadow: 4px 6px   rgba(205,205,205,0.6);">
                <h2><?php echo $titulo; ?></h2>
                <div>
                    <p>
                        <b></b><?php echo $creador; ?><br>
                        <b><?php echo $creacion; ?></b>
                    </p>
                </div>
            </div>
<?php
        }
    }
}
2
ответ дан 01.12.2019, 12:16
  • 1
    Этот có я говорю, что он будет производить HTML erró neo. ¿ Из-за qué ты помещаешь элемент div из-за каждой линии, ademá s с miso id. Это неправильное с точки зрения HTML. – A. Cedano 08.11.2019, 16:25
  • 2
    Верный, спасибо. Ahí издайте идентификацию для того, чтобы он это менял. – user148302 08.11.2019, 21:13
  • 3
    Может быть один div в каждой линии или не. правда в том, что я не смотрел стили. Но así по крайней мере deberí чтобы функционировать. – user148302 08.11.2019, 21:14
  • 4
    Así está лучше. Привет. – A. Cedano 08.11.2019, 21:24

Теги

Похожие вопросы