Autor Zpráva
MaxDJs
Profil *
Zdravím,

bylo by možno mi poradit, co mám blbě v tomto skriptu. Data získávám z databáze. Checkboxy by se měli zobrazit napozicované podle souřadnic získaných z databáze, ale místo 492 napozicovaných checkboxů se mi zobrazí pouze jeden checkbox v levém horním rohu.

<?php
$server = "localhost"; // jméno serveru
$login = "root"; // prihlašovací jméno
$heslo = ""; // heslo
$databaze = "rezervace_ples"; // název databáze
MySQL_Connect($server, $login, $heslo) or die("Nepodarilo se pripojit k databázi"); // pripojení k databázi
MySQL_Select_DB($databaze) or die("Nepodarilo se otevrít databázi"); // výber databáze
$i = 0;
$s = 1;
$x = 0;
$y = 0;
$pocet = mysql_result(mysql_query("SELECT COUNT(*) FROM sedadla"), 0);
$query_x = "SELECT souradnicex FROM sedadla WHERE kategorie='".$i."';";
$query_y = "SELECT souradnicey FROM sedadla WHERE kategorie='".$i."';";

echo "<table>";
while ($i <= $pocet){
$x = MySQL_Query($query_x);
$y = MySQL_Query($query_y);
echo "<input type=\"checkbox\" style=\"position:absolute;top:".$x."px;left:".$y."\" />";
$i++;
$s++;
}
echo "</table>"
?>



Děkuji za odpověď

Moderátor Alphard: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
Alphard
Profil
MaxDJs:
Máte to chybně sestavené, mysql_query() na řádcích 18 a 19 vám nevrátí požadovanou pozici. I když tam dáte mysql_result, inkrementace $i nebude fungovat zamýšleným způsobem.

Jak vypadá ta tabulka? Nešlo by ty hodnoty vytáhnout jedním dotazem?
Keeehi
Profil
<?php 
$server = "localhost"; // jméno serveru 
$login = "root"; // prihlašovací jméno 
$heslo = ""; // heslo 
$databaze = "rezervace_ples"; // název databáze 
MySQL_Connect($server, $login, $heslo) or die("Nepodarilo se pripojit k databázi"); // pripojení k databázi 
MySQL_Select_DB($databaze) or die("Nepodarilo se otevrít databázi"); // výber databáze 
$dotaz = "SELECT souradnicex, souradnicey FROM sedadla"; 
$vysledek = MySQL_Query($dotaz); 

while (list($x,$y)=mysql_fetch_row($vysledek)){ 
    echo "<input type=\"checkbox\" style=\"position:absolute; top: {$y}px; left: {$x}px;\" />"; 
} 
?>

Máš tam mnoho chyb, většinou v logice. Jednu ti ale musím vysvětlit. Funkce mysql_query se provádí pouze jednou a "navrátí" už všechny výsledky. Do proměnné $vysledek se uloží jakýsi identifikátor který ukazuje na tyto výsledky. A potom se několikrát provádí funkce mysql_fetch_row(). Ta při prvním provedení vrátí první řádek z výsledků, při druhém provedení vrátí druhý řádek, při třetím vrátí třetí, atd. Chci tedy říci, že je potřeba použít funkci mysql_query jen jednou a výsledky získávat v cyklu pomocí některé z funkcí mysql_fetch_* (* = row/assoc/array/object).
MaxDJs
Profil *
Keehi:

Děkuji za radu.
MaxDJs
Profil *
Vypíše mi to tohle varování:

Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in C:\wamp\www\odchyceni_pozice_sedadel\index-prizemi.php on line 20
Keeehi
Profil
Na desátý řádek vlož echo mysql_error();
Co to vypíše za chybu?
MaxDJs
Profil *
Už jsem našel chybu. Odkazoval jsem se na sloupec, který neexistuje.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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