Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Usuniecie pozycji wcześniej wyświetlonych z bazy
Forum PHP.pl > Forum > Przedszkole
konradkw
Witajcie!

Mam tu taki kodzik który mi pięknie wyświetla dane zawarte w bazie.
Potrzebuję dodać przycisk lub a href-a do usuniecia poszczególnego coś co dodam na końcu zaraz przed znakiem } tak aby się pokazał przycisk obok każdego wyświetlonego wpisu po którego naciśnięciu usunięty zostanie wybrany wpis z zbazy ważne dla mnie jest aby nie był to get przekazujący np ID do usunięcia - to umiem zrobić ale jest to niebezpieczne bo wystaczy wpisać w przeglądarce np index.php?id=iddoununiecia i juz będzie sie dało usunąć wpis a tego nie chcę, post może zadziała z tym że też się to da obejść :/ ewentualnie get-em ale jakoś kodującym id do usunięcia lub inną informację jak nazwa czy coś .. ?

Bardzo prosze o jakas podpowiedź. Tak tylko dodam że jak narazie wszystko działa ok...


  1. echo "<table>";
  2.  
  3. $wyn = mysql_query("SELECT * FROM `naleznosci` ORDER BY `data` DESC");
  4. while ($row = mysql_fetch_array($wyn))
  5. {
  6. echo "<tr><td><b>ID: </b></td><td>[ "; echo $row['id']; echo " ]</td>";
  7. echo "<td><b>Stan: </b></td><td>[ "; echo $row['stan']; echo " ]</td>";
  8. echo "<td><b>Dodano: </b></td><td>[ "; echo $row['data']; echo " ]</td>";
  9. echo "<td><b>Zaplata do: </b></td><td>[ "; echo $row['dzien']; echo "-";
  10. echo $row['miesiac']; echo "-"; echo $row['rok']; echo " ]</td>";
  11. echo "<td><b>Kwota: </b></td><td>[ "; echo $row['naleznosci']; echo " ]</td>";
  12. echo "<td><b>Dluznik: </b></td><td>[ "; echo $row['osoba']; echo " ]</td>";
  13. echo "<td><b>Powód: </b></td><td>[ "; echo $row['zaco']; echo " ]</td></tr>";
  14.  
  15. }
  16. echo "</table>";
  17. echo "</center>";>





--------------------------------

Co o tym sądzicie?

  1. echo "<table>";
  2.  
  3. $wyn = mysql_query("SELECT * FROM `naleznosci` ORDER BY `data` DESC");
  4. while ($row = mysql_fetch_array($wyn))
  5. {
  6. echo "<tr><td><b>ID: </b></td><td>[ "; echo $row['id']; echo " ]</td>";
  7. echo "<td><b>Stan: </b></td><td>[ "; echo $row['stan']; echo " ]</td>";
  8. echo "<td><b>Dodano: </b></td><td>[ "; echo $row['data']; echo " ]</td>";
  9. echo "<td><b>Zaplata do: </b></td><td>[ "; echo $row['dzien']; echo "-";
  10. echo $row['miesiac']; echo "-"; echo $row['rok']; echo " ]</td><br>";
  11. echo "<td><b>Kwota: </b></td><td>[ "; echo $row['naleznosci']; echo " ]</td>";
  12. echo "<td><b>Dluznik: </b></td><td>[ "; echo $row['osoba']; echo " ]</td>";
  13. echo "<td><b>Powód: </b></td><td>[ "; echo $row['zaco']; echo " ]</td><td>";
  14. echo "<td><form action=\"index.php?txt=finanse&fin=pokaznaleznosci\" method=\"post\"><input type=\"hidden\" name=\".$row['id']. \" value=\".$row['id'].\"
  15. <select name=\"zmienstatus\"><option>Usun</option></td><td><input type=\"submit\" value=\"Zmień\"</td></tr></form>";
  16. }
  17. echo "</table>";


tak by to mogło wyglądać tylko teraz jakoś musiałbym przekazać który to jest rekord... może użyć Hidden w tym formie na końcu? może macie lepszy pomysł?

Nie do końca wiem jak interpunkcyjnie wstawić tam zmienną (zawsze mam z tym banałem problem). O to mi dokładnie chodzi: value=\".$row['id'].\"

