Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]problem z usuwaniem rekordów z bazy danych
Forum PHP.pl > Forum > Przedszkole
szlipek
Mam problem z usunięciem danych z MYSQL. A mianowicie mam 2 pliki jeden wyświetla wszystkie rekordy z bazy i odwołuje się do kolejnego gdzie jest funkcja usuń niby wszystko pięknie cudnie ale na końcu wyskakuje mi błąd

plik nr.1 dane.php

CODE

<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'  
  'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>  
<html xmlns='http://www.w3.org/1999/xhtml'>  
  <head>  
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   
  <title>Przykład</title> 
</head>
<body>


<?php



echo '<center><h1 id="mainhead"> Wszystkie dane</h1></center>';

require_once ('\\PrestashopPL\\presta\\tabs\\polacz.php');

mysql_query("SET NAMES 'UTF8';");

$query = "SELECT * FROM ps_dane1 ORDER BY id_product";
$result = mysql_query ($query);
$num = mysql_num_rows($result);
if ($num > 0) 
 {
  echo ' <table align="center" cellspacing="10" callpadding="10">
  <tr>
  <td align="center"><b>Edytuj </b></td>
  <td align="center"><b>Usuń </b></td>
  <td align="center"><b>Miasto </b></td>
  <td align="center"><b>Ulica </b></td>
  <td align="center"><b>Otoczenie </b></td>
  <td align="center"><b>Rodzaj nośnika </b></td>
  <td align="center"><b>Wymiary </b></td>
  <td align="center"><b>zdjecie </b></td>
  <td align="center"><b>Właściciel </b></td>
  </tr> ';
   
  while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
  {
  echo ' <tr>
  <td align="center"> <a href="edycja.php?id_product=' . $row['id_product'] .' "target="_blank">Edytuj </a> </td>
  <td align="center"> <a href="usun.php?id_product=' . $row['id_product'] .' "target="_blank">Usun </a> </td>
  <td align="center"> ' . $row['miasto'] . ' </td>
  <td align="center"> ' . $row['ulica'] . ' </td>
  <td align="center"> ' . $row['otoczenie'] . ' </td>
  <td align="center"> ' . $row['kategoria'] . ' </td>
  <td align="center"> ' . $row['wymiary'] . ' </td>
  <td align="center"> ' . $row['zdjecie'] . ' </td>
  <td align="center"> ' . $row['wlasciciel'] . ' </td>
  </tr> ';
  }
  echo '</table>';
   
  mysql_free_result ($result);
   
 } else
  {
  echo '<p class="error"> Brak danych.</p>';
  }
  
  mysql_close();
  
  
?>





natomiast drugi plik to usun.php a jego kod to

CODE

<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'  
  'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>  
<html xmlns='http://www.w3.org/1999/xhtml'>  
  <head>  
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  <title>Usuń dane</title> 
</head>
<body>


<?php

   
if ( (isset($_GET['id_product'])) && (is_numeric($_GET['id_product'])) ) {
 $id = $_GET['id_product'];
} elseif ( (isset($_POST['id_product'])) && (is_numeric($_POST['id_product'])) ) { 
 $id = $_POST['id_product'];
} else {
 echo '<h1> BLAD</h1>
 <p class="error"> Blad dostepu do strony. </p>';
 exit();
 }

require_once ('\\PrestashopPL\\presta\\tabs\\polacz.php');  
   


