Zadejte hledaný výraz...

PHP – Nechápu

Skynet
verified
rating uzivatele
25. 9. 2008 10:07:46
Mám stránku, která mi vypíše všechny články z databáze. Po kliknutí na článek se mi zobrazí formulář, ve kterém mohu daný článek upravit. Problíém ovšem je, že se mi tam dostane vždy jen ten poslední přidaný. Zkoušel jsem několik variant jak se toho zbavit, ale nic. Proto se na Vás obracím s radou :)
Zde je kód:
$dotaz = "SELECT id_clanku, nadpis, popis, clanek FROM clanky";
$vysledek = mysql_query($dotaz);
while ($data = mysql_fetch_array($vysledek)) {
$id = $data;
$nadpis = $data;
$popis = $data;
$clanek = $data;
echo "

$nadpis

rn";
}
if (isset($_GET)) {
if (is_numeric($_GET)) {
?>
Úprava článku
Nadpis:
Popis:
Článek:
} else {
echo "

Pokud kliknete na článek, můžete jej upravit!

rn";
}
}
?>
Za případné rady předem děkuji. Na googlu jsem hledal, ale ani nevím jestli to co potřebuju.
25. 9. 2008 10:07:46
https://webtrh.cz/diskuse/php-nechapu#reply132191
a kde je ze SELECT * FROM clanky WHERE id_clanku=id_clanku ?
25. 9. 2008 10:11:56
https://webtrh.cz/diskuse/php-nechapu#reply132190
Skynet
verified
rating uzivatele
25. 9. 2008 10:14:09
To jsem zkoušel, ale hodilo mi to chybu s mysql_fetch_array() not supply argument nebo něco takového
25. 9. 2008 10:14:09
https://webtrh.cz/diskuse/php-nechapu#reply132189
mas tam form action=post pritom premennu volas cez GET...skus dat $id_clanku = $_REQUEST.
ten select tam takisto musi byt. $vysledok=MySQL("$db","SELECT * FROM clanky WHERE id_clanku='$id_clanku' ");
25. 9. 2008 10:19:13
https://webtrh.cz/diskuse/php-nechapu#reply132188
method som myslel ovsem
25. 9. 2008 10:20:08
https://webtrh.cz/diskuse/php-nechapu#reply132187
Skynet
verified
rating uzivatele
25. 9. 2008 10:24:11
No, takze pokud zadam rucne ..?id_clanku=1 tak se mi zobrazi formular naplneny prislusnym clankem, ale uz se mi nezobrazi ten seznam clanku :(
25. 9. 2008 10:24:11
https://webtrh.cz/diskuse/php-nechapu#reply132186
skus to takto:
$dotaz = "SELECT id_clanku, nadpis, popis, clanek FROM clanky";
$vysledek = mysql_query($dotaz);
while ($data = mysql_fetch_array($vysledek)) {
$id = $data;
$nadpis = $data;
$popis = $data;
$clanek = $data;
echo "

$nadpis

rn";
}
$id_clanku = $_REQUEST;
if (isset($id_clanku) {
if (is_numeric($id_clanku) {
$dotaz = "SELECT id_clanku, nadpis, popis, clanek FROM clanky WHERE id_clanku='$id_clanku'";
$vysledek = mysql_query($dotaz);
$id = $data;
$nadpis = $data;
$popis = $data;
$clanek = $data;
?>
Úprava článku
Nadpis:
Popis:
Článek:
} else {
echo "

Pokud kliknete na článek, můžete jej upravit!

rn";
}
}
?>
25. 9. 2008 10:30:12
https://webtrh.cz/diskuse/php-nechapu#reply132185
Skynet
verified
rating uzivatele
25. 9. 2008 10:36:00
Nefunguje. Nedělá to vůbec nic.
25. 9. 2008 10:36:00
https://webtrh.cz/diskuse/php-nechapu#reply132184
v tom druhom selecte zmen
$id = $data;
$nadpis = $data;
$popis = $data;
$clanek = $data;
na
while ($data = mysql_fetch_array($vysledek)) {
$id = $data;
$nadpis = $data;
$popis = $data;
$clanek = $data;
}
a to uz musi ist
25. 9. 2008 10:40:24
https://webtrh.cz/diskuse/php-nechapu#reply132183
Skynet
verified
rating uzivatele
25. 9. 2008 10:41:00
Pokud je kod takovy
session_start();
include "overit.php";
include "config.php";
?>
Seznam článků

Seznam článků

$dotaz = "SELECT id_clanku, nadpis, popis, clanek FROM clanky WHERE id_clanku='$_REQUEST'";
$vysledek = mysql_query($dotaz);
while ($data = mysql_fetch_array($vysledek)) {
$id = $data;
$nadpis = $data;
$popis = $data;
$clanek = $data;
echo "

$nadpis

rn";
}
if (isset($_GET)) {
if (is_numeric($_GET)) {
?>
Úprava článku
Nadpis:
Popis:
Článek:
} else {
echo "

Pokud kliknete na článek, můžete jej upravit!

rn";
}
}
?>
Napise pouze nadpis

Seznam článků

a tím to končí
pokud odstraním v dotazu $_REQUEST apostrofy, tak to vypíše
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in seznam-clanku.php on line 17
25. 9. 2008 10:41:00
https://webtrh.cz/diskuse/php-nechapu#reply132182
Skynet
verified
rating uzivatele
25. 9. 2008 10:45:11
Hele, díky moc. Už to funguje. Teď by mě jen zajímalo kde jsem měl chybu a zda-li ten kód neni "prasárna", případně jak by se to dalo zkrátit, protože mi to připadá, že taková triviálnost je na moc řádků. Děkuji.
25. 9. 2008 10:45:11
https://webtrh.cz/diskuse/php-nechapu#reply132181
Hubert Frey
verified
rating uzivatele
(11 hodnocení)
25. 9. 2008 10:45:33
Když se zamyslíš nad tím jak se ten while vykonává, tak logicky ti ve tvých proměnných $id,$nadpis,... zůstane vždy poslední článek, prostě v nich zůstanou data z posledního cyklu toho while, a ne ze článku, který si přeješ. Musíš si tedy před zobrazením formuláře vytáhnout data požadovaného článku z databáze. Upravil jsem tvůj kód takto:
$dotaz = "SELECT id_clanku, nadpis, popis, clanek FROM clanky";
$vysledek = mysql_query($dotaz);
while ($data = mysql_fetch_array($vysledek))
{
echo "

".$data."

rn";
}
if (isset($_GET) AND is_numeric($_GET)) {
// vytahnes si dany clanek
$sql = "SELECT id_clanku, nadpis, popis, clanek FROM clanky WHERE id_clanku = '".$_GET."'";
$query = mysql_query($sql);
if (mysql_num_rows($query) != 0)
{
$clanek = mysql_fetch_assoc($query);
}
?>
Úprava článku
Nadpis:
Popis:
Článek:
} else {
echo "

Pokud kliknete na článek, můžete jej upravit!

rn";
}
?>
Ještě drobná rada, podle mě je lepší používat echo 'text' než echo "text", protože v druhém případě musíš escapovat uvozovky u vlastností tagů. A to je potom méně přehledný kód. A také, ikdyž to funguje, raději ukončuj řetězec když do něj vkládáš proměnnou, zase z důvodu přehlednosti. Když pracuješ v editoru, který barevně odlišuje jendotlivé kódy, tak je to mnohem přehlednější co je text a co jsou proměnné a funkce.
Snad jsem ti pomohl:)
25. 9. 2008 10:45:33
https://webtrh.cz/diskuse/php-nechapu#reply132180
toto echo
echo "

$nadpis

rn";
na
echo "

".$nadpis."

rn";
25. 9. 2008 10:45:58
https://webtrh.cz/diskuse/php-nechapu#reply132179
Skynet
verified
rating uzivatele
25. 9. 2008 10:49:02
Super, díky za rady.
25. 9. 2008 10:49:02
https://webtrh.cz/diskuse/php-nechapu#reply132178
Hubert Frey
verified
rating uzivatele
(11 hodnocení)
25. 9. 2008 10:49:54
Napsal Unregistered;119680
toto echo
echo "

$nadpis

rn";
na
echo "

".$nadpis."

rn";
Tak když už ukončuješ řetězec před proměnnou $nadpis tak už všude, tedy i před proměnnou $id
echo "

".$nadpis."

rn";
25. 9. 2008 10:49:54
https://webtrh.cz/diskuse/php-nechapu#reply132177
Pro odpověď se přihlašte.
Přihlásit