mam problem ze znakami " ' . ewentualnie można tu jeszcze użyć () ... prosze doradźcie...
boro11
  1. $submit=htmlspecialchars(mysql_escape_string($_POST["sub"]));
  2.  
  3. if($submit=='Kasuj')
  4. {
  5. zapytanie usuwające z bazy
  6. }


i zwykły button

  1. <input type="submit" name="sub" value="Kasuj">
konradkw
no wszystko fajnie tylko gdzie to pobiera info o tym które pole usunąć..?
boro11
Zamiast kasuj daj zmienna, która będzie odpowiadała każdej pozycji, może być to nawet te ID, tego się nie da podejrzeć jeśli dobrze kojarzę. Nadaj styl:
Kod
text-indent: -9999px;

+ jakiś guzik obrazkowy żebyś miał napis, ewentualnie jakiś kosz - wedle uznania i powinno się udać smile.gif
konradkw
  1. <td><form name="usun" action="index.php?txt=finanse&fin=pokaznaleznosci" method="post">
  2. <input type="submit" name="sub" value="$row['id']" style="width:10px; height:10px; background-image:url(../impages/szr.png); border:none; background-color:#FFF;cursor:pointer;">
  3. </form></td>


chyba mi tu cos nie poszlo kurde .. nie widac ikonki i nie usowa.. czy to o to chodzilo wogole?
ikona jest w dobrym miejscu - tam gdzie sciezka wskazuje.. ale cos mi sie zdaje ze ze zmienna pokopalem .. czy to mialo byc moze tak?:
  1. value="<? $row['id'] ?>"
d3ut3r
Ja dla większej czytelności dodałbym jednak pole hidden czyli:

  1. <form action="....." method="post">
  2. <input type="hidden" name="item" value="<?php echo $row['id']?>" />
  3. <input type="submit" value="Usuń" />
  4. </form>


i wtedy w skrypcie możesz zrobić:

  1. $item=(int)$_POST['item'];
  2. if ($item>0){
  3. //usuwamy rekord z bazy
  4. }
konradkw
mam tak:

Kod
$item=(int)$_POST['item'];
if ($item>0)
{
$usuwanie = "DELETE FROM `klienci` WHERE `naleznosci` = '".$usunmnie."'";
$idzapytania = mysql_query($usuwanie);
if ($idzapytania) {
echo "Poprawnie usunieto pozycje z bazy danych!"; echo "<br />"; echo "Pozycja ktora usunales to:"; echo $usunmnie;
                    }
else { echo "Wystapil blad podczas usówania pozycji z bazy danych!";}
}



i

Kod
<td>
<form action="index.php?txt=finanse&fin=pokaznaleznosci" method="post"><input type="hidden" name="item" value="<? php echo $row['id'] ?>" /><input type="submit" value="Usun" /></form>
</td>


niestety nie dziala dalej sad.gif

wyswietla komunikat:

Kod
Poprawnie usunieto pozycje z bazy danych!
Pozycja ktora usunales to:


ale nie wykonuje samego usuniecia
jeszcze jakies pomysly?
d3ut3r
skoro w item masz id rekordu to zapytanie powinno wyglądać tak:

  1. $usuwanie='DELETE FROM klienci WHERE id='.$item
konradkw
Przepraszam moglem to sam zaowazyc .. zmienilem znowu ale nadal mowi ze usunieto ale nie wykonuje:

Kod
$item=(int)$_POST['item'];
if ($item>0)
{
$usuwanie = "DELETE FROM naleznosci WHERE id ='.$item'";

$idzapytania = mysql_query($usuwanie);
if ($idzapytania) {
echo "Poprawnie usunieto pozycje z bazy danych!";
                    }
else { echo "Wystapil blad podczas usówania pozycji z bazy danych!";}
}
d3ut3r
nie tak:

  1. $usuwanie = "DELETE FROM naleznosci WHERE id ='.$item'";


tylko tak:
  1. $usuwanie = 'DELETE FROM naleznosci WHERE id ='.$item;

konradkw
dziala gitarowo teraz. pierwszy raz widze zeby nie zamykac apostrofu.. nie wiedzialem ze tak mozna.. wazne ze dziala! bardzo dziekuje! to mi pozwoli dalej pracowac nad skryptem i BAAAARDZO sie posunac do przodu. To mnie jakos tak strasznie denerwowalo bo nie moglem do tego dojsc innymi sposobami..

Jeszcze mam takie sprawdzenie czy pola formularza sa puste ktore nie bardzo dziala ale to bedzie inny temat juz chyba.. chyba ze nie macie nic przeciwko zebym go tu dal?

Nikt nie odpisuje to zrobie nowy temacik.

Mozecie jeszcze podpowiedziec jak z tego zrobic przycisk obrazkowy?

mialem to tak:
Kod
<input type="submit" name="sub" value="$row['id']" style="width:10px; height:10px; background-image:url(../impages/szr.png); border:none; background-color:#FFF;cursor:pointer;">


ale nie bardzo chcialo dzialac... podpowecie cos?

ok zignorujcie to prosze, znalazlem blad.

-------------------------------------------------

Dodałem kilka innych opcji i teraz walczę ze zmianą statusu (jednosczesnie przenosci wpis do innej tabeli)

Przyciski:
  1. <td>
  2. <form action="index.php?txt=finanse&fin=pokaznaleznosci" method="post"><input type="hidden" name="podglad" value="<?php echo $row['id'] ?>" /><input type="submit" value="" style="width:29px; height:30px; background-image:url(./images/podglad.jpg); border:none; background-color:#FFF;cursor:pointer;"></form>
  3. </td>
  4.  
  5. <td>
  6. <form action="index.php?txt=finanse&fin=pokaznaleznosci" method="post"><input type="hidden" name="oplacone" value="<?php echo $row['id'] ?>" /><input type="submit" value="" style="width:35px; height:30px; background-image:url(./images/oplacone.jpg); border:none; background-color:#FFF;cursor:pointer;"></form>
  7. </td>
  8.  
  9. <td>
  10. <form action="index.php?txt=finanse&fin=pokaznaleznosci" method="post"><input type="hidden" name="wyslij" value="<?php echo $row['id'] ?>" /><input type="submit" value="" style="width:26px; height:30px; background-image:url(./images/wyslij.jpg); border:none; background-color:#FFF;cursor:pointer;"></form>
  11. </td>
  12.  
  13. <td>
  14. <form action="index.php?txt=finanse&fin=pokaznaleznosci" method="post"><input type="hidden" name="edycja" value="<?php echo $row['id'] ?>" /><input type="submit" value="" style="width:26px; height:30px; background-image:url(./images/edytuj.jpg); border:none; background-color:#FFF;cursor:pointer;"></form>
  15. </td>
  16.  
  17. <td>
  18. <form action="index.php?txt=finanse&fin=pokaznaleznosci" method="post"><input type="hidden" name="kosz" value="<?php echo $row['id'] ?>" /><input type="submit" value="" style="width:24px; height:30px; background-image:url(./images/kosz.jpg); border:none; background-color:#FFF;cursor:pointer;"></form>
  19. </td></tr>


I tu mam kodzik na którym się zatrzymałem:

  1. //Opłacona pozycja
  2.  
  3. $oplacone=(int)$_POST['oplacone'];
  4. echo $oplacone;
  5. if ($oplacone>0)
  6. {
  7. $oplacanie = 'SELECT * FROM naleznosci WHERE id ='.$oplacone;
  8. $oplac = mysql_query($oplacone);
  9. $o = $oplac['osoba']; $n = $oplac['naleznosci']; $s = $oplac['stan']; $z = $oplac['zaco']; $d = $oplac['dzien']; $m = $oplac['miesiac']; $r = $oplac['rok'];
  10. if ($oplac) { echo "<center>Poprawnie wybrano opłacony dług</center> <br>";
  11. $add = mysql_query ("INSERT INTO konto (osoba, wplacone, stan, zaco, dzien, miesiac, rok) VALUES ('$o','$n','$z','$d','$m','$r')");
  12. if ($add) { echo "<center>Poprawnie przeniesiono wpis do działu wpłat</center> <br>" ;
  13. $usuwanie = 'DELETE FROM naleznosci WHERE id ='.$oplacone;
  14. $usuniecie = mysql_query($usuwanie);
  15. if ($usuniecie) { echo "Poprawnie usunieto wpis z listy długów</center><br>";}}}
  16. }


niestety nie wykonuje zleconego działania.. nie bardzo widze dlaczego. Bardzo proszę o podpowiedź jeśli widzicie gdzie jest błąd. Z góry dziękuję.

zaowazylem ze przycisk "oplacone" nawet nie przekazuje wartosci zmiennej $row['id'] ale nie wiem dlaczego sad.gif w przycisku usuwania działa poprawnie.
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.