Autor | Zpráva | ||
---|---|---|---|
noby Profil |
#1 · Zasláno: 18. 9. 2011, 14:27:22
Dobrý den. Snažím se do databáze vkládat „stránky“ a však vkládat lze stránky zcela bez problému až na jednu chybu a to takovou, že se k vloženému záznamu nepřiřadí žádné id. Už nevím kde mám chybu.
Pomoci tohoto skriptu vkládám do databáze: <?php include("../../connecting.php"); $id = $_POST['id']; $title = $_POST['title']; $page = $_POST['text']; $vytvoreno = $_POST['vytvoreno']; mysql_query("INSERT INTO page (id, title, text, vytvoreno) VALUES ('$id','$title','$text','".time()."')") or die (mysql_error()); header("location: ../admin.php?page=page"); ?> Takto vytvořené záznamy vypisuji: <?php $max = "10"; $pocet=MySQL_Query("SELECT count(id) FROM page"); $ukaz_pocet=mysql_fetch_array($pocet); $str=Ceil($ukaz_pocet[0]/$max); $strana2 = $_GET['strana']; $strana = $strana2*$max; echo '<div class="table"> <table style="font-size: 11px;margin: 15px 0px 5px 10px;text-align: left;"> <tr><th></th><th>Název stránky:</th><th>Vytvořeno:</th><th>Úpravy:</th></tr>'; $pages = mysql_query("SELECT * FROM page ORDER BY id DESC LIMIT $strana, $max") or die(mysql_error()); while($id = mysql_fetch_array($pages)) { $id = $_GET['id']; $datum = date("d.m.Y", $id['vytvoreno']); echo '<tr><td><input type="checkbox" name="'.$id.'"></td> <td><b>'.$id['title'].'</b></td> <td><span style="font-size:11px;font-weight:bold;color:#0a89ff;">'.$datum.'</span></td> <td style="margin-left: 5px;"><a href="admin.php?page=editp&id='.$id['id'].'"><img src="images/edit.png"></a> <a href="inc/deletep.php"><img src="images/delete.png"></a> </td></tr>'; } echo '</table> </div><a href="delete.php?id='.$id['id'].'"> <div class="checkbox"><input class="submit" type="submit" value="Odstranit označené"></div></a><div class="page"><b>'; for($i=0;$i<$str;$i++) { if($i == $strana2) { echo "".($i+1).""; } else { echo " <a class='page' href='admin.php?page=page&strana=".($i)." '>".($i+1)."</a> "; } } echo "</b></div>"; ?> Formulář pro vložení záznamu: <?php echo '<form method="post" action="inc/addp.php"> <table style="font-size: 11px; font-weight: bold;"> <input type="hidden" name="id"> <tr><td>Název stránky:</td><td><input type="text" name="title"></td></tr> <tr><td>Text stránky:</td><td><textarea type="text" name="text"></textarea></td></tr> <tr><td></td><td><input class="submit" type="submit" value="Vložit stránku"></td></tr> </table> </form>'; ?> A však nevypíše se nic jelikož mu nepřidělí id. Poradíte mi prosím vás? |
||
Sir Tom Profil |
#2 · Zasláno: 18. 9. 2011, 14:33:32
noby:
Také dobrý den, co obsahuje (může obsahovat) proměnná $_POST['ID']? Jaké vlastnosti, datový typ a indexy obsahuje sloupec id? Možná do toho sloupce vkládáš hodnotu, která není v něm povolena. |
||
noby Profil |
#3 · Zasláno: 18. 9. 2011, 14:44:00
Sir Tom:
Dobrý den. Pokud myslíte tabulku v databázi tak ji naleznete níže. Proč by hodnota kterou vkládám do id nemohla být povolená? CREATE TABLE `page` ( `id` int(11) NOT NULL, `title` text CHARACTER SET utf8 COLLATE utf8_czech_ci NOT NULL, `text` text CHARACTER SET utf8 COLLATE utf8_czech_ci NOT NULL, `vytvoreno` int(11) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8; |
||
jenikkozak Profil |
#4 · Zasláno: 18. 9. 2011, 14:53:58
noby:
Nepočítáte s tím, že $_POST[id] odchozí z formuláře bude obsahovat nějakou hodnotu? Potom by ve formuláři měla být skrytému poli přiřazena nějaká hodnota (value). (Ale ne že bych rozuměl tomu, proč tam tato položka je.) <input type="hidden" name="id"> |
||
noby Profil |
#5 · Zasláno: 18. 9. 2011, 15:08:41
jenikkozak:
Tento input: <input type="hidden" name="id"> Jsem vložil do formuláře těsně před tím než jsem napsal sem abych zjistil jestli ani po té nebude fungovat. I když input přidělím <?php echo '<input type="hidden" name="id" value="'.$_POST['id'].'">'; ?> Tak nefunguje |
||
jenikkozak Profil |
#6 · Zasláno: 18. 9. 2011, 15:32:39
noby:
Té stránce, na které se zobrazuje formulář, posíláte metodou post nějaké id, abyste ho mohl do toho skrytého políčka vložit? Pokud ne, tak se tam žádné nevloží. Po odeslání formuláře se tedy nemůže vložit ani do databáze. Pokud chcete, aby se id do tabulky přidělovalo automaticky, nastavte sloupci id vlastnost auto_increment a z dotazu na databázi, který tam hodnoty vkládá, sloupec id vymažte. |
||
noby Profil |
#7 · Zasláno: 19. 9. 2011, 11:09:59
jenikkozak:
Děkuji `id` už přiděluje. Jen mám teď problém se zpracováním formuláře po editaci záznamu, ale to si už vyřeším. Děkuji všem aktivním za pomoc. |
||
Časová prodleva: 13 let
|
0