if (isset($_POST['submitted'])) {

 if ($_POST['sure'] == 'Yes') { 


 $query = "DELETE FROM ps_dane1 WHERE id_product=$id";
 $result = @mysql_query ($query);
 if (mysql_affected_rows() == 1) 
 {
 
  echo '<h1 id="mainhead"> Usuń Dane</h1> <p> Dane zostały usunięte.</p><br /><br /></p>';
 
 } else 
  {
  echo '<h1 id="mainhead"> Błąd systemu</h1>
  <p class="error"> Dane nie zostały usunięte z powodu błedu systemu</p>';
   
  }
 
} else {
   
  echo '<h1 id="mainhead"> Usuń Dane</h1><p>Dane NIE zostały usunięte.</p><p><br /></p>';
   
  }
} else {

$query = "SELECT * FROM ps_dane1 WHERE id_product=$id";
$result = @mysql_query ($query);

if (mysql_num_rows($result) == 1) {

$row = mysql_fetch_array ($result, MYSQL_NUM);

echo' <h2> Usuń z Google maps</h2>
<form action="usun.php" method="post">
<h3> ID produktu ' . $row[1] . '</h3>
<p>Czy na pewno chcesz usunąć dane?<br />
<input type="radio" name="sure" value="Yes" /> TAK
<input type="radio" name="sure" value="No" checked="checked" /> NIE</p>
<p><input type="submit" name="submit" value="Submit" /> </p>
<input type="hidden" name="submitted" value="TRUE" />
<input type="hidden" name="id" value="' . $id .'"/>
</form>';

} else {

echo '<h1 id="mainhead">Bład</h1><p class="error">Błąd podczas dostępu do strony.</p><p><br /><br /></p>';
  }

 

mysql_close();

?>


Pliki oczywiście znajdują się w tym samym folderze i nie wiem o co chodzi błąd wskazuje na to miejsce


Kod
if ( (isset($_GET['id_product'])) && (is_numeric($_GET['id_product'])) ) {
 $id = $_GET['id_product'];
} elseif ( (isset($_POST['id_product'])) && (is_numeric($_POST['id_product'])) ) { 
 $id = $_POST['id_product'];
} else {
 echo '<h1> BLAD</h1>
 <p class="error"> Blad dostepu do strony. </p>';
 exit();
 }
 


Mianowicie wyświetla się blad dostepu do strony. No i tu leży mój problem wie ktoś czym to może być spowodowane?
slawny
A po co ci to:
  1. <?php
  2. } elseif ( (isset($_POST['id_product'])) && (is_numeric($_POST['id_product'])) ) {
  3. $id = $_POST['id_product'];
  4. ?>

wywal i będzie ok
Spawnm
coś chyba źle wkleiłeś winksmiley.jpg
a to:
  1. <?php
  2. if ( (isset($_GET['id_product'])) && (is_numeric($_GET['id_product'])) ) {
  3. $id = $_GET['id_product'];
  4. } elseif ( (isset($_POST['id_product'])) && (is_numeric($_POST['id_product'])) ) {
  5. $id = $_POST['id_product'];
  6. } else {
  7. echo '<h1> BLAD</h1>
  8. <p class="error"> Blad dostepu do strony. </p>';
  9. exit();
  10. }
  11. ?>

można zoptymalizować do:
  1. <?php
  2. if(is_numeric($_REQUEST['id_product']) ){
  3. $id = $_REQUEST['id_product'];
  4. }else{
  5. echo '<h1> BLAD</h1>
  6. <p class="error"> Blad dostepu do strony. </p>';
  7. exit();
  8. }
  9. ?>
szlipek
Ponieważ zaczynam przygodę z php dopiero to znalazłem takie coś w książce i myślałem że książka się nie myli (książka Larry Ullmana pt:"PHP i MYSQL szybki start"). Spawnm to co mi przesłałeś też nie działa wyskakuje ten sam błąd co u mnie więc nie wiem o co chodzi:(
Spawnm
a wyd 1 czy 2 smile.gif
czytałem tą książkę , moja pierwsza o php i mysql biggrin.gif

ale to nie zmienia faktu że w dane.php podałeś tylko nagłówek html a nie kod tongue.gif
szlipek
Spawnm  gdzie podałem tylko nagłówek html?? przecież mam kod a przy okazji to wyd 2
Spawnm
Cytat(szlipek @ 31.03.2009, 13:29:26 ) *
Spawnm  gdzie podałem tylko nagłówek html?? przecież mam kod a przy okazji to wyd 2

racja suwaków nie zauważyłem tongue.gif

  1. <?php
  2. if (isset($_POST['submitted'])) {
  3.  
  4. if ($_POST['sure'] == 'Yes') {
  5.  
  6.  
  7. $query = "DELETE FROM ps_dane1 WHERE id_product=$id";
  8. $result = @mysql_query ($query);
  9. ?>


kasujesz przez link przesyłając tylko get z id do kasacji , to ci nie zadziała bo spr post.

a jak otwiera ci się ten plik usun to w nazwie ma ?id

daj jako kod usun.php to:

  1. <?php
  2. if($_GET['id_product']){
  3.  $id=(int)$_GET['id_product'];
  4.  $query = "DELETE FROM ps_dane1 WHERE id_product=$id";
  5.  $result = @mysql_query ($query);
  6.  if($result){
  7.    echo 'usunięto';
  8.  }else{
  9.    echo 'nie usunięto, '.mysql_error();
  10.  }
  11. }
  12. ?>


reszta nie wiem po co jest...
ale wiedz że ten kod nie jest bezpieczny bo każdy ma do niego dostęp i może nim kasować...
ale to potem poczytasz o sesjach to coś skręcisz winksmiley.jpg
szlipek
Dzięki bardzo wszystko działa jak należy jeszcze tylko pokombinuje co nieco żeby się pytał czy napewno usunąć i będzie rewelacja
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.