Autor Zpráva
trsak1
Profil
Dobrý den,
s PHP se teprve učím a mám násladující script:
<table border="1" align="center">
<tr style="font-weight: bold;">
    <th bgcolor="red" align="center" color="#DC7602">*</th>
    <th bgcolor="red" align="center" color="#DC7602">Jméno</th>
    <th bgcolor="red" align="center" color="#DC7602">Hodnost</th>
</tr>

<?php
require "db.php";
//..
$mysql=mysql_query("select id,jmeno,mail,web from uzivatele order by jmeno");
while ($vysledek=mysql_fetch_array($mysql)){
    echo('
          <tr>
              
              <td align="center">'.$vysledek["id"].'</td>
              <td align="center">'.$vysledek["jmeno"].'</td> 
               <td align="center">-</td> 
              
          </tr>');
}
?>
</table>

Chtěl jsem se zeptat, jak se dá například po kleknutí na id udělat, aby to bylo seřazný podle id atd.
mckay
Profil
trsak1:
Předávej si v $_GET["order"] sloupec, kterej je použitý jako hlavní řadič a nadpis v tabulce udělej jako odkaz, který bude směřovat na tvujsoubor.php?order=nazev_sloupce (ten nazev sloupce by měl být v ideálním případě shodný s tím v databázi, aby si to potom nemusel překládat) a :


$order = htmlspecialchars($_GET["order"]);
$mysql=mysql_query("select id,jmeno,mail,web from uzivatele order by $order");

kvoky
Profil
mckay:
Nikdy není dobrý ukazovat případnému útočníkovi jakou máš strukturu tabulky. Mimochodem nevím jestli stačí htmlspecialchars(), radši bych používal mysql_real_escape_string

Udělal bych to asi nějak takhle:

$sloupce=array("id", "jmeno", "hodnost");
if (in_array($_GET["order"],  $sloupce){
  $order=$sloupce[$_GET["order"]];
}else{
  $order=$sloupce[0];
}

$mysql=mysql_query("select id,jmeno,mail,web from uzivatele order by $order");
trsak1
Profil
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /3w/webz.cz/f/five-fingers/list.php on line 119
Toto mi to píše
trsak1
Profil
kvoky:
<
table border="1" align="center">
<tr style="font-weight: bold;">
    <th bgcolor="red" align="center" color="#DC7602"><a href="list.php?=id">*</a></th>
    <th bgcolor="red" align="center" color="#DC7602"><a href="list.php?=jmeno">Jméno</a></th>
    <th bgcolor="red" align="center" color="#DC7602"><a href="list.php?=hodnost">Hodnost</a></th>
</tr>

<?php
require "db.php";
//..
$sloupce=array("id", "jmeno", "hodnost");
if (in_array($_GET["order"],  $sloupce){
  $order=$sloupce[$_GET["order"]];
}else{
  $order=$sloupce[0];
}

$mysql=mysql_query("select id,jmeno,hodnost from uzivatele order by $order");
while ($vysledek=mysql_fetch_array($mysql)){
    echo('
          <tr>
              
              <td align="center">'.$vysledek["id"].'</td>
              <td align="center">'.$vysledek["jmeno"].'</td> 
              <td align="center">'.$vysledek["hodnost"].'</td> 

              
          </tr>');
}
?>
</table>
Píše mi to:Parse error: parse error in /3w/webz.cz/f/five-fingers/list.php on line 118, Co s tím?
panther
Profil
trsak1[#4]:
nech si vypsat mysql_error(), vypiš si dotaz, jestli je v něm to, co potřebuješ (převděpodobně je chyba v proměnné $order).
trsak1
Profil
Parse error: parse error in /3w/webz.cz/f/five-fingers/list.php on line 118
píše to jen toto
panther
Profil
trsak1[#5]:

Píše mi to:Parse error:
tak tam máš syntaktickou chybu - hledej před řádkem uvedeným v zápise. Na to nepotřebuješ diskusi, kód si po sobě zvládneš projít sám, ne?
dan55
Profil
<table border="1" align="center">
<tr style="font-weight: bold;">
    <th bgcolor="red" align="center" color="#DC7602"><a href="list.php?=id">*</a></th>
    <th bgcolor="red" align="center" color="#DC7602"><a href="list.php?=jmeno">Jméno</a></th>
    <th bgcolor="red" align="center" color="#DC7602"><a href="list.php?=hodnost">Hodnost</a></th>
</tr>

<?php
require "db.php";
//..
$sloupce=array("id", "jmeno", "hodnost");
if (in_array($_GET["order"],  $sloupce)){
  $order=$sloupce[$_GET["order"]];
}else{
  $order=$sloupce[0];
}

$mysql=mysql_query("select id,jmeno,hodnost from uzivatele order by $order");
while ($vysledek=mysql_fetch_array($mysql)){
    echo('
          <tr>
              
              <td align="center">'.$vysledek["id"].'</td>
              <td align="center">'.$vysledek["jmeno"].'</td> 
              <td align="center">'.$vysledek["hodnost"].'</td> 

              
          </tr>');
}
?>
</table>

Zkus to,dál jsem nezkoumal
trsak1
Profil
Už to nevypisuje chybu, po kliknutí se však nic nestane, podívat se můžete Zde
mattyZEM
Profil
list.php?=hodnost eh, asi ti tam chybí název toho $_GET -.-'

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /3w/webz.cz/f/five-fingers/list.php on line 125
trsak1
Profil
mattyZEM:
mohl by jste to prosím upřesnit? Jsem začátečník
kvoky
Profil
zkus predelat ten radek na:

$mysql=mysql_query("select id,jmeno,hodnost from uzivatele order by $order") or die (mysql_error());


a posli co ti to vypsalo za chybu.
mattyZEM
Profil
trsak1:
mohl by jste to prosím upřesnit
Že ti v odkazu chybí i to "order". Nyní to odkazuje na ?=XX, ale správně to má být ?order=XX..

A to druhé je chyba když zkusím právě to order.
mckay
Profil
[#3] kvoky

Není to moje, ale trsak1ova tabulka ;).

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: