Autor Zpráva
Pavel Vlček
Profil *
Dobrý den. Opět si nemohu pomoct s jedním příkladem z manuálu. Pokud by to bylo možné, tak mi prosím pošlete nové kódy souborů v zipu na mail.
Kód souboru form.php

<form action="pridat.php">

titulek
<input name="titulek">
článek
<textarea name="clanek"></textarea>
autor
<input name="autor">
rubrika
<input neme="rubrika">
<input type="hidden" name="hesloautora">
<input type="submit" value="odeslat">
</form>

kód souboru pridat.php

<?

/* vypočítá se $datum, ověří se $hesloautora */
$spojeni = mysql_connect(localhost,"root","" );
mysql_select_db(noviny, $spojeni);$vysledek = mysql_query( "insert into clanky values(0, '$titulek','$clanek', '$autor', '$rubrika', '$datum')", $spojeni);
echo "článek byl přidán";
?

a nakonec kód souboru read.php

<h1>Výpis článků</h1>

<?
$spojeni = mysql_connect(localhost,"root","" );
mysql_select_db(noviny, $spojeni);
$vysledek = mysql_query(
"SELECT * FROM clanky ORDER BY datum",
$spojeni);
/* Konec přímé práce s databází. */
/* Cyklem procházím řádky výsledku a vytahuju z něj hodnoty do nového pole $zaznam*/
while ($zaznam = mysql_fetch_array($vysledek) ):
echo "<p><a href='vypisclanku.php?id=";
echo $zaznam["id"];
echo "'>";
echo $zaznam["titulek"];
echo "<br> ";
echo $zaznam["uvod"];
echo "<br>";
echo "Autor: ";
echo $zaznam["autor"];
echo "</p>";
endwhile;
?>

Za pomoc děkuji. Chci to poslat vše v zip, protože tady to kopýrování kódů mi nikdy nefungovalo. Vždy se něco zkopýrovalo jinak.
Díky.
pk11
Profil *
a mohl bys tedy taky napsat, co je za problém, resp. co ti nefunguje (s čím si "nemůžeš pomoct") ?
pro začátek tedy ..

jinak nezlob se na mě, nepatří to sem, ale odkud jsi zkopíroval slovo "kopýrovat"?
opravdu se nezlob, vím, že lidi píšou všelijak, ale tohle je skutečně (neskutečná) prasárna
djlj
Profil
kopýrování
To má něco společného s pýrem plazivým?

Co se týká kódu: používej superglobální proměnné, nebo si nastav v php.ini register_globals na On (doporučuji však první variantu), pak ti to bude fungovat.
koudi
Profil
djlj
To má něco společného s pýrem plazivým?
Zkoušel jsi někdy vodku říznutou pýrem plazivým?
Pavel Vlček
Profil *
Píše mi to nějaké undefinet funkce in c:program fileseasyphpwwwa název toho souboru.
Manq
Profil
Pavel Vlček
Asi nemáš danou funkci definovanou - neextistuje, není povolena.
pk11
Profil *
Pavel Vlček
prosímtě Pavle, jestli chceš vážně pomoci, napiš co možná nejpřesněji:

CO a KDY ti "to" píše

lidi tady ti určitě rádi pomohou, ale nemůžeš po nich chtít, aby to hádali, tohle není věštírna
je tak těžké použít CTRL+C a CTRL+V ?
pokud to zvládneš, věř mi, že to budeš mít vyřešené (velmi) brzy
Pavel Vlček
Profil *
Když něco přidám, pošle to tuhle zprávu.

Notice: Use of undefined constant noviny - assumed 'noviny' in c:program fileseasyphp1-8wwwpridat.php on line 4

Notice: Undefined variable: titulek in c:program fileseasyphp1-8wwwpridat.php on line 4

Notice: Undefined variable: clanek in c:program fileseasyphp1-8wwwpridat.php on line 4

Notice: Undefined variable: autor in c:program fileseasyphp1-8wwwpridat.php on line 4

Notice: Undefined variable: rubrika in c:program fileseasyphp1-8wwwpridat.php on line 4

Notice: Undefined variable: datum in c:program fileseasyphp1-8wwwpridat.php on line 4
článek byl přidán.
Když dám výpis článků, tak to napíše tohle.
Výpis článků

Notice: Use of undefined constant noviny - assumed 'noviny' in c:program fileseasyphp1-8www ead.php on line 4

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:program fileseasyphp1-8www ead.php on line 10
S tím kopírováním jsem myslel tohle.
Když někdo napíše opravený kód a já to kopýruji pomocí označení řádků a ctrl+c, tak se mi některé znaky přehodí na jiný řádek a pak mi ten kód nefunguje. Poslední případ byl s mojí hrou. Kód jsem zkopíroval, ale někde se vloudila chyba. Pak jsem ten saám kód stáhl z webové stránky a to mi šlo.Díky.
pk11
Profil *
no vida - to už je lepší:

1)
mysql_select_db(noviny, $spojeni)
- špatně
mysql_select_db("noviny", $spojeni)
- dobře (název databáze musí být v uvozovkách, jinak to bere jako konstantu a žádnou takovou tam definovanou nemáš)

2)
"undefined variable" znamená nedefinovaná proměnná - ten skript je prostě nepozná. Jak ti radil djlj používej superglobální proměnné: nejdřív definuj "method" u tagu <form>:

