Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: usuniecie rekordu z bazy za pomoca checkboxa
Forum PHP.pl > Forum > Gotowe rozwiązania
seva
mam nastepujacy skrypt:


[php:1:4739cfd77a]<?php

require_once("config.php");
$ile = $config_ile;
mysql_connect("localhost", "test");
$result=mysql_db_query("test","SELECT mail, data, id FROM mailing LIMIT ".($page*$ile).",$ile");
while ($row=mysql_fetch_array($result)) {
for($a = 1; $a <= $b; $a++){
}
echo ("<table border='1' cellspacing='0' width='100%' class='tresc' bgcolor='#EFEFEF' bordercolor='#FFFFFF'cellpadding='0' style='border-collapse: collapse'>");
echo ("<tr>");
echo ("<td width='10%' align='center'>$a</td>");
echo ("<td width='50%'><left>&nbsp;&nbsp;<a href='mailto:".$row["mail"]."'</a>".$row["mail"]."</left></td>");
echo ("<td width='30%'><center>".$row["data"]."</center></td>");
echo ("<td width='10%'><center><input type='checkbox' name='usuniecie[]' value='$id'></center></td>");
echo ("</tr>");
echo ("</table>");
$b+=1;
list($wszystkich)=mysql_fetch_row(mysql_db_query("test","SELECT count(*) FROM mailing"));
$podstron=ceil($wszystkich/$ile-1);

}

if ($page>0){
echo "<a href=index.php?page=".($page-1).">Poprzednia</a>";} else
echo "Poprzednia";

echo ("&nbsp;&nbsp;&nbsp;&nbsp;");

for ($i=0; $i<=$podstron; $i++) {
if ($i==$page) echo "$i";}

echo ("&nbsp;&nbsp;&nbsp;&nbsp;");

if ($page<$podstron){
echo "<a href=index.php?page=".($page+1).">Następna</a>";} else
echo "Następna";


?>[/php:1:4739cfd77a]
<p align="right">

<input type="submit" name="usuwanie" value="Usuń zaznaczone" class="tresc"></p>


prosilbym o podanie konkretnego przykladu jaki skrypt musze uzyc aby, po zaznaczeniu jakiegos checkboxa (ktory odpowiada za konkretny adres e-mail) i nacisnieciu przycisku USUN - usunal sie z bazy danych rekord wlasnie z tym mailem... questionmark.gif?
czachor
[php:1:4ab0b2e537]<?
$mail = "do@usuniecia.pl";
$zapytanie = "DELETE FROM tabela WHERE mail='$mail'";
?>[/php:1:4ab0b2e537]mam nadzieję, że o to Ci chodziło...
kossa
tu masz kod dzialajacy, dostosuj go do swoich potrzeb:


[php:1:3dda78032f]<?php
<table>
<tr><td height="21" colspan="7" valign="top" id="log">Lista studentow</td></tr>
<tr><td height="21" colspan="7" valign="top" id="log"><form method="post" action="index.php?file=istastudentow.php&action=delete"></td></tr>
<tr><td height="21" colspan="7" valign="top" id="log"><input type="submit" value = "usun zaznaczonych"></td></tr>
</tr>
<tr>
<td width="2%" height="26" id="kolor2">zaznacz</td>
<td width="10%" height="26" id="kolor2">imie</td>
<td width="10%" height="26" id="kolor2">nazwisko</td>
<td width="8%" height="26" id="kolor2">nr indeksu</td>
<td width="5%" height="26" id="kolor2">rok studiow</td>
<td width="5%" height="26" id="kolor2">semestr</td>
<td width="5%" height="26" id="kolor2">edytuj</td>
</tr>
<?php
global $action;

