Autor | Zpráva | ||
---|---|---|---|
DB_LAMA Profil * |
#1 · Zasláno: 15. 2. 2009, 16:50:08
Nazdaz hosi, vidite v tomto nejakou chybu? Vzdy se mi vlozi do DB jen ID (bude to nejspis tim ze je to auto_increment)
<b>Výpis aktualit:</b> <table border="1"> <? include "../configuration.php"; do { MySQL_Connect("$db_server", "$db_user", "$db_password"); MySQL_Query("set names 'utf8'"); MySQL_Select_DB("$db_database"); $vysledek = MySQL_Query("SELECT * FROM board ORDER BY id"); while ($zaznam = MySQL_Fetch_Array($vysledek)) echo "<tr><td rowspan=2><b>".$zaznam["id"]."</b>. </td><td>".$zaznam["datum"]."</td></tr><tr><td>".$zaznam["zprava"]."</td></tr>"; MySQL_Close($spojeni); }while (false); ?> </table><br /> <b>Přidávání aktualit:</b> <table border="1"> <form method="get" name="insert"> <input type="hidden" name="$_GET['idcko']" value="aktuality"> <tr><td>ID:</td><td><input type="text" name="id"></td></tr> <tr><td>Datum události:</td><td><input type="text" name="datum"></td></tr> <tr><td>Zpráva:</td><td><textarea name="zprava" rows="6" cols="55"></textarea></td></tr> <tr><td colspan="2" text-align="center"><input type="submit" value="Přidej"> <input type="reset" value="Vymaž"></td></tr> </form> </table> <? $id=$_GET['id']; $datum=$_GET['datum']; $zprava=$_GET['zprava']; include "../configuration.php"; do { MySQL_Connect("$db_server", "$db_user", "$db_password"); MySQL_Query("set names 'utf8'"); MySQL_Select_DB("$db_database"); $vysledek = MySQL_Query("INSERT INTO board VALUES('$id','$datum','$zprava')"); MySQL_Close($spojeni); }while (false); ?><br /> |
||
Kajman_ Profil * |
#2 · Zasláno: 15. 2. 2009, 17:21:17
Vkládání provádějte, jen podud je $zprava neprázdná. Pořád tam vkládáte řádky s práznými hodnotami, když si stránku načtete.
|
||
DB_LAMA Profil * |
#3 · Zasláno: 15. 2. 2009, 17:36:55
„Vkládání provádějte, jen podud je $zprava neprázdná. Pořád tam vkládáte řádky s práznými hodnotami, když si stránku načtete.
Jestli jste myslel takto, tak to bohuzel nejde: <b>Přidávání aktualit:</b> <table border="1"> <form method="get" name="insert"> <input type="hidden" name="$_GET['idcko']" value="aktuality"> <tr><td>ID:</td><td><input type="text" name="id"></td></tr> <tr><td>Datum události:</td><td><input type="text" name="datum"></td></tr> <tr><td>Zpráva:</td><td><textarea name="zprava" rows="6" cols="55"></textarea></td></tr> <tr><td colspan="2" text-align="center"><input type="submit" value="Přidej"> <input type="reset" value="Vymaž"></td></tr> </form> </table> <? $id=$_GET['id']; $datum=$_GET['datum']; $zprava=$_GET['zprava']; include "../configuration.php"; if($zprava!=""){ MySQL_Connect("$db_server", "$db_user", "$db_password"); MySQL_Query("set names 'utf8'"); MySQL_Select_DB("$db_database"); $vysledek = MySQL_Query("INSERT INTO board VALUES('$id','$datum','$zprava')"); MySQL_Close($spojeni); } ?> |
||
tiso Profil |
#4 · Zasláno: 15. 2. 2009, 18:39:28
DB_LAMA čo ti vypíše mysql_error? uprav riadok 21 takto:
$vysledek = MySQL_Query("INSERT INTO board VALUES('$id','$datum','$zprava')") OR die(mysql_error()); |
||
DB_LAMA Profil * |
#5 · Zasláno: 15. 2. 2009, 18:49:34
$vysledek mi vypise toto: Resource id #5
|
||
Mastodont Profil |
#6 · Zasláno: 15. 2. 2009, 19:25:56
DB_LAMA
Umíš chápat napsaný text?? Vypsaný $vysledek nikoho nezajímá. |
||
panther Profil |
#7 · Zasláno: 15. 2. 2009, 19:32:15
DB_LAMA
„$vysledek mi vypise toto: Resource id #5“ jak napsal tiso „$vysledek = MySQL_Query("INSERT INTO board VALUES('$id','$datum','$zprava')") OR die(mysql_error()); “, zajímá nás, co vypíše mysql_error |
||
DB_LAMA Profil * |
#8 · Zasláno: 15. 2. 2009, 20:09:24
Chlapi ja vazne nevim, zapsal jsem to tak jak rekl tiso a neudela to nic, nevypise zadnou chyby proste nothing
</table><br /> <b>Přidávání aktualit:</b> <table border="1"> <form method="get" name="insert"> <input type="hidden" name="$_GET['idcko']" value="aktuality"> <tr><td>ID:</td><td><input type="text" name="id"></td></tr> <tr><td>Datum události:</td><td><input type="text" name="datum"></td></tr> <tr><td>Zpráva:</td><td><textarea name="zprava" rows="6" cols="55"></textarea></td></tr> <tr><td colspan="2" text-align="center"><input type="submit" value="Přidej"> <input type="reset" value="Vymaž"></td></tr> </form> </table> <? $id=$_GET['id']; $datum=$_GET['datum']; $zprava=$_GET['zprava']; include "../configuration.php"; if($zprava!=""){ $spojeni=MySQL_Connect("$db_server", "$db_user", "$db_password"); MySQL_Query("set names 'utf8'"); MySQL_Select_DB("$db_database"); MySQL_Query("INSERT INTO board VALUES('$id','$datum','$zprava')") OR die("Chyba".mysql_error()); MySQL_Close($spojeni); } ?><br /> |
||
tiso Profil |
#9 · Zasláno: 15. 2. 2009, 20:58:14
DB_LAMA - v tom prípade to musí ísť..
Aké stĺpce a akého typu má tá tabuľka board? |
||
ctverecek Profil |
#10 · Zasláno: 15. 2. 2009, 22:38:27
Kdepak...pořád nic, už vážně nevim kde je zakopaný pes? Divné je že ani mysql_error() nefachá! Celý jev je ZDE
|
||
tiso Profil |
#11 · Zasláno: 15. 2. 2009, 22:54:09
1. toto ti nefunguje: <input type="hidden" name="$_GET['idcko']" value="aktuality">
2. varchar je obmezený na 255 znakov, keď chceš vkladať väčší počet znakov použi datový typ text. int(100) je tiež blbosť. 3. keďže id je auto_increment, tak id z formulára sa tam vôbec nevloží, je zbytočné. |
||
Joker Profil |
#12 · Zasláno: 15. 2. 2009, 22:59:39
DB_LAMA
Nazdaz hosi, vidite v tomto nejakou chybu? Já tam vidím chyb... 1. Proč je datum typu VARCHAR? 2. když je ID číslo, proč se vkládá jako řetězec (v uvozovkách)? 3. Vzít něco z GETu a vložit to rovnou do databáze není dobrý nápad. No a ještě přidám můj doporučený postup na databázové chyby- vypěstovat si zvyk místo: mysql_query(*dotaz*); psát něco takovéhoto: $sql = *dotaz*; mysql_query($sql); ...a v případě problémů se jednoduše dá udělat echo($sql) a zkontrolovat ten dotaz vizuálně, nebo si ho vyhodnotit v phpMyAdminu třeba. |
||
Joker Profil |
#13 · Zasláno: 15. 2. 2009, 23:02:58
tiso
poznámka: varchar je obmezený na 255 znakov Už ne. Od MySQL 5.0.3 to může být až 65535. Což samozřejmě nemění nic na tom, že v tomhle konkrétním případě je to nastavení ujeté. |
||
tiso Profil |
#14 · Zasláno: 15. 2. 2009, 23:04:25
Joker - pravda, na to stále zabúdam.
|
||
ctverecek Profil |
#15 · Zasláno: 15. 2. 2009, 23:05:46
reaguji na Joker:
1) protoze je datum vkladano ve formatu: 16.2. - pondělí 2) $id=$_GET[id]; lepši? 3) ale funguje...tedy měl by fungovat :-( reaguji na tiso: takhle je to lepší? |
||
tiso Profil |
#16 · Zasláno: 15. 2. 2009, 23:31:10
ctverecek - lepšie to bude ak to bude fungovať... Skús radu z [#12] a nechaj si vypísať dotaz.
|
||
Joker Profil |
#17 · Zasláno: 16. 2. 2009, 07:59:02
ctverecek
1) protoze je datum vkladano ve formatu: 16.2. - pondělí To není důvod, aby datum nebylo jako datum. Jinak hodně štěstí s dotazem typu "Vyber záznamy za poslední měsíc". 2) $id=$_GET[id]; lepši? Ne. $_GET['id'] je správně, INSERT INTO board VALUES('$id' je špatně. Krom toho, pokud ID je auto_increment, u nového příspěvku by se vůbec nemuselo předávat, tabulka si ho nastaví sama. 3) ale funguje...tedy měl by fungovat :-( Bude to fungovat až do chvíle, než někdo napíše třeba zprávu: Roye v IT Crowd hraje Chris O'Dowd. Anebo lepší vtípek- odesláním zprávy: a'), (1,'a','a'), (1,'a','a') ON DUPLICATE KEY UPDATE SET zprava='' WHERE 1 jde vymazat všechny texty z tabulky. ...a s trochou snahy (a znalostí té konkrétní databáze) bych možná dal dohromady i zprávu, kterou bych si do tabulky zkopíroval data z jiné tabulky. |
||
Časová prodleva: 15 let
|
0