zápis do databáze

nejde mi zapsat. resp. nejde mi zapsat cokoliv, kde je alespoň jedna proměnná delší než nějakech 20, 30 znaků... :-(


<?php
if ($test != "") {

if (datum == "") {
$datum = date("d. m. Y H:i:s"); //18. 01. 2006 22:39:02
}

//pripojeni k databazi
$username = "tarantino";
$password = "heslo_heslíčko";
$server = "mysql.wz.cz";
$db = "tarantino";
mysql_connect($server, $username, $password);
mysql_select_db($db);
//konec pripojeni k databazi


mysql_query("INSERT INTO rubriky VALUES('', '$rubrika', '$titulek', '$perex', '$clanek', '$autor', '$datum')");
echo ("<span style=\"background-color: #FFA500; border: 2px solid black; padding: 2px;\">odesláno!</SPAN>");
}


?>


<form name="formular" method="post">
<table>
<tr>
<td width="50" align="right">Rubrika:</td>
<td width="400" align="left">
<select name="rubrika">
<option name="zpravy" value="zpravy">zpravy</option>
<option name="clanky" value="clanky">clanky</option>
</select>

zpráva je kratší než článek, měla by se vejít
nějak slušně do tabulky jako je např. na úvodní stránce.</td>
</tr>
<tr>
<td align="right">Titulek:</td>
<td align="left"><input type="text" name="titulek" size="50"></td>
</tr>
<tr>
<td align="right">perex:</td>
<td align="left"><textarea name="perex" cols="55" rows="8"></textarea></td>
</tr>
<tr>
<td align="right">článek:</td>
<td align="left"><textarea name="clanek" cols="55" rows="20"></textarea></td>
</tr>
<tr>
<td align="right">Autor:</td>
<td align="left"><input type="textarea" name="autor" size="20"></td>
</tr>
<tr>
<td align="right">Datum:</td>
<td align="left"><input type="textarea" name="datum" size="20">(18. 01. 2006 22:39:02)</td>
</tr>
<tr>
<td align="right"><input type="hidden" name="test" value="1"></td>
<td align="left"><input type="submit" value="odešli"></td>
</tr>

</form>
</table>
zatim s tim jenom začínám, takže mooc nvm,,, ale je mi to divný, proč to větší texty nezkousne,,,,....
skoukni jestli nemas sloupec do kteryho ukladas delkove omezenej.

jo.. a
<input type="textarea"
vidim poprvy..
ten input -> to je ono... přitom jsem to měl předtim vpho normálně <textarea... :-/
houby.. kecám... už jsem to opravil -> input type="text"

ale stejně to nejde :-(

nastavení tabulky: http://tarantino.wz.cz/db.jpg
if (datum == "") {
$datum = date("d. m. Y H:i:s"); //18. 01. 2006 22:39:02
}


tam je chyba, schvalne, jestli na ni prijdes... jinak doporucuju u kazdeho dotazu dat kontrolu, jestli vubec probehl a jestli nehlasi nejakej mysql_error()...
Jeste detail: pouzivej radsi pro post data z formulare $_POST['promenna'], nez $promenna... muzes se tim vyhnout spouste problemu a taky nejasnosti (kdyz vynecham bezpecnostni hledisko).
Ja vidim chybu v tomto radku:

mysql_query("INSERT INTO rubriky VALUES('', '$rubrika', '$titulek', '$perex', '$clanek', '$autor', '$datum')");

Pro upresneni hned za VALUES :)
Autor: donny (website.webzdarma.cz)
Datum: 20. 01. 2006 01:08

if (datum == "") {
$datum = date("d. m. Y H:i:s"); //18. 01. 2006 22:39:02
}


tak tak

if ($datum == "") {
2 donny:

>Jeste detail: pouzivej radsi pro post data z formulare $_POST['promenna'], nez $promenna... muzes se tim vyhnout spouste problemu a taky nejasnosti (kdyz vynecham bezpecnostni hledisko).

- už jsem to viděl a přišlo mě to zbytečný psát, nicméně pokud to bude dělat problémy, budu to psát takto ;-)


2 Tomík:

>Ja vidim chybu v tomto radku:
>
>mysql_query("INSERT INTO rubriky VALUES('', '$rubrika', '$titulek', '$perex', '$clanek', '$autor', '$datum')");
>
>Pro upresneni hned za VALUES :)

- já ji nevidim. je tam závorka, a 2 apostrofy. nebo co myslíš