function PokazStudentow()
{
global $action;
$table = "student";
$query = "select * from $table";
$result = mysql_query($query) or die ("invalid query: " . mysql_error());

while ($query_data = mysql_fetch_array($result))
{
$studid = $query_data["studid"];
$imie=$query_data['stud_imie'];
$nazwisko=$query_data['stud_nazwisko'];
$indeks=$query_data['nr_indeksu'];
$rok=$query_data['rok_studiow'];
$semestr=$query_data['semestr'];
echo "<tr><td width="2%"><input type="checkbox" value="$studid" name="del[]"></td>";
echo "<td width="12%">".$imie."</td>";
echo "<td width="10 %">".$nazwisko."</td>";
echo "<td width="10 %">".$indeks."</td>";
echo "<td width="10 %">".$rok."</td>";
echo "<td width="10 %">".$semestr."</td>";
echo "<td width="5%">
<a href="index.php?file=listastudentow.php&action=edytuj&studid=$studid">wyswietl</a></td></tr>";
}

echo "</form></TABLE>";

};

if ($action=="delete")
{
for ($i=0; $i<count($del); $i++)
{
$usun_id = $del[$i];
$query = "delete from student where id = $usun_id";
$result = mysql_query ($query);
}
}

PokazStudentow();


?>[/php:1:3dda78032f]

Kossa
Dawid Pytel
Jeżeli id elementów do usunięcia trzymasz w zmiennej $usuniecie to musisz je najpierw polaczyc ze sobą przecinkami:
[php:1:e7e618fd70]<?php
$usuniecie = implode(",",$usuniecie);
?>[/php:1:e7e618fd70]
następnie zapytanei sql powinno wygladac tak:


[sql:1:e7e618fd70]DELETE FROM tablica WHERE id IN($usuniecie);[/sql:1:e7e618fd70]

i to powinno wystarczyć.
seva
powiedzmy ze jestem poczatkujacy i chcialbym aby ktos przerobil ten moj skrypt co dalem na gorze i podal jak ma prawidlowo wygladac...
seva
ju doszedlem do tego jak to pozmieniac, ale mam kolejny problem, otoz mam nastepujacy kod po przerobieniu:

Kod
<script language="javascript">

function select_all(obj) {

var checkboxes = document.getElementsByTagName('input');

for (i = 0; i < checkboxes.length; i++) {

if (obj.checked == true) {

checkboxes[i].checked = true;

} else {

checkboxes[i].checked = false;

}

}

}

</script>



<div align="center">

  <center>

  <table border="1" cellspacing="0" style="border-collapse: collapse" id="AutoNumber1" cellpadding="0" width="100%"



bordercolor="#7F7F7F">

    <tr>

      <td><form method="post" action="index.php?action=delete">

      <meta http-equiv="Content-Language" content="pl">

<body link="#000000" vlink="#000000" alink="#000000">



<div align="center">

  <center>

  <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" id="AutoNumber1"



width="100%">

    <tr>

      <td>

      <div align="center">

        <center>

        <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111"



width="100%" class="tresc">

          <tr>

            <td bgcolor="#F3F3F3" align="center" width="100%" colspan="4">

            &nbsp;</td>

          </tr>

          <tr>

            <td bgcolor="#F3F3F3" align="center" width="10%">

            <p align="center"><b>L.p.</b></td>

            <td bgcolor="#F3F3F3" width="50%">

            <p align="center"><b>Adres e-mail</b></td>

            <td bgcolor="#F3F3F3" align="center" width="30%">

            <p align="center"><b>Data zapisania</b></td>

            <td bgcolor="#F3F3F3" align="center" width="10%">

            <p align="center"><b>Wybór</b></td>

          </tr>

          <tr>

            <td align="center" valign="top" bgcolor="#F3F3F3" colspan="4">&nbsp;</td>

          </tr>

          <tr>

            <td align="center" colspan="4">

            <div align="center">

              <center>











<?php



mysql_connect("localhost", "test");

mysql_select_db("test");

global $action;



require_once("config.php");

$ile = $config_ile;

global $action;