<form action="pridat.php" method="post">


a následně do kódu skriptu "pridat.php" přidej (ještě před tím dotazem do databáze):


$titulek = $_POST['titulek'];
$clanek = $_POST['clanek'];
$autor = $_POST['autor'];
$rubrika = $_POST['rubrika'];
$datum = $_POST['datum'];


teď by ti to mělo fungovat

jinak jsem rád, že už děláš pokroky v českém jazyce :-) ("kopírovat" x "kopýrovat") - už jsi to (jednou) napsal správně.
Pavel Vlček
Profil *
Pořád to něco hlásí. To bude tím, že jsem ta data umístil blbě.
Soubor pridat.php vypadá takto.

<?

/* vypočítá se $datum, ověří se $hesloautora */
$spojeni = mysql_connect("localhost","root","" );
$titulek = $_POST['titulek'];
$clanek = $_POST['clanek'];
$autor = $_POST['autor'];
$rubrika = $_POST['rubrika'];
$datum = $_POST['datum'];

mysql_select_db("noviny", $spojeni);$vysledek = mysql_query( "insert into clanky values(0, '$titulek','$clanek', '$autor', '$rubrika', '$datum')", $spojeni);
echo "článek byl přidán.";

?>

Asi jsem to tam dal špatně.
pk11
Profil *
co ti to ještě hlásí?
ještě jsme "zapoměli" opravit řádek v souboru "read.php"
mysql_select_db("noviny", $spojeni);
(opět uvozovky)
tím by se měla odstranit ta poslední hláška
zkus to a kdyžtak zase pošli tu chybovou hlášku
Pavel Vlček
Profil *
Hlásí to totéž.
pk11
Profil *
co totéž? "mysql_fetch_array(); supplied argument..." ?? pak by už nebyl problém s ukládáním do databáze, ale "porucha" bude někde v tom "SELECT * bla bla"
pošli tu hlášku
Pavel Vlček
Profil *

Notice: Undefined index: titulek in c:program fileseasyphp1-8wwwpridat.php on line 4

Notice: Undefined index: clanek in c:program fileseasyphp1-8wwwpridat.php on line 5

Notice: Undefined index: autor in c:program fileseasyphp1-8wwwpridat.php on line 6

Notice: Undefined index: rubrika in c:program fileseasyphp1-8wwwpridat.php on line 7

Notice: Undefined index: datum in c:program fileseasyphp1-8wwwpridat.php on line 8
článek byl přidán.
pk11
Profil *
ono těch chybiček tam bude ještě asi víc.
prosímtě
$datum = $_POST['datum'];
si vyškrtni, teď jsem si všiml, že ho neposíláš z formuláře, ale "počítáš" ho

potom nevím, proč vkládáš "0" v tom INSERT. jestli máš v databázi sloupeček "id", je lepší ho generovat jako "auto_increment" a pak bude správně:
$vysledek = mysql_query( "insert into clanky values('', '$titulek','$clanek', '$autor', '$rubrika', '$datum')", $spojeni);


víc ti řeknu, až sem zase hodíš, co ti to hlásí
pk11
Profil *
Hlásí to totéž.
nehlásí ("undefined variable" je něco jiného než "undefined index")
používáš PHPMyadmin? co ti to ukládá do databáze? pravděpodobně bude prázdná, že?
pk11
Profil *
doplnil jsi tam tohle?
<form action="pridat.php" method="post">
Pavel Vlček
Profil *
To jsem doplnil a tu tabulku clanky jsem vytvořil a dal jsem jí 5 sloupců.
Pavel Vlček
Profil *
Teď mi to hlásí následující.


Notice: Undefined index: rubrika in c:program fileseasyphp1-8wwwpridat.php on line 7

Notice: Undefined variable: datum in c:program fileseasyphp1-8wwwpridat.php on line 9
článek byl přidán.
pk11
Profil *
tak to je zapeklité.
zkus ještě následující:
v řádku
<input neme="rubrika">
je chyba ("neme"), oprav to na "name".
pak ještě umísti na začátek souboru "pridat.php" kód:

echo '<pre>';

print_r($_POST);
echo '</pre>';
exit();


a pošli mi, co ti to vypíše.
pk11
Profil *
no předběhl jsi mě.
abych tě nemát: oprav to "neme"
a ten datum se ti tam někde počítá nebo nepočítá?
Pavel Vlček
Profil *
Teď to píše tohle. Ono to píše i to print, takže se ten kód asi špatně vložil do schránky.
echo '
';
print_r($_POST);
echo '
'; exit();
Notice: Undefined variable: datum in c:program fileseasyphp1-8wwwpridat.php on line 15
článek byl přidán.
Pavel Vlček
Profil *
Datum se tam má vkládat automaticky. Já jsem to okoukal z toho příkladu v php/ příklad s novinami.
Pavel Vlček
Profil *
Kdyžtak mi napište váš mail a já vám pošlu v zipu všechny 3 soubory. Form.php, pridat.php, read.php.
pk11
Profil *
nic Pavle, zapomeň teď na to print_r (zase to celý odstraň)
a na začátek "pridat.php" napiš:
$datum = date("r");

a zase dej vědět, co to dělá
pk11
Profil *
ok pošli to
pk11@seznam.cz

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0