Autor Zpráva
Ejdm7
Profil *
Ahoj,
ač jsem hledal různě na internetu, tak se mi nepodařilo přijít na to, proč nefunguje tenhle dotaz.
$obsah = mysql_query("SELECT videa.*, blogeri.id, blogeri.jmeno FROM `videa` inner join `blogeri` on videa.bloger = blogeri.id_blogera  WHERE `videa.id` = ".$_GET['id']."") or die ("Nepovedlo se.");

Vypíše Nepovedlo se..

Ještě nemám jasno v tom, jak data z tohoto dotazu vypsat. Zda stačí vypsat $vypis['titulek'] nebo je potřeba zapsat $vypis['videa.titulek'] při použití while.


UPDATE:
1) Našel jsem si chybu, že mám ve výpisu tabulek místo blogeri.id_blogera blogeri.id, ale ani po opravení to nefunguje.
2) Použití or die (mysql_error($obsah)) nevypíše nic.
Radek9
Profil
Ejdm7:
Nemělo by tam místo blogeri.id_blogera být jen blogeri.id? Jinak mě nic nenapadá, syntakticky je to správně. Doporučuju ještě ošetřit ten vstup z $_GETu, mělo by to stačit jen přetypovat na číslo.

Zda stačí vypsat $vypis['titulek'] nebo je potřeba zapsat $vypis['videa.titulek']
První možnost. Takže bacha, kdybys vybíral dva sloupce se stejným názvem.

Edit: Aha, jsem slepý. juriad kápl na chybu. :-)
juriad
Profil
Ejdm7:
Místo výpisu „Nepovedo se“ si raději vypiš skutečnou chybu pomocí mysql_error.
Nepoužíváš správně zpětné apostrofy - pokud jim nerozumíš, raději je nepoužívej. Problém je v posledním použití.
Databáze očekává sloupec pojmenovaný přesně (s tečkou v názvu) videa.id - takový tam není, je tam jen sloupec id v tabulce videa, tedy správně je buď videa.id nebo, chceš-li použít zpětné apostrofy, `videa`.`id`.

Ve výsledku se původní názvy tabulek a aliasy ztratí. Budeš tedy k přistupovat jen pomocí $vypis['titulek'].
Ejdm7
Profil *
Radek9, juriad:
Díky za rady. Rozběhlo se to, ale výpis stránky je pomalejší. Je to normální nebo může být problém ještě někde jinde?
juriad
Profil
Ejdm7:
Ano, může být problém i jinde. Kolik dotazů do databáze provádíš? Počítej každý tolikrát, kolikrát se spustí.
Nebo ukaž relavantní část kódu. Zkusil jsi měřit výkon skriptu pomocí funkce microtime (viz 2. example)?
Ejdm7
Profil *
juriad:
microtime ukazuje 0.00015783309936523 sekund. Nemá tušení co to znamená.

Vidím to spíš na to, že delší dobu načítání způsobuje obsah stránky (embed video).

Dotaz provádím jeden a spustí se dvakrát (jestli to dobře chápu, tak spuštění odkazu=vybrání řádku databáze).

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