Autor Zpráva
noby
Profil
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&amp;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
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
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
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
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
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
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0