Autor Zpráva
staco
Profil
Ahojte ,mam takyto kod,vsetko prebehne bez chyby ale zaznam sa nevymaze,neviete mi poradit ,kde robim chybu?Nevybere mi z DB character_id,ale neviem ako na to. Dakujem za kazdu radu

<?php
if (isset($_POST['submit']) && $_POST['submit'] == 'Ano') {

  if (isset($_POST['character_id'])){ 
   
     $character_id = (int)$_POST['character_id'];
  

    $query = 'DELETE FROM diel
        WHERE
            character_id = ' .  $character_id;
    mysql_query($query, $db) or die (mysql_error($db));

    $query = 'DELETE FROM nazov_prevadzky_moznosti
        WHERE
            character_id = ' .  $character_id;
    mysql_query($query, $db) or die (mysql_error($db));

  $query = 'DELETE FROM zariadenie_moznosti
        WHERE
            character_id = ' . $character_id;
    mysql_query($query, $db) or die (mysql_error($db));

   
  
    
 }

?>
<html>
 <head>
  <title>Odstranit uzivatelsky ucet</title>
 </head>
 <body>
  <p><strong>Vas ucet bol vymazany.</strong></p>
  <p><a href="zoznam_dielov.php">Klinite sem</a> Pre navrat na hlavnu stranku.</a></p>
 </body>
</html>
<?php
    mysql_close($db);
    die();
} 


else {
?>
<html>
 <head>
  <title>Odstranit uzivatelsky ucet</title>
  <script type="text/javascript">
   window.onload = function() {
       document.getElementById('zrusit').onclick = goBack;
   }
   function goBack() {
       history.go(-1);
   }
  </script>
 </head>
 <body>
  <p>Skutocne chcete vymazat ucet?</p>
  <p><strong>Ak potvrdite operaciu nebude mozne ucet obnovit!</strong></p>
  <form action="delete_diel.php" method="post">
   <div>
    <input type="submit" name="submit" value="Ano"/>
    <input type="button" id="zrusit" value=" Nie " onclick="history.go(-1);"/>
   </div>
  </form>
 </body>
</html>
<?php
}
 
?>

Ak to spracujem bez toho dotazu ,ci uzivatel chce polozku vymazat ,alebo nie tak mi to ide

kod ktory funguje:



switch ($_POST['action']) {

case 'Vymazat Diel':
      
    //Pre istotu overime ci je ID naozaj cislo
    $character_id = (int)$_POST['character_id'];

    $query = 'DELETE FROM diel
        WHERE
            character_id = ' .  $character_id;
    mysql_query($query, $db) or die (mysql_error($db));

    $query = 'DELETE FROM nazov_prevadzky_moznosti
        WHERE
            character_id = ' .  $character_id;
    mysql_query($query, $db) or die (mysql_error($db));

  $query = 'DELETE FROM zariadenie_moznosti
        WHERE
            character_id = ' . $character_id;
    mysql_query($query, $db) or die (mysql_error($db));

   

    $query = 'DELETE FROM cislo_sklad_moznosti
        WHERE
            character_id = ' . $character_id;
    mysql_query($query, $db) or die (mysql_error($db));


      
    $redirect = 'zoznam_dielov.php';
    break;
}
scheras
Profil *
Nerad bych se mýlil, ale dělá to na mě pocit, že odešlete jeden formulář a přesměrujete uživatele na další, potvrzovací. Potom už logicky nemáte přístup k $_POST['character_id'], který byl zaslán s tím prvním formulářem.
staco
Profil
scheras:
Prvy odosielaci formular vyzera takto
<form action="delete_diel.php" method="post">
   <table>
  <?php

    echo '<input type="submit" value="Vymazat Diel" />';
    
    

?>

</table>
</form>
Monkeys
Profil *
staco:
Len pre zaujimavost miesto 30 riadkov staci napisat jednu funkciu a odvolavat sa na nu:

napr.

function deleteRow($table, $id)
{
$sql = 'DELETE FROM {$table} WHERE character_id = {$id}';
mysql_query($query, $db) or die (mysql_error($db));
}

M.
peta
Profil
Vypis si dotazy pred odeslanim mysql: echo $query; die(); die pak zastavi zbytek programu a uvidis, jestli je dotaz spravne.

switch ($_POST['action']) {
case 'Vymazat Diel':
V tom formulari zadny input name=action neni. To by znamenalo, ze na mazani vubec nedojde.

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: