Autor Zpráva
*Čvachta*
Profil *
Začnu takto:


$dotaz = mysql_query("
SELECT
clanky.url,
DATE_FORMAT(clanky.datum, '%W %d.%m.%Y') AS datum,
clanky.nazev,
clanky.obsah,
kategorie.kategorie_url,
kategorie.kategorie_nazev,
ifnull(count(komentare.id),0) as komentare
FROM clanky
JOIN kategorie
ON kategorie.kategorie_id = clanky.kategorie
LEFT JOIN komentare
ON clanky.url=komentare.clanek
WHERE kategorie.kategorie_url = '$kategorie'
GROUP BY clanky.url
ORDER BY clanky.id DESC;
");

existuje($dotaz);

/* Nazev kategorie */

$title = mysql_query("SELECT kategorie_nazev FROM kategorie WHERE kategorie_url = '$kategorie';");

$title = databaze($title);

$titulek = $titulek .' » kategorie » '.$title['kategorie_nazev'];


Tak, jde mi o ten druhý sql dotaz do databáze. Šlo by to tak, že bych místo toho dotazu zkopíroval výsledek toho prvního do jiné proměné a pomocí mysql_fetch_array vytáhl pouze první řádek a z něj si vzal kategorie_nazev?

Zkoušel jsem to, ale když jsem to udělal tak mi v původní proměné něco chybělo...

funkce databaze($prom) dělá:

return mysql_fetch_array($prom);

Jak to tedy udělat? Ještě jedna věc, nesmím data vypsat před tím, ty se vypisují až později v kódu.
peta
Profil *
*Čvachta*
Ja treba nechapu, zkus to vysvetlit nejak jednoduse...

Ja treba pro chat pouzivam toto:
if ($login!=="" && $room>0)
{

$tabulka = $tb1."chatRoomsOnline";
$dotaz = "SELECT * FROM $tabulka WHERE `room_id` = '$room'";
$ch_v1 = mysql_query($dotaz) or die("DB error: chat room online! = ".mysql_error());

$tabulka = $tb1."chatRoom".$room;
$dotaz = "SELECT * FROM $tabulka WHERE `line_login1` = '$login' OR `line_login2` = '$login' OR `line_login2` = '' ORDER BY `id` DESC LIMIT 50";
$ch_v2 = mysql_query($dotaz) or die("DB error: chat room lines! = ".mysql_error());

$tabulka = $tb1."chatRoomsOnline";
$dotaz = "SELECT * FROM $tabulka WHERE `room_id` = '$room' LIMIT 1";
$ch_v4 = mysql_query($dotaz) or die("DB error: chat room online! = ".mysql_error());

$v4_pocet = mysql_NumRows($ch_v4);
if ($v4_pocet>0)
{
$sesny0 = session_name()."=".session_id();

$v1_pocet = mysql_NumRows($ch_v1);
$p = array();
for ($i=0;$i<$v1_pocet;$i++)
{
$ch_row1 = mysql_fetch_array($ch_v1);
$p[$ch_row1['room_login']] = $ch_row1['room_color'];
}
...
kde
- prvni dotazem zjistuji vsechny, kteri jsou v mistnosti
- druhym (tim slozitym), vytahuji prvnich 30 radku textu z jine tabulky
- tretim zjistuji, zda je vubec nekdo online (ale tam bude asi chybka, asi tam melo byt jeste porovnani login)
Teprve pozdeji to zpracovavam, takze zkopirovat hodnoty jako takove jde.
Kajman_
Profil *
Pomocí mysql_data_seek() se dá skočit zase na začátek a pak udělat cyklus pro všechny znovu.

$prvni=mysql_fetch_array($res);
mysql_data_seek($res,0);
while($row=mysql_fetch_array($res))
...
*Čvachta*
Profil *
Jo, to bude ono :) Díky za pomoc!
Toto téma je uzamčeno. Odpověď nelze zaslat.

0