Autor Zpráva
paldo
Profil
Prosím o radu proč se data neukládají z formuláře do databáze v následujícím příkladu - děkuji za pomoc.

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250"/>

</head>
<body>

<?php

$dbname = "name";
$dbserver = "localhost";
$dbuser = "login";
$dbpass = "pass";
$tabulka = "tp_zaklad";

$db = mysql_connect("$dbserver", "$dbuser", "$dbpass") or die (mysql_error());;
mysql_select_db("$dbname",$db);

if(isset($_POST['submit']))

{
$sql = "INSERT INTO $tabulka (porc, ztp_cislo) VALUES ('$porc', '$ztp_cislo')";
$sql = "SELECT * FROM $tabulka";
$result = mysql_query($sql);
echo "<br/><br/>Informace byly vloženy do databáze.\n";
$resultsnumber = mysql_num_rows($result);
echo "Celkem je v databázi uloženo $resultsnumber záznamů.";
mysql_close($db);

}
else
{
?>

<form method="post" action="index.php">
<table style="width: 20%" cellspacing="0" cellpadding="0">
<tr>
<td>Pořadové č.: </td>
<td> <input type="text" name="porc" size="3"> </td> </tr>
<tr>
<td>Číslo ZTP: </td>
<td> <input type="text" name="ztp_cislo" size="4"> </td> </tr>
</table>
<input name="submit" type="submit" value="Uložit" >
</form>

<?php
}
?>

</body>
</html>
__construct
Profil
paldo:
if(isset($_POST['submit']))
{
$porc = mysql_real_escape_string($_POST['porc']);
$ztp_cislo = mysql_real_escape_string($_POST['ztp_cislo']);
DJ Miky
Profil
Ten dotaz si sice uložíš do proměnné $sql, ale nikdy ho nevykonáš. Dalším problémem, který může nastat, je vypnuté register_globals (měl bys používat $_POST, jako už to je u $_POST['submit']).
Tori
Profil
paldo:
Reaguju na tohle:
$sql = "SELECT * FROM $tabulka"; 
//....
$resultsnumber = mysql_num_rows($result); 
echo "Celkem je v databázi uloženo $resultsnumber záznamů.";
Když chcete jen zjistit celkový počet řádků v tabulce, je podstatně efektivnější použít
SELECT COUNT(*) as 'pocet' FROM `tabulka`
Při vašem původním dotazu by se přenášel z db kompletní obsah tabulky, takhle to bude jen jedno celé číslo.

Kód příště prosím vkládejte mezi značky [pre] a [/pre] (stačí označit text a kliknout na tlačítko <>) - místo kopírování kusů kódu budou moci ostatní odkazovat na příslušné řádky.
paldo
Profil
Děkuji za pomoc, ale po vaši doporučené úpravě se stejně nic neukládá, do adresáře jsem přidal textový soubor .htaccess kde je "php_flag register_globals on".

if(isset($_POST['submit']))
{
$porc = mysql_real_escape_string($_POST['porc']);
$ztp_cislo = mysql_real_escape_string($_POST['ztp_cislo']);

$sql = "INSERT INTO $tabulka (porc, ztp_cislo) VALUES ('$porc', '$ztp_cislo')";
echo "<br/><br/>Informace byly vloženy do databáze.\n";

$sql1= "SELECT COUNT(*) as 'pocet' FROM $tabulka";
$result = mysql_query($sql1);
$resultsnumber = mysql_num_rows($result);
echo "<br/><br/>Celkem je v databázi uloženo $resultsnumber záznamů.";
mysql_close($db);
}
else
{
?>
<form method="post" action="index.php"> 
  <table style="width: 20%" cellspacing="0" cellpadding="0">
    <tr>  <td>Pořadové č.: </td>	<td> <input type="text" name="porc" size="3">      	</td>    </tr>
    <tr>  <td>Číslo ZTP:     </td>   	<td> <input type="text" name="ztp_cislo" size="4"> </td>   </tr>
  </table>
<input name="submit" type="submit" value="Uložit" >
</form>
__construct
Profil
paldo:
Medzi 6. a 7. riadok vlož mysql_query($sql);.
paldo
Profil
Díky všem, jsem lama.
Už to chodí.

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