Diskuze: Výpis udajov z databáze do HTML tabuľky

PHP PHP Výpis udajov z databáze do HTML tabuľky American English version English version

Avatar
Dominik Gavrecký:

Zdravím,

Chcel by som sa opýtať ako zapísať do HTML tabuľky napríklad všetky informácie o uživateľovi z DB. Klasicky vytiahnuť udaje z DB a uložiť do funkcie mysqli_fetch_array. Ale ako postupovať ďalej ak chcem aby sa mi vypísali do tabuľky všetky uživatelia.

<table>
  <tr>
    <th>id</th>
    <th>nick</th>
  </tr>
  <tr>
    <td></td>
    <td></td>
  </tr>
</table>
Editováno 10.2.2015 16:49
Odpovědět 10.2.2015 16:49
Hlupák nie je ten kto niečo nevie, hlupákom sa stávaš v momente keď sa na to bojíš opýtať.
Avatar
Odpovídá na Dominik Gavrecký
Martin Konečný (pavelco1998):

Hodíš SELECT na všechny řádky a potom v cyklu všechny řádky vypíšeš.

 
Nahoru Odpovědět 10.2.2015 17:13
Avatar
Dominik Gavrecký:

Ako to myslíš ? Stále sa zdelávam a som toho názoru že nevedieť neznamená byť blbý, blbý si vtedy ak sa na to neopýtaš :)

Nahoru Odpovědět 10.2.2015 17:50
Hlupák nie je ten kto niečo nevie, hlupákom sa stávaš v momente keď sa na to bojíš opýtať.
Avatar
IT Man
Redaktor
Avatar
Odpovídá na Dominik Gavrecký
IT Man:

Vyber si data do proměnné např. $uzivatele. To potom dej do foreach nějak takto:

<?php
// Kód, pro výběr z databáze na proměnnou $uzivatele.
?>

<table>
   <tr>
     <th>id</th>
     <th>nick</th>
   </tr>
   <?php foreach($uzivatele as $u) : ?>
   <tr>
     <td><?= $u['id'] ?></td>
     <td><?= $u['nick'] ?></td>
   </tr>
   <?php endforeach ?>
 </table>
Editováno 10.2.2015 18:13
Nahoru Odpovědět  +1 10.2.2015 18:12
Když nevíš jak dál, podá ti ruku někdo, od koho by jsi to nečekal. A tu šanci musíš přijmout!
Avatar
Odpovídá na IT Man
Dominik Gavrecký:
<?php $membersinfo = mysqli_query($connect, "SELECT * FROM members");
foreach($membersinfo as $u) : ?>
<tr>
   <td><?= $u['id'] ?></td>
   <td>
      <div class="media">
         <img src="app/img/user/01.jpg" alt="Image" class="img-responsive img-circle">
      </div>
   </td>
   <td>@twitter</td>
   <td>Larry</td>
   <td>the Bird</td>
   <td>mail@example.com</td>
   <td>member</td>
                              <td>
      <div class="checkbox c-checkbox">
         <label>
            <input type="checkbox">
            <span class="fa fa-check"></span>
         </label>
      </div>
   </td>
</tr>
 <?php endforeach ?>

Takto ?

Nahoru Odpovědět 10.2.2015 19:37
Hlupák nie je ten kto niečo nevie, hlupákom sa stávaš v momente keď sa na to bojíš opýtať.
Avatar
IT Man
Redaktor
Avatar
Odpovídá na Dominik Gavrecký
IT Man:

Pokud se jedná o výpis všech uživatelů, ano, pokud o jednoho, není třeba foreach. Akorát nechápu smysl toho tvého cyklu, kde pouze měníš ID. Ale i tak by to mělo fungovat. :)

Nahoru Odpovědět 10.2.2015 19:46
Když nevíš jak dál, podá ti ruku někdo, od koho by jsi to nečekal. A tu šanci musíš přijmout!
Avatar
Dominik Gavrecký:

Bolo to pre príklad :) Ale bohužial to nefunguje ... Chcem vypísať všetky ID a nevypíše ani jedno

Nahoru Odpovědět 10.2.2015 19:47
Hlupák nie je ten kto niečo nevie, hlupákom sa stávaš v momente keď sa na to bojíš opýtať.
Avatar
IT Man
Redaktor
Avatar
Odpovídá na Dominik Gavrecký
IT Man:

Nějaká chyba?
Pokud ne, zkontroluj správné názvy sloupců.

Pozn.: Pokud potřebuješ jen pár sloupců, můžeš pozměnit dotaz:

SELECT * FROM members

na

SELECT id FROM members
Editováno 10.2.2015 19:52
Nahoru Odpovědět 10.2.2015 19:51
Když nevíš jak dál, podá ti ruku někdo, od koho by jsi to nečekal. A tu šanci musíš přijmout!
Avatar
Odpovídá na Dominik Gavrecký
Martin Konečný (pavelco1998):
$membersInfoQuery = mysqli_query(...);
$membersInfo = mysqli_fetch_assoc($membersInfoQuery);

foreach ($membersInfo as $member)

Nějak takto by to mělo být. Musíš ta vyhledaná data uložit do pole a teprve potom procházet.

 
Nahoru Odpovědět 10.2.2015 19:59
Avatar
Tonda Kozák
Člen
Avatar
Odpovídá na IT Man
Tonda Kozák:

To ti přece nemůže fungovat. Mysqli_query nevrací pole, ale objekt s informacemi o výsledku dotazu.

Dominik Gavrecký
Musíš použít cyklus while a funkci mysqli_fetch_a­rray() (například).

Takto:

$dotaz = mysqli_query($spojeni, "SELECT * ...");
while ($data = mysqli_fetch_array($dotaz)) {
 echo $data["nazev_sloupce"];
}
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět  +2 10.2.2015 20:04
Avatar
Tonda Kozák
Člen
Avatar
Odpovídá na Martin Konečný (pavelco1998)
Tonda Kozák:

Takto se ti do $memersInfo uloží jen jeden řádek, jich pokud bude očekávat víc, musí to dát do toho cyklu while.

 
Nahoru Odpovědět 10.2.2015 20:08
Avatar
IT Man
Redaktor
Avatar
Odpovídá na Tonda Kozák
IT Man:

Tak psal, že umí mysqli_fetch_as­soc() a tak, takže jsem netušil, že dělá chybu. Jsem zvyklý na PDO. :(

Nahoru Odpovědět 10.2.2015 20:23
Když nevíš jak dál, podá ti ruku někdo, od koho by jsi to nečekal. A tu šanci musíš přijmout!
Avatar
Dominik Gavrecký:

Ďakujem veľmi pekne za pomoc :)

Nahoru Odpovědět 10.2.2015 20:24
Hlupák nie je ten kto niečo nevie, hlupákom sa stávaš v momente keď sa na to bojíš opýtať.
Avatar
Odpovídá na Tonda Kozák
Martin Konečný (pavelco1998):

Jasný, jak jsem zvyklej z PDO na fetchAll(), tak jsem si to neuvědomil.

 
Nahoru Odpovědět 10.2.2015 20:28
Avatar
Dominik Gavrecký:

Chalani ospravedlňujem sa ale naskytol sa další problém :) Všetko funguje ako má ale pri použití PHP do vypísania udajov do tabuľky mi ju uplne rozhádže. Ale údaje vypíše správne.

<?php
                         $membersinfoquery = mysqli_query($connect, "SELECT * FROM members");
                        while ($data = mysqli_fetch_array($membersinfoquery)) {
                        ?>
                        <tr>
                           <td><?= $data['id'] ?></td>
                           <td>
                              <div class="media">
                                 <img src="app/img/user/01.jpg" alt="Image" class="img-responsive img-circle">
                              </div>
                           </td>
                           <td><?= $data['id'] ?></td>
                           <td><?= $data['id'] ?></td>
                           <td><?= $data['id'] ?></td>
                           <td><?= $data['id'] ?></td>
                           <td><?= $data['id'] ?></td>
                           <td>
                              <div class="checkbox c-checkbox">
                                 <label>
                                    <input type="checkbox">
                                    <span class="fa fa-check"></span>
                                 </label>
                              </div>
                           </td>
                        </tr>
                     </tbody>
                  </table>
                  <?php } ?>

http://pbrd.co/1IN98B3

Nahoru Odpovědět 10.2.2015 20:34
Hlupák nie je ten kto niečo nevie, hlupákom sa stávaš v momente keď sa na to bojíš opýtať.
Avatar
Tonda Kozák
Člen
Avatar
Tonda Kozák:

Vše co je uvnitř cyklu (mezi { a }) se opakuje pro každý řádek z databáze, takže

</tbody>
                   </table>

musíš dát mimo cyklus.

 
Nahoru Odpovědět  +1 10.2.2015 20:40
Avatar
Nahoru Odpovědět 10.2.2015 20:43
Hlupák nie je ten kto niečo nevie, hlupákom sa stávaš v momente keď sa na to bojíš opýtať.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 17 zpráv z 17.