Autor Zpráva
Petrav
Profil *
Mám zřejmě triviální dotaz, ale zkusím to:

když si na stránky vypíšu z databáze úvodní odstavce třeba 10 článků, jak má vypadat odkaz, který mi z databáze načte celý článek a otevře ho na nové stránce?

Díky za ochotu.
Leo
Profil
No proste z te databaze misto jednoho odstavce pro deset clanku nactes vsehny odstavce pro jeden clanek. Leo
Petrav
Profil *
no, to je mi jasný, nemůžu ale přijít na to, jak to udělat, aby se mi otevřel ten správný článek, asi to vysvětluju úplně blbě, ach jo.

když to zjednoduším, vypadá ten skript takto:

$dotaz = "SELECT nazev, perex, ID_clanku FROM t_clanky ORDER BY vlozeno DESC LIMIT 10";
$výsledek = @mysql_query ($dotaz); //spustí dotaz
if ($výsledek) { //je-li vše ok

while ($řádek = mysql_fetch_array($výsledek, MYSQL_NUM)) {
echo "<h3><a href=???tohle právě nevím????>$řádek[0]</a></h3> $řádek[1] \n ";
}
} else { //něco nevyšlo
echo '<p>Při načítání stránky došlo k systémové chybě. Omlouváme se.</p><p>'. mysql_error(). '</p>';
}

ještě jednou dík
thingwath
Profil *
No, tam právě musí být odkaz na skript, který ten článek vypíše :-) Takže třeba něco ve tvaru [code]skript.php?clanek=$řádek[2][/code].

V odkazovaném skriptu pak bude nutné (nejlepší bude, když se odkážete přímo na tenhle) přidat test na proměnnou $_GET['clanek'] a podle toho z databáze vytáhnout celý článek a vypsat ho.
thingwath
Profil *
Odkaz to sám o sobě nevyřeší :-) Napsal bych to asi takhle (taky zjednodušeně):


if (isset($_GET['clanek']) {
$vysl = mysql_query ('SELECT * FROM t_clanky WHERE ID_clanku='.$_GET['clanek']);
// a tady ten vysledek nejak vypsat...
}else{
$dotaz = "SELECT nazev, perex, ID_clanku FROM t_clanky ORDER BY vlozeno DESC LIMIT 10";
$výsledek = @mysql_query ($dotaz); //spustí dotaz
if ($výsledek) { //je-li vše ok
while ($řádek = mysql_fetch_array($výsledek, MYSQL_NUM)) {
echo "<h3><a href=\"tenhle_skript.php?clanek=$řádek[2]\">$řádek[0]</a></h3> $řádek[1] \n ";
}
}
thingwath
Profil *
u isset chybí uzavření závorky, takhle to vypadá, když píšu bez zvýrazňování párů závorek :-)
Petrav
Profil *
super, hned vyzkouším, díky moc
Petrav
Profil *
tak nevím, pořád dělám někde chybu, nějak mi to nefunguje

momentálně jsem splácala tohle:

if (isset($_GET['clanek'])) {
$dot = "SELECT nazev, text FROM t_clanky WHERE ID_clanku='.$_GET['clanek']'";
$vysl = @mysql_query ($dot);
// a tady ten vysledek nejak vypsat...
while ($položka = mysql_fetch_array($vysl, MYSQL_NUM)) {
echo "<h2>$položka[0]</h2> $položka[1] \n ";
}
}else{
//dotaz na DB
$dotaz = "SELECT nazev, perex, ID_clanku FROM t_clanky ORDER BY vlozeno DESC LIMIT 10";
$výsledek = @mysql_query ($dotaz); //spustí dotaz
if ($výsledek) { //je-li vše ok
while ($řádek = mysql_fetch_array($výsledek, MYSQL_NUM)) {
echo "<h3><a href=\"skript.php?clanek=$řádek[2]\">$řádek[0]</a></h3> $řádek[1] \n ";
}
} else { //něco nevyšlo
echo '<p>Při načítání stránky došlo k systémové chybě. Omlouváme se.</p><p>'. mysql_error(). '</p>';
}
}
thingwath
Profil *
Jak na to koukám, tak se ti moc nepovedl ten přepis SQL dotazu. ID_clanku je předpokládám číslo?

Každopádně bude v proměnné $dot asi něco takového

SELECT nazev,text FROM t_clanky WHERE ID_clanku='.X'


Přepsal bych druhý řádek asi takhle

$dot = "SELECT nazev,text FROM t_clanky WHERE ID_clanku='".$_GET['clanek']."'";


To všechno za předpokladu, že ID_cislo je v databázi uloženo nějakým znakovým datovým typem, pokud není, tak by tam ty uvozovky '' byly nadbytečné - v případě že je ID_cislo nějaký číselný datový typ, tak použij SQL dotaz z mého prvního příkladu.
thingwath
Profil *
A nebo možná spíš tvoje řešení píše chybu parseru, teď si nejsem jist.
thingwath
Profil *
Kdyby to nešlo, tak popiš jak to nejde, abych se nemusel dohadovat čím to je.
Petrav
Profil *
FUNGUJE to!!! díky moc
Toto téma je uzamčeno. Odpověď nelze zaslat.