Avatar billede mrfunder Nybegynder
26. januar 2005 - 21:49 Der er 20 kommentarer og
1 løsning

Slet makerede?

Hej.

Jeg har lavet et "post-system", den henter alle brevene ud. Og så vil jeg gerne have at man kan slette dem man har makeret.

<td width=\"3\"><input type=\"checkbox\" name=\"delete\" value=\"$row[id]\"></td>

$row[id] er brevet's id. Så har jeg lavet en POST, funktion sådan man makere dem som skal slettes, og så trykker Slet.

Men mit problem er så: Hvordan får jeg fat i id'erne på dem som skal slettes?

$_POST[delete], Den indeholder jo kun én. Og man har formegentlig valgt flere - Forstår i?

Hvordan laver jeg slet funktionen sådan den sletter alle makerede fra databasen?
Avatar billede x-bixi Nybegynder
26. januar 2005 - 21:51 #1
Du skal sætte deres name til deres id, for de sender true til php hvis de er markerede
Avatar billede mrfunder Nybegynder
26. januar 2005 - 21:54 #2
Ja, jeg sætter deres navn til deres ip? Og hvordan finder jeg dem så og sletter dem?
Avatar billede mrfunder Nybegynder
26. januar 2005 - 22:01 #3
ip = id
Avatar billede detox Nybegynder
26. januar 2005 - 22:09 #4
Prøv at se dette eksempel:

<?
if (isset($_POST['send'])) {
    $ins = implode(' OR id=', $_POST['delete']);
    $query = "DELETE FROM tabel WHERE id=" . $ins;
    echo $query;
} else {
?>
<form action='<?=$_SERVER['PHP_SELF']?>' method='post'>
<p>1: <input type="checkbox" name="delete[]" value="1" /></p>
<p>2: <input type="checkbox" name="delete[]" value="2" /></p>
<p>3: <input type="checkbox" name="delete[]" value="3" /></p>
<p><input type="submit" name="send" value="OK" /></p>
</form>
<?
}?>
Avatar billede mrfunder Nybegynder
26. januar 2005 - 22:23 #5
Detox -> Det virker ikke helt
Avatar billede detox Nybegynder
26. januar 2005 - 22:25 #6
Hvordan mener du?
Avatar billede mrfunder Nybegynder
26. januar 2005 - 22:25 #7
Warning: implode(): Bad arguments. in c:\srv\apachegroup\apache\htdocs\manager\pages\indbakke.php on line 91
DELETE FROM post WHERE id=

Og så printede jeg lige sql også
Avatar billede coderdk Praktikant
26. januar 2005 - 22:25 #8
detox' vil virke fint, jeg ville dog gøre sådan:

<?php
if (isset($_POST['send'])) {
    $ins = implode(',', $_POST['delete']);
    $query = "DELETE FROM tabel WHERE id in (" . $ins . ")";
    echo $query; // mysql_query( $query );
}
?>
<form action='<?=$_SERVER['PHP_SELF']?>' method='post'>
<p>1: <input type="checkbox" name="delete[]" value="1" /></p>
<p>2: <input type="checkbox" name="delete[]" value="2" /></p>
<p>3: <input type="checkbox" name="delete[]" value="3" /></p>
<p><input type="submit" name="send" value="OK" /></p>
</form>
Avatar billede coderdk Praktikant
26. januar 2005 - 22:26 #9
Du ville formentlig slippe afsted med at ændre din kode lidt:

<td width=\"3\"><input type=\"checkbox\" name=\"delete[]\" value=\"$row[id]\"></td>
Avatar billede mrfunder Nybegynder
26. januar 2005 - 22:27 #10
Nu har jeg selv fixet den. det var mig som havde lavet en fejl
Avatar billede detox Nybegynder
26. januar 2005 - 22:31 #11
Egentlig skulle du måske osse tjekke at der er afkrydset minimum en boks:

if (isset($_POST['send'])) {
    if (!empty($_POST['delete'])) {
        $ins = implode(' OR id=', $_POST['delete']);
        $query = "DELETE FROM tabel WHERE id=" . $ins;
        echo $query;
    } else {
        echo "Du skal afkrydse mindst en tjekboks!";
    }
} else {
Avatar billede detox Nybegynder
26. januar 2005 - 22:33 #12
coderdk -> Go' ide med at bruge:

    $ins = implode(',', $_POST['delete']);
    $query = "DELETE FROM tabel WHERE id in (" . $ins . ")";

istedet ;O)
Avatar billede mrfunder Nybegynder
26. januar 2005 - 22:34 #13
$ins = implode(' AND id=', $_POST['delete']);
mysql_query("DELETE FROM post WHERE(til='$_SESSION[email] AND id= . $ins)");
$query = "DELETE FROM post WHERE(til='$_SESSION[email] AND id='$ins'";
print "$query";


- Det her knaser lidt, kan ikke få det til at virke..
Avatar billede dotcom1 Nybegynder
26. januar 2005 - 22:34 #14
mrfunder >> Husk at give feedback eller afslutte dine gamle spørgsmål: http://www.eksperten.dk/list.phtml?spm_creator=mrfunder&status_1=on&status_2=on&status_3=on&status_4=on
Avatar billede mrfunder Nybegynder
26. januar 2005 - 22:39 #15
dem sakl jeg lige få afsluttet med det samme
Avatar billede detox Nybegynder
26. januar 2005 - 22:41 #16
$ins = implode(',', $_POST['delete']);
$query = "DELETE FROM post WHERE til='$_SESSION[email]' AND id IN (" . $ins . ")";
mysql_query($query) or die(mysql_error());
print $query;
Avatar billede mrfunder Nybegynder
26. januar 2005 - 22:44 #17
if(!empty($_POST['delete'])) {
$ins = implode(' AND id=', $_POST['delete']);
$query = "DELETE FROM post WHERE til='$_SESSION[email]' AND id=" . $ins;
print $query;
mysql_query($query);


Den kan slette hvis der er én. Men ikke hvis der er flre på en gang
Avatar billede mrfunder Nybegynder
26. januar 2005 - 22:46 #18
Mange tak. det virker - smid et svar detox
Avatar billede detox Nybegynder
26. januar 2005 - 22:49 #19
Velbekommen, men jeg vil nu ikke tage hele æren. Det var coderdk's ide at bruge:

id IN (" . $ins . ") istedet :O)
Avatar billede coderdk Praktikant
26. januar 2005 - 22:50 #20
Nah, det er dine :) Jeg raffinerede den bare lidt ;)
Avatar billede detox Nybegynder
26. januar 2005 - 22:54 #21
Jamen så tak for point. Jeg burde nu selv ha' tænkt på den ;o)
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