Autor Zpráva
kuxa
Profil
Promiňte za dotaz v obrázku, ale používám tam obrázky a kódy
http://jpeg.cz/images/2014/12/28/BjuXt.png
lionel messi
Profil
kuxa:
Promiňte za dotaz v obrázku, ale používám tam obrázky a kódy
Formátovanie kódov je tu úplne jednoduché: Nápoveda.

K veci, ten dotaz by mal vyzerať takto (bez úvodzoviek okolo $id_poznavacky):
SELECT nazev, url FROM tabulka WHERE id_pozn = $id_poznavacky ORDER BY RAND() LIMIT 1

a neviem, čo by na ňom nemalo fungovať. Skús si ešte vypísať chybu (ak nebude fungovať):

$dotaz_obr = mysql_query("SELECT id_pozn, nazev, url FROM tabulka WHERE id_pozn = $id_poznavacky ORDER BY RAND() LIMIT 1") or die(mysql_error());

a nabudúce prosím nekomplikuj situáciu odpovedajúcim a vkladaj kód (a samozrejme aj text) rovno do diskusie.
kuxa
Profil
Díky, zítra to vyzkouším. A není rand() velká zátěž na db? Četl jsem, že to vytváří temporary tabulky atd.
Alphard
Profil
Viz třeba jan.kneschke.de/projects/mysql/order-by-rand. Složitost zvolenéo řešení záleží na tom, jak velké jsou tabulky (jestli se tím vůbec zabývat) a jak moc nám vzhledem k charakteru dat záleží na rovnoměrném rozložení (jestli by nám nestačila verze bez mapovací tabulky).
kuxa
Profil
Díky za odpovědi!
Je to opravdu zapeklité! Když dám to lionelovo řešení, tak to vůbec nic nevypíše, když tam ale upravím tabulku na neexistující, tak to vypíše, že tabulka neexistuje. Možná jsem udělal chybu ve vypisování:
$dotaz_obr = mysql_query("SELECT id_pozn, nazev, url FROM tabulka WHERE id_pozn = $id_poznavacky ORDER BY RAND() LIMIT 1") or die(mysql_error());
      while ($vysledek_obr = mysql_fetch_assoc($dozaz_obr))
       {
        $nazev_zast = $vysledek_obr["nazev"];
        $url_zast = $vysledek_obr["url"];
       }
      echo $url_zast . $nazev_zast; 
Kajman
Profil
Pokud dotaz proběhne v pořádku, ale nevrátí žádný řádek, tak asi není žádný řádek odpovídající hodnotě z $id_poznavacky.
kuxa
Profil
Zvláštní - i když smažu WHERE, tak stejně nic nevypíše...
Taps
Profil
kuxa:
Ve skriptu máš překlep
<?
$dotaz_obr = mysql_query("SELECT id_pozn, nazev, url FROM tabulka WHERE id_pozn = '$id_poznavacky' ORDER BY RAND() LIMIT 1") or die(mysql_error());

if(mysql_num_rows($dotaz_obr) == 1){

    $vysledek_obr = mysql_fetch_assoc($dotaz_obr));
    $nazev_zast = $vysledek_obr["nazev"];
    $url_zast = $vysledek_obr["url"];

    echo $url_zast . $nazev_zast; 
}
else{
    echo 'Nebyl nalezen žádný záznam v databázi';
}
?>
kuxa
Profil
Ááá, tyjo! Díky moc vyzkouším to zítra, ale asi to už pojede. To nesnáším, když několik dní jak blbec řeším jednoduchej problém a pak zjistím, že mám překlep v názvu proměnné...

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: