NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Echo table from database

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Zdenek
Člen
Avatar
Zdenek:17.4.2017 14:47

Ahojte,
prosím o radu: v phpMyAdmin mám tabulku "userinfo" a v ní několik údajů. Z údajů (sloupců) vybírám sloupce "nick" a "score" a chci z těchto údajů zobrazit v PHP tabulku s TOP 10. Dotaz SQL mi funguje parádně tj.

SELECT nick, score FROM userinfo ORDER BY score DESC LIMIT 10

ale v PHP se mi nedaří echo. Kde bych chtěl mít údaje seřazeny sestupně v tabulce. Zkoušel jsem tohle, ale nefunguje:

$resultbest = mysqli_query ($connect, "SELECT nick, score FROM userinfo ORDER BY score DESC LIMIT 10");
            $resulttop = mysqli_fetch_row($resultbest);
            echo "<br/>Top 10:" . " " . $resulttop;

Může mi prosím někdo poradit ?

 
Odpovědět
17.4.2017 14:47
Avatar
Fitkrám.cz
Člen
Avatar
Odpovídá na Zdenek
Fitkrám.cz:17.4.2017 15:33

Zkus to projet přes foreach()

echo 'Top 10';
foreach($resulttop as $data){
        echo $data['nick'] . ' - ' .  $data['score'] . '<br />';
}

Ale jen tipuji, procedurál už nějakou dobu nepoužívám...

Nahoru Odpovědět
17.4.2017 15:33
Měřit, měřit a měřit!
Avatar
Zdenek
Člen
Avatar
Odpovídá na Fitkrám.cz
Zdenek:17.4.2017 16:51

Fitkráme díky za návrh, ale takto mi to nefunguje. Háže mi to chybu " Illegal string offset 'nick' .. " to samé i pro score. Asi si trošičku budu muset zagooglit :) . Jsem začátečník.

 
Nahoru Odpovědět
17.4.2017 16:51
Avatar
Fitkrám.cz
Člen
Avatar
Odpovídá na Zdenek
Fitkrám.cz:17.4.2017 16:54

Jak říkám, tohle už jsem sto let neviděl :D

Každopádně zkus mysqli_fetch_row nahradit za mysqli_fetch_array

Nahoru Odpovědět
17.4.2017 16:54
Měřit, měřit a měřit!
Avatar
vojak528
Člen
Avatar
vojak528:17.4.2017 19:01

skus nejak takto len si uprav vypis a pripojenie db

$connect = mysqli_connect("localhost", "root", "root", "todo"); // pripojenie
$sql    = "SELECT * FROM sklad ORDER BY  id DESC ";
$result = mysqli_query($connect, $sql);



<?php
       if (mysqli_num_rows($result) > 0) {
       ?>
           <table>
                    <tr>
                        <th>id</th>
                    </tr>

           <?php
           while ($row = mysqli_fetch_array($result)) {
            ?>
               <tr>
                   <td><?php echo $row['data'] ?> </td>

               </tr>

               <?php
           }
       }?>
 
Nahoru Odpovědět
17.4.2017 19:01
Avatar
Zdenek
Člen
Avatar
Zdenek:17.4.2017 20:53

Takže jsem našel toto, implementoval menší úpravy a funguje:

<table>
        <thead>
            <tr>
                <td>Nick</td>
                <td>Score</td>
            </tr>
        </thead>
        <tbody>
        <?php
            $connect1 = mysql_connect("localhost","root", "password");
            if (!$connect1) {
                die(mysql_error());
            }
            mysql_select_db("database");
            $results = mysql_query("SELECT nick, score FROM userinfo ORDER BY score DESC LIMIT 10");
            while($row = mysql_fetch_array($results)) {
            ?>
                <tr>
                    <td><?php echo $row['nick']?></td>
                    <td><?php echo $row['score']?></td>
                </tr>

            <?php
            }
            ?>
            </tbody>
            </table>
Akceptované řešení
+5 Zkušeností
Řešení problému
 
Nahoru Odpovědět
17.4.2017 20:53
Avatar
NouF
Člen
Avatar
Odpovídá na Zdenek
NouF:17.4.2017 21:00

tohle rychle zapoměn. To se už dlouhoooooo nepoužívá a má to důvod.

 
Nahoru Odpovědět
17.4.2017 21:00
Avatar
Zdenek
Člen
Avatar
Odpovídá na NouF
Zdenek:18.4.2017 13:53

A můžu se zeptat co se prosim používá?

 
Nahoru Odpovědět
18.4.2017 13:53
Avatar
Petr Čech
Tvůrce
Avatar
Odpovídá na Zdenek
Petr Čech:18.4.2017 14:21

cokoliv, co má prefix myslq_. V nových verzích PHP dokonce už naštěstí přímo chybí.

Nahoru Odpovědět
18.4.2017 14:21
the cake is a lie
Avatar
Zdenek
Člen
Avatar
Odpovídá na Petr Čech
Zdenek:18.4.2017 17:54

Takže stačí nahradit prefix mysql za mysqli ? Nebo jak by měl být správně napsán kód, který tu prezentuji jako "Akceptované řešení" ? Rád se nechám poučit. Děkuji

 
Nahoru Odpovědět
18.4.2017 17:54
Avatar
santa580
Člen
Avatar
santa580:18.4.2017 18:07

Zkus se podívat na nějaké články tady na síti, například http://www.itnetwork.cz/…ovladace-pdo.

 
Nahoru Odpovědět
18.4.2017 18:07
Avatar
NouF
Člen
Avatar
Odpovídá na Zdenek
NouF:20.4.2017 7:38

Jak už psal Santa, využívá se PDO.

 
Nahoru Odpovědět
20.4.2017 7:38
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 12 zpráv z 12.