Avatar billede impulze Nybegynder
26. februar 2004 - 12:38 Der er 5 kommentarer og
1 løsning

Slette tilmeldte i php

Sidder og lavede en tilmeldnings liste, og nu er i gang med at lave sådan man kan slette dem igen.
Det virkede for 10 minutter siden, men der brugte jeg radio buttons. Men nu eftersom jeg vil slette flere på en gang, så var checkbox en mulighed.
Nu virker det bare ikke, håber der er nogle php hajer der kan se hvad jeg har lavet forkert :)

Koden:

<form method="post" action="tilmeldte_slet.php">
<table width="340">
<tr>
<td width="300"><font face="verdana" color="black" size="1"><b>Navn:</b></td>
<td><font face="verdana" color="black" size="1"><b>Slet:</b></td>
</tr>
<?
        include("config.php");
        $query = mysql_query("SELECT * FROM ygmardalen_tilmelding ORDER BY navn");
        while($row = mysql_fetch_array($query)) {

    echo "<tr>";
    echo "<td width=\"300\">$row[navn]</td>";
    echo "<td><input type=\"checkbox\" name=\"$row[id]\" value=\"$row[id]\"></td>";
    echo "</tr>";
}
?>
</table>
<br />
    <input type="submit" value="Slet" name="slet"> <input type="submit" class="button" name="opdater" value="Opdater">
</form>
<br />
<?
if($slet){
    include("config.php");
    $query = mysql_query("DELETE FROM ygmardalen_tilmelding WHERE id = $id LIMIT 1");
    echo "<font color=\"#008000\">Tilmelding slettet fra databasen<br />Husk at opdater med knappen Opdater og ikke F5!!!</font>";
    }
?>
Avatar billede Slettet bruger
26. februar 2004 - 12:46 #1
Prøv:

<input type='checkbox' name='checkbox{$row['id']}'>

Så kan du i tilmeldte_slet.php skrive $checkboxes=$_POST['checkbox'] og derefter bruge en løkke i stil med:

foreach($checkboxes as $checkboxid => $værdi){
  mysql_query("DELETE FROM tabel WHERE id='$checkboxid');
}
Avatar billede Slettet bruger
26. februar 2004 - 12:47 #2
Og du kan godt (ligesom i mit forslag) bruge ' om attributværdierne i din HTML-kode, så du ikke behøver alle de \". Så længe der er " uden om selve strengen bliver variable "oversat" til deres værdier.
Avatar billede impulze Nybegynder
26. februar 2004 - 12:58 #3
hmmm...
Forstår ikke din svar med det sidste, kan du ikke forklar det lidt mere?
Avatar billede Slettet bruger
26. februar 2004 - 14:03 #4
Der var et par andre detaljer også, så her er en tilrettet udgave af dit script:

<?
include('config.php');

if(isset($_POST['slet'])){
  foreach($_POST['checkbox'] as $id => $check){
    $query = mysql_query("DELETE FROM ygmardalen_tilmelding WHERE id ='$id' LIMIT 1");
  }
  echo "<font color='#008000'>Tilmelding(er) slettet fra databasen!</font>";
}
?>

<form method="post" action="tilmeldte_slet.php">
<table width="340">
<tr>
<td width="300"><font face="verdana" color="black" size="1"><b>Navn:</b></td>
<td><font face="verdana" color="black" size="1"><b>Slet:</b></td>
</tr>
<?
        $query = mysql_query("SELECT * FROM ygmardalen_tilmelding ORDER BY navn");
        while($row = mysql_fetch_array($query)) {

    echo "<tr>";
    echo "<td width='300'>{$row['navn']}</td>";
    echo "<td><input type='checkbox' name='checkbox[{$row['id']}]'></td>";
    echo "</tr>";
}
?>
</table>
<br />
    <input type="submit" value="Slet" name="slet"> <input type="submit" class="button" name="opdater" value="Opdater">
</form>
Avatar billede Slettet bruger
26. februar 2004 - 14:05 #5
Jeg håber forresten, at koden ikke bare kan køres som den er, for så kan hvemsomhelst slette alle dine tilmeldinger.
Avatar billede impulze Nybegynder
26. februar 2004 - 23:18 #6
Jep ved det, du fik også kun koden med slet, der er brugersystem på :)
Men det virker og mange tak for hjælpen!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester