Autor Zpráva
tKej
Profil
Mám script pro výpis telefonu a na to odkaz na smazání telefonu přes další script v jiném souboru:
...............
<?php
include_once ('../web/config.php');
// výpis dat do katalogu bazarových telefonů
mysql_query("set names utf8");
$vysledek=mysql_query("select * from bazar");
while ($zaznam=MySQL_Fetch_Array($vysledek)) :
?>
<tr>
<td><?echo $zaznam["nazev_bazar"]?></td>
<td>Za <?echo $zaznam["cena_bazar"]?> Kč</td>
<td>
<a href="<?echo "smaz_bazar.php?id_bazar={$zaznam['id_bazar']}" ?>"><img src="images/icons/delete.gif" /></a></td>
</tr>
...................

A script pro smazání je (předchází mu formulář s inputem pro potvrzení - JavaScript neumím):
.......
<?php
include_once ('../web/config.php');
$formular=false;

//Po kliknutí na odeslat data z formuláře se proměnná rovná true
if ($_GET['action']=='pridat') {$formular=true;};
if ( ($_GET['action']='pridat') and ($formular=true) and($_POST['formular']=='OK') ) {

//Ověření pro potvrzení - ANO
if(!($_POST['potvrzeni'])) {
echo "<center>Musíte souhlasit s odstraněním. <br/>";
echo "<a href='javascript:history.go(-1)' title='Zpět'>Zpět</a></center>";
exit;};


$rowID = $_GET['id_bazar'];

//Samotné vymazání z databáze
$vymaz = "DELETE FROM bazar WHERE id_bazar ='$rowID'";
if (mysql_query($vymaz)) {

//Při správném zápisu se zobrazí hláška
echo '<center>';
echo '<img src="images/icons/info.gif" />Údaj byl úspěšně odstraněn z databáze.<img src="images/icons/info.gif" /><br/>';
echo "</br><a href='admin_bazar.php'>Zpět na bazar telefonů</a>";
echo '</center><br/><br/>';
$formular = false;
}

//Chyba při odstranění z dbc
else {
echo"<center><img src='images/icons/error.gif' /> Error při zpracování!.<img src='images/icons/error.gif' /><br/>";
echo "<a href='admin_bazar.php' title='Zpět'>Zpět na bazar</a></center></br></br>";
$formular=false;
}
}
?>
Ukáže mi že záznam byl úspěšně smazán, ale po mrknutí do databáze zjistím že ne...
nightfish
Profil
if (mysql_query($vymaz)) {

nahradit za
if (mysql_query($vymaz) && mysql_affected_rows() > 0) {


takhle to kontroluje jenom to, zda-li příkaz proběhl správně (tzn. zda-li v něm třeba nebyla syntaktická chyba apod.
upravená verze kontroluje i počet řádků ovlivněných posledním dotazem (který by měl být nenulový v případě úspěšného vymazání)

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: