Autor Zpráva
Marius
Profil *
nevím, jestli to už nespadá do databází, ale jelikož asi nelze úplně oddělit php a databáze, tak to šoupnu sem. Mám údaj v databázi, vypisuju ho na stránce. vedle mám tlačítko(vlastně dvě jakoby, hidden a klasický submit) na který když klapnu, tak by se měl ten záznam smazat. Je to celý ve formuláři, takže se to odešle na php stránku, a ta by to měla smazat. Vše se odešle jak má, ale nesmaže se to. Dám sem ten skript na to mazání, jestli v tom někdo najdete chybu:
<?php
$odkaz="<a href=\"databaze.php\" title=\"Návrat na objednávky\">Návrat na objednávky</a>";
$smazat=$_POST["smazat"];
do
{
require_once("db.inc");

if (!otevridb()) break;
$vysledek = mysql_query ("DELETE FROM zakazky WHERE adresa='$smazat'");
if (!$vysledek)
{
echo "Číslo chyby: ".mysql_errno()."<br />Popis chyby: ".mysql_error();
exit;
}
else
{
echo "Vaše data byla úspěšně smazána!"."$odkaz";
echo $vysledek;
}
} while (false);
?>

děkuji předem
WertriK
Profil
Pokud to nevypisuje chybu, tak bych rekl ze v db nebude hodnota $smazat.
Marius
Profil *
ta tam musí být, páč je to tak provázaný. Já sem hodím i ten první, snad z toho bude pochopitelný, co tím chtěl básník říci:
<?php
$odkaz="<a href=\"databaze.php\" title=\"Návrat na objednávky\">Návrat na objednávky</a>";
$smazat=$_POST["smazat"];
do
{
require_once("db.inc");

if (!otevridb()) break;
$vysledek = mysql_query ("DELETE FROM zakazky WHERE adresa='$smazat'");
if (!$vysledek)
{
echo "Číslo chyby: ".mysql_errno()."<br />Popis chyby: ".mysql_error();
exit;
}
else
{
echo "Vaše data byla úspěšně smazána!"."$odkaz";
echo $vysledek;
}
} while (false);
?>
Marius
Profil *
oprava, spletl jsem to:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<meta name="generator" content="PSPad editor, www.pspad.com">
<title></title>
</head>
<body>
Objednávky
<br /><br /><div>

</div>
<?php
require_once("db.inc");
if (!otevridb()) break;
?>
<table width="100%" border="1">
<tr align="center">
<td align="center">Jméno</td>
<td align="center">Přijmení</td>
<td align="center">Adresa</td>
<td align="center">Telefon</td>
<td align="center">Email</td>
<td align="center">Tarif</td>
<td align="center">Poznámka</td>
<td align="center">Čas</td>
<td align="center">Smazat/přesunout</td>
</tr>
<?php
$vysledek = mysql_query("SELECT * FROM ZAKAZKY");
while($zaznam=mysql_fetch_array($vysledek))
{
print "<tr align=\"center\"><td align=\"center\">".$zaznam["jmeno"]."</td>
<td align=\"center\">".$zaznam["prijmeni"]."</td>
<td align=\"center\">".$zaznam["adresa"]."</td>
<td align=\"center\">".$zaznam["telefon"]."</td>
<td align=\"center\">".$zaznam["email"]."</td>
<td align=\"center\">".$zaznam["tarif"]."</td>
<td align=\"center\">".$zaznam["poznamka"]."</td>
<td align=\"center\">".$zaznam["cas"]."</td>
<td align=\"center\"><form method=\"post\" action=\"mazani.php\">
<input type=\"hidden\" name=\"smazat\" value=\"".$zaznam["adresa"]."\">
<input type=\"submit\" value=\"Smazat\" name=\"smazat\" /></form>
<form method=\"post\" action=\"presunuti.php\">
<input type=\"hidden\" name=\"presunout\" value=\"".$zaznam["adresa"]." \">
<input type=\"submit\" value=\"Přesunout\" name=\"presunout\" />
</form>

</td>
</tr>";
while (false);
}
mysql_close();
?>
</table>
</body>
</html>
Marius
Profil *
tak už to mám, zase triviální chyba. Přeplácnul jsem jméno proměnný $smazat=$_POST["smazat"];
jimmy
Profil *
Cus

No pokud mas dobre prihlaseni do databaze tak vidim jen jedinou chybu
Ja to delam trochu jinak, ale určitě mnoho způsobů.

chybu maáš podle mě tady:
$vysledek = mysql_query ("DELETE FROM zakazky WHERE adresa='$smazat'");
mělo by to být takhle:
$vysledek = mysql_query ("DELETE FROM zakazky WHERE adresa='" . $smazat . " '");

kdyz uzavreš proměnnou do úvozovek tak se nevypíše hodnota, ale zůstane to jako text.

ale já to dělám:

$query = "DELETE FROM zakazky WHERE adresa=\'" . $smazat . "\'";
$resuld = mysql_query($query) or die('spatný dotaz');

Jimmy
Toto téma je uzamčeno. Odpověď nelze zaslat.

0