2 mydlo:

ánoo, tam je taky chybka... dělám s databázema poprvé, ale tohle je naprosto lamská chyba, řekl bych...
<?php
if ($test != "") {

if ($_POST[datum] == "") {
$datum = date("d. m. Y H:i:s"); //18. 01. 2006 22:39:02
}

//pripojeni k databazi
$username = "tarantino";
$password = "94613579";
$server = "mysql.wz.cz";
$db = "tarantino";
mysql_connect($server, $username, $password);
mysql_select_db($db);
//konec pripojeni k databazi


mysql_query("INSERT INTO rubriky VALUES('', '$_POST[rubrika]', '$_POST[titulek]', '$_POST[perex]', '$_POST[clanek]', '$_POST[autor]', '$_POST[datum]')");
echo ("<span style=\"background-color: #FFA500; border: 2px solid black; padding: 2px;\">odesláno!</SPAN>");
}


?>
ale porád to nende... :(
Kua sorry. Opticky to vypada jako jedna uvozovka ;)))

Jinak spravne se pise $_POST['promenna'] a jednak je to pole a ty musi byt mimo textove casti (mimo uvozovek).

Tedy:

mysql_query("INSERT INTO rubriky VALUES('', '". $_POST['rubrika'] ."','". $_POST['titulek'] ."','". $_POST['perex'] ."','". $_POST['clanek'] ."','". $_POST['autor'] ."','". $_POST['datum'] ."')");

Snad je to dobre.
porád to nende :'-(

jednou to odešle, jednou ne, pak dlouho ne... delší text to neodesílá vůbec, kratší pouze když nejsem přihlášen do databáze na mysql.wz.cz a to jenom některé.

ještě nevm, jak ošéfovat ten datum, aby když bude prázdnej, tak aby se vyplnil.

<?php
if ($test != "") {

if ($_POST['datum'] == "") {
$datum = date("d. m. Y H:i:s"); //18. 01. 2006 22:39:02
}

//pripojeni k databazi
$username = "tarantino";
$password = "heslo_heslíčko";
$server = "mysql.wz.cz";
$db = "tarantino";
mysql_connect($server, $username, $password);
mysql_select_db($db);
//konec pripojeni k databazi


mysql_query("INSERT INTO rubriky VALUES('', '". $_POST['rubrika'] ."','". $_POST['titulek'] ."','". $_POST['perex'] ."','". $_POST['clanek'] ."','". $_POST['autor'] ."','". $_POST['datum'] ."')");
echo ("<span style=\"background-color: #FFA500; border: 2px solid black; padding: 2px;\">odesláno!</SPAN>");
}


?>
vlastně už vim ->

$datum = $_POST['datum'];

if ($_POST['datum'] == "") {
$datum = date("d. m. Y H:i:s"); //18. 01. 2006 22:39:02
}



...     ,'". $datum ."')");

jinak už mě napadá, že by to mohlo být toto:
if ($test != "") {


zkusim.
a stejně to nejde :-(((
a proc to nejde? v cem je chyba?Nechas si vubec po kazdym dotazu volat mysql_error() ?
jak můžu nechat volat mysql_error() ?

nefuguje to tak, že jednou se to odešle a pak zas několikrát neodešle...
Vyzkoušej si tohle (opiš to klidně doslova (s neexistující tabulkou), nebo v dotazu udělej třeba syntaktickou chybu):

<?php
$query = "select * from blbost where id=5 limit 1";
$result = mysql_result($query);
echo '<b>MySQL hlásí:</b> ';
echo mysql_error();
?>
vypisuje to maximálně wrong parametr pro mysql_result :-/

jinak jsem přišel na zajimavou věc -> smáznul jsem všechna data v tabulce. přidal jsem první článek. to šlo. přidal jsem druhej článek. to taky šlo, ale třetí už nešel,,,, stejný místo, kde jsem se zasek minule :-( čím to může bejt? nějakym nepovolenym znakem v tom článku? nebo datovym omezením databáze? to snad ne-e nebo množstvím odesílaných dat? (nevim, v čem se ještě 2. a 3 článek liší :-/ )
pardon, misto mysql_result() samozrejme mysql_query()
nooo už jsem to vyřešil... napsal jsem si tam echo(mysql_error()); a chyba byla v tom, že jsem měl nastaveného autora jako "unikátní". takže jsem se marně pokoušel přidat další článek od toho samého autora.

díky za pomoc