Dotaz od úplného začátečníka

Jakým způsobem můžu přidat záznam do tabulky v databázy? Například z nějakého formuláře? Mohl by mi někdo uvést nějaký příklad? Díky moc
Tak teda dobře. Dejme tomu, že budeš mít knihu návštěv. V PHPmyAdminu si vytvoříš tabulku:

create table vzkazy
(
id int (5) auto_increment,
jmeno varchar (20),
email varchar (30),
vzkaz text,
datum varchar (10),
primary key (id));

Na jedné stránce budeš mít formulář. Stránka se bude jmenovat dejme tomu - kniha.php -

<form action=vzkazy.php method=get>
<table cellpadding=2>
<tr>
<td align=right>Jméno:
<td><input type=text name=jmeno size=15>
<tr>
<td align=right>Email:
<td><input type=text name=email size=15>
<tr>
<td align=right valign=top>Zpráva:
<td><textarea name=vzkaz rows=10 cols=2></textarea>
<tr>
<td>
<td><input type=submit name=odeslat value=Odeslat>
</td></tr></table>
</form>

A teď příjde na řadu soubor vzkazy.php

<?

//Připojení k databázi
mysql_connect("mysql.webzdarma.cz","uživatel","heslo");
mysql_select_db("název databáze"); //jméno uživatele

//Vložení příspěvku do databáze
if(IsSet($odeslat):

$datum = Date("j."."m."."Y");

mysql_query("insert into vzkazy values ('$id' , '$jmeno' , '$email' , '$vzkaz', '$datum')");

//Vybrání všech příspěvků z databáze, seřazených sestupně podle data přidání.
$result = mysql_query("select * from vzkazy order by id desc");
$pocet = mysql_num_rows($result);

?>

<h1>Kniha návštěv</h1>

<p>Počet záznamů: <? echo $pocet ?></p>

<?
//Načtení všech příspěvků do asociativního pole
$while($row = mysql_fetch_array($result):
$id = $row["id"];
$jmeno = $row["jmeno"];
$email = $row["email"];
$vzkaz = $row["vzkaz"];
$datum = $row["datum"];

echo "<p>Jméno: ".$jmeno."<br>Email: <a href=\"mailto:".$email."\">".$email."</a><br>Vzkaz: ".$vzkaz."<br>Datum: ".$datum."<hr>;

endwhile;
endif;

//Konec připojení z databází
mysql_close();
?>



Tak tohle je základní způsob jak vkládat data do databáze a zpětně si je prohlížet.
Data je možný ještě ošetřit mnoha funkcemi v PHP.
Za případné chyby se omlouvám.

Petr
Sorry tenhle řádek nebude takhle:

$while($row = mysql_fetch_array($result):

ale takhle:

$while($row = mysql_fetch_array($result)):

Petr
A ještě jednou já:

příkaz endif; dej hned za:

//Vložení příspěvku do databáze
if(IsSet($odeslat):
$datum = Date("j."."m."."Y");
mysql_query("insert into vzkazy values ('$id' , '$jmeno' , '$email' , '$vzkaz', '$datum')");
//Vybrání všech příspěvků z databáze, seřazených sestupně podle data přidání.
$result = mysql_query("select * from vzkazy order by id desc");
$pocet = mysql_num_rows($result);
endif;

Protože jinak při vstupu na stránku vzkazy.php, by se ti nic nezobzrazilo.

Petr
Někde mám chybu.


<?

//Připojení k databázi
mysql_connect("mysql.webzdarma.cz","uživatel","heslo");
mysql_select_db("databaze"); //jméno u?ivatele

//Vlo?ení příspěvku do databáze
if(IsSet($odeslat)):

$datum = Date("j."."m."."Y");

mysql_query("insert into vzkazy values ('$id' , '$jmeno' , '$email' , '$vzkaz', '$datum')");

//Vybrání v?ech příspěvků z databáze, seřazených sestupně podle data přidání.
$result = mysql_query("select * from vzkazy order by id desc");
$pocet = mysql_num_rows($result);
endif;
?>


<h1>Kniha náv?těv</h1>

<p>Počet záznamů: <? echo $pocet ?></p>

<?
$while($row = mysql_fetch_array($result)):
$id = $row["id"];
$jmeno = $row["jmeno"];
$email = $row["email"];
$vzkaz = $row["vzkaz"];
$datum = $row["datum"];

echo "<p>Jméno: ".$jmeno."<br>Email: <a href=\"mailto:".$email."\">".$email."</a><br>Vzkaz: ".$vzkaz."<br>Datum: ".$datum."<hr>;

endwhile;
endif;

mysql_close();
?>




Nejdřív vykazoval chybu v "if(IsSet($odeslat):", Tak jsem přidal závorku."if(IsSet($odeslat)):" Nevím jestli je to dobře!

Po tomto zákroku objevil dále chybu v
"$while($row = mysql_fetch_array($result)):"

Nevím co s tím,nic tam nevidim!
Díky
... pred while dolar nepatri ...
... podminku 'if (isset ($odeslat))' bych pouzil jen na INSERT .. potom bych ji ukoncil a vypsat vzkazy bych nechal vzdycky ...
... a to cely dal do jednej stranky - neco jako guestbook ...
Správně, omlouvám se, těch dolarů jsem tam dal moc a i tam kam vůbec nepatřej. Správně tedy ještě jednou:

while($row = mysql_fetch_array($result)):

Moc se omlouvám - while je cyklus a ne proměnná !

Petr
Tak jsem postupoval přesně podle návodu i se všemi opravami, ale ke kladnému výsledku to stejně nevedlo :((. Stále mě to hází stejnou chybu:

Parse error: parse error in /3w/webzdarma.cz/w/warapeidza/vzkazy.php on line 8

znamená to, že mám chybu na osmém řádku v vzkazy.php? uživatel i heslo je zadaný správně, jsem z toho už zoufalý, please help...


<?
mysql_connect("mysql.webzdarma.cz","uzivatel","heslo");
mysql_select_db("vzkazy"); //jméno u?ivatele

if(IsSet($odeslat)):
$datum = Date("j."."m."."Y");
mysql_query("insert into vzkazy values ('$id' , '$jmeno' , '$email' , '$vzkaz', '$datum')");
$result = mysql_query("select * from vzkazy order by id desc");
$pocet = mysql_num_rows($result);
endif;
?>

<h1>Kniha náv?těv</h1>
<p>Počet záznamů: <? echo $pocet ?></p>
<?
while($row = mysql_fetch_array($result)):
$id = $row["id"];
$jmeno = $row["jmeno"];
$email = $row["email"];
$vzkaz = $row["vzkaz"];
$datum = $row["datum"];
echo "<p>Jméno: ".$jmeno."<br>Email: <a href=\"mailto:".$email."\">".$email."</a><br>Vzkaz: ".$vzkaz."<br>Datum: ".$datum."<hr>;
endwhile;
endif;
mysql_close();
?>



u knihy mi to pak píše toto: Warning: mysql_connect(): Access denied for user: 'nobody@localhost' (Using password: NO) in /3w/webzdarma.cz/w/warapeidza/kniha.php on line 5
Nepoda?ilo se p?ipojit k MySQL servru.
ach jo..