21. září bude sraz! Od 18.00 v restauraci Tradice v Praze u Anděla
Autor Zpráva
Milan1236000
Profil
Zdravím,
proč, když mám několik tagů <?php ... ?> v html, se při každém dalším tagu musím pokaždé znovu připojovat k databázi? Myslel jsem, že dokud tam nenapíšu $pripojeni->close();, spojení se nepřeruší.
Alphard
Profil
Platnost proměnných se zachovává, připojení k databázi také. Problém bude jinde.
Milan1236000
Profil
Alphard:
Aha, mrknu se na to.

$vysledek = $pripojeni->query("SELECT * FROM `tabulka` WHERE Id=\"5\"");
printf("%s - %s", $vysledek->fetch_object()->Interpret, $vysledek->fetch_object()->Skladba);
Proč se text za pomlčkou nevypíše?
Alphard
Profil
Nevím, jaká knihovna je použita, ale tipuji, že se fetch_object() při opakovaném volání snaží přečíst další (neexistující) záznam.
Milan1236000
Profil
Knihovna je mysqli. Je zajímavé, že tohle, i když je to skoro to samé, funguje.
$vysledek = $pripojeni->query("SELECT * FROM `tabulka` WHERE Id=\"5\"");
$nadpis = $vysledek->fetch_object();
printf("%s - %s", $nadpis->Interpret, $nadpis->Skladba);
Kubo2
Profil
Milan1236000:
Takže problém je to, čo uviedol Alphard [#4].
Joker
Profil
Milan1236000:
Je zajímavé, že tohle, i když je to skoro to samé, funguje.
Není to to samé.

Jak píše [#4] Alphard: Volání fetch_object() čte další záznam, takže kód v [#5] vypíše dva atributy téhož záznamu, kód v [#3] vypíše atribut Interpret jednoho záznamu, pokusí se načíst další záznam (který zřejmě neexistuje) a vypsat jeho atribut Skladba.
tiso
Profil
Milan1236000: „i když je to skoro to samé
Je rozdiel medzi:
vyber papier s tlačiarne, otoč stránku, prečítaj prvý riadok, otoč stránku, prečítaj druhý riadok
a:
vyber papier s tlačiarne, otoč stránku, prečítaj prvý riadok, prečítaj druhý riadok
S takýmto prístupom v programovaní ďaleko nedôjdeš.
Milan1236000
Profil
Díky všem za odpověď. Dobře, chápu, budu si na to muset zvyknout, že to tak prostě je.
Vypadá to, že právě tohle byla ta chyba, kdy se zbytek nezobrazoval. Myslel jsem, že to je přerušením spojení při uzavření tagu <?php ... ?>.

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