$query = "select * from mailing LIMIT ".($page*$ile).",$ile";

$result = mysql_query($query) or die ("invalid query: " . mysql_error());

while ($query_data = mysql_fetch_array($result))

{

    $ID = $query_data["id"];

    $MAIL=$query_data['MAIL'];

    $DATA=$query_data['DATA'];

for($a = 1; $a <= $b; $a++){

}

echo ("<table border='1' cellspacing='0' width='100%' class='tresc' bgcolor='#EFEFEF' bordercolor='#FFFFFF' cellpadding='0' style='border-collapse: collapse'>");

echo ("<tr>");

echo ("<td width='10%' align='center'>$a</td>");

echo ("<td width='50%'><left>&nbsp;&nbsp;<a href='mailto:".$MAIL."'</a>".$MAIL."</left></td>");

echo ("<td width='30%'><center>".$DATA."</center></td>");

echo ("<td width='10%'><center><input type="checkbox" value="$ID" name="del[]" size="20"></center></td>");

echo ("</tr>");

echo ("</table>");

$b+=1;



}



list($wszystkich)=mysql_fetch_row(mysql_query("SELECT count(*) FROM mailing"));

$podstron=ceil($wszystkich/$ile-1);

$podstron2=ceil($wszystkich/$ile+1);



echo("<BR>");

if ($page>0) echo "<a href=index.php?page=".($page-1).">Poprzednia</a>"; else

echo "Poprzednia";

echo ("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");





for ($i=1; $i<=$podstron2; $i++) {

if ($i==$page+1) echo "$i";

}

echo ("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");





if ($page<$podstron) echo "<a href=index.php?page=".($page+1).">Następna</a>";

else echo "Następna";

echo("<p align="right" style="margin-top: 0; margin-bottom: 0"><BR>");





if ($action=="delete")

{

  for ($i=0; $i<count($del); $i++)

  {

    $usun_id = $del[$i];

    $query = "delete from mailing where id = $usun_id";

    $result = mysql_query ($query);

  }

}



?>











              </center>

            </div>

            </td>

          </tr>

          <tr>

            <td align="center" bgcolor="#EFEFEF" colspan="4">

            <div align="center">

              <center>

              <table border="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" class="tresc">

                <tr>

                  <td>



        <div align="center">

          <center>

          <table border="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" class="tresc" cellpadding="6">

            <tr>

              <td>&nbsp;

</td>

            </tr>

            <tr>

              <td>&nbsp;</td>

            </tr>

          </table>

          </center>

        </div>

                  </td>

                  <td width="0">&nbsp;<p align="right" style="margin-top: 0;



margin-bottom: 0">&nbsp; &nbsp;&nbsp; Zaznacz wszystkie:

            <input type="checkbox" name="C1" name="select_all[]" value="select_all"



onclick="select_all(this);">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<p align="right" style="margin-top: 0;



margin-bottom: 0">&nbsp;<p align="right" style="margin-top: 0;



margin-bottom: 0">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

                  <input type="submit" value =

"usuń zaznaczone" class="tresc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <p align="right" style="margin-top: 0;



margin-bottom: 0">&nbsp;</td>

                </tr>

              </table>

              </center>

            </div>

            </td>

          </tr>

        </table>

        </center>

      </div>

      </td>

    </tr>

  </table>

  </center>

</div>

      </td>

    </tr>

  </table>

  </center>

</div>


i chodzi o to ze gdy zaznacze jakis chceckbox i dam przycisk usun zaznaczone to pomimo tego ze rekord zostal z bazy danych usuniety, nadal na ekranie widze ten wpis.. znika on dopiero wtedy, kiedy zaznacze nastepny checkbox i nacisne przycisk... zreszta sami zobaczcie na powyzszym kodzie.
djpeterek
po pierwsze wyedytuj posta po drugie jak cos piszesz staraj sie zeby to bylo estetycznie smile.gif
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.