Autor Zpráva
KryVosa
Profil *
Mám malý kousek kódu:
<?php
$id=$_GET["id"];
$db=@mysql_connect("sql2.webzdarma.cz","AzureDiamond", "hunter2");
$table=@mysql_select_db("fremeni.wz.c9865",$db);
$a=@mysql_query("SELECT `id` FROM `chat` ORDER BY `id` DESC LIMIT 1");
$a=mysql_fetch_array($a)["id"];
if($id<$a)
{
$ne=@mysql_query("SELECT * FROM `chat` ORDER BY `id` DESC LIMIT ".$a-$id);
echo $a-$id;
while($zaznam=mysql_fetch_array($ne)){
    echo $a."%5-5%<div class='message'><span class='jmeno'>".$zaznam["name"]."</span>: ".$zaznam["text"]."<span class='time'>".$zaznam["time"]."</span></div>";
}} 


?>
Ale po vypsání se vypíše jen řádek 9.
Část se smyčkou se neprovede... Nevíte proč?

Moderátor Joker: Změnil jsem přihlašovací údaje k databázi.
juriad
Profil
KryVosa:
Protože "SELECT * FROM `chat` ORDER BY `id` DESC LIMIT ".$a-$id
se vyhodnotí jako ("SELECT * FROM `chat` ORDER BY `id` DESC LIMIT ".$a)-$id
a nikoli jako "SELECT * FROM `chat` ORDER BY `id` DESC LIMIT ".($a-$id), jak ty očekáváš.
lionel messi
Profil
KryVosa:

1. Nikdy nezverejňuj heslo k db (ani keď si myslíš, že ho nikto nezneužije).
2. Použitie operátoru @ na potlačenie chýb je fuj, potlačí totiž všetky chyby vrátane fatálnych a navyše spomaľuje beh programu, dôrazne odporúčam nepoužívať.
Joker
Profil
KryVosa:
Příště před vložením kódu na veřejnou diskusi z něj odstraňte skutečná přihlašovací jména a hesla. (V příspěvku jsem to změnil.)

Dále odstraňte z toho kódu všechny zavináče. Pak když někde nastane chyba, bude alespoň zřejmé, jaká chyba nastala a kde.
KryVosa
Profil *
Děkuji, povedlo se.
Zavináče jsem ani nepochopil, ani nepostřehl... Chyby mi to na webzdarma nevypisuje pro jistotu nikdy.

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:

0