Avatar billede fqthjoe Nybegynder
17. juli 2003 - 08:48 Der er 14 kommentarer og
2 løsninger

Slette post fra et rullepanel i mysql via php

Har nedstående kode, som virker efter hensigten:
at den henter poster ind i et rullepanel, men nu vil jeg gerne kunne markére en af posterne og så klikke på en "knap" som sletter posten. Kan det lade sig gøre ?
vh thjoe

<HTML>
<HEAD>
<TITLE>Brugere</TITLE>
</HEAD>
<BODY>

<select>
<?php
    $con = mysql_connect("localhost", "user", "pass");
        mysql_select_db("testbase");

    $result = mysql_query("SELECT * FROM tester");
    while ($row = mysql_fetch_row($result)){

        echo("<OPTION VALUE='".$row[0]."'>".$row[0]);
    }
    echo("</select></p>");
?>

</BODY>
</HTML>
Avatar billede exp Juniormester
17. juli 2003 - 09:03 #1
Utestet:
------------------------------------------------

<?php
    if (isset($_POST['select'])) {
        $con = mysql_connect("localhost", "user", "pass");
            mysql_select_db("testbase");

            $result = mysql_query("DELETE * FROM tester WHERE etellerandet = 'noget'");
    }
?>
       
<HTML>
<HEAD>
<TITLE>Brugere</TITLE>
</HEAD>
<BODY>

<formm action="<?php echp $_SERVER['PHP_SELF']; ?>" method="post">
<select name="select">
<?php
    $con = mysql_connect("localhost", "user", "pass");
        mysql_select_db("testbase");

    $result = mysql_query("SELECT * FROM tester");
    while ($row = mysql_fetch_row($result)){

        echo("<OPTION VALUE='".$row[0]."'>".$row[0]);
    }
?>
</select><br />
<input type="submit" value="slet">
</form>

</BODY>
</HTML>
Avatar billede sostack Nybegynder
17. juli 2003 - 09:21 #2
Det ville være en god ide, at have en kolonne med unikt id for hver enkelt post, og slette ud fra det, da man ellers kan komme til at slette flere poster med samme værdi!

//sostack
Avatar billede exp Juniormester
17. juli 2003 - 09:22 #3
Det synes jeg også, men sådan er det desværre ikke indrettet...
Avatar billede exp Juniormester
17. juli 2003 - 09:24 #4
Lille rettelse til mit:
----------------------------------------

<?php
    if (isset($_POST['select'])) {
        $con = mysql_connect("localhost", "user", "pass");
            mysql_select_db("testbase");

            $result = mysql_query("DELETE * FROM tester WHERE etellerandet = '".$_POST['select']."'");
    }
?>
Avatar billede sostack Nybegynder
17. juli 2003 - 09:28 #5
exp -> Hvad vil du bruge $result til?

mysql_query("DELETE * FROM tester WHERE etellerandet = '".$_POST['select']."'") OR DIE(mysql_error());
ville vel egentlig være mere oplysende ??

//sostack
Avatar billede exp Juniormester
17. juli 2003 - 09:34 #6
Det er selvfølgelig rigtigt - kopierede bare hans databasetilslutning og rettede SQL'en :-)
Avatar billede fqthjoe Nybegynder
17. juli 2003 - 10:45 #7
Nu har jeg prøvet med koden. Og den lister også brugerne op i rullepanelet og jeg kan vælge en og klikke på slet, men så kommer nedstående fejl.
Jeg har ændret "etellerandet" til user - er det korrekt? det er mit "felt".

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '* FROM tester WHERE user = 'test'' at line 1

vh thjoe
Avatar billede exp Juniormester
17. juli 2003 - 10:46 #8
hvad hedder kolonnerne i din tabel?

Og hvordan ser select-boksen ud?
Avatar billede sostack Nybegynder
17. juli 2003 - 10:47 #9
"DELETE * FROM tester WHERE user = 'test'" skal være "DELETE FROM tester WHERE user = 'test'" uden stjerne!!

//sostack
Avatar billede fqthjoe Nybegynder
17. juli 2003 - 10:48 #10
ps : jeg har et ID felt som er Auto_increment. Skulle man bruge det istedet?
Avatar billede exp Juniormester
17. juli 2003 - 10:50 #11
<?php
    if (isset($_POST['select'])) {
        $con = mysql_connect("localhost", "user", "pass");
            mysql_select_db("testbase");

            $result = mysql_query("DELETE FROM tester WHERE id = '".$_POST['select']."'");
    }
?>
       
<HTML>
<HEAD>
<TITLE>Brugere</TITLE>
</HEAD>
<BODY>

<formm action="<?php echp $_SERVER['PHP_SELF']; ?>" method="post">
<select name="select">
<?php
    $con = mysql_connect("localhost", "user", "pass");
        mysql_select_db("testbase");

    $result = mysql_query("SELECT id, user FROM tester");
    while ($row = mysql_fetch_row($result)){

        echo("<OPTION VALUE='".$row['id']."'>".$row['user']);
    }
?>
</select><br />
<input type="submit" value="slet">
</form>

</BODY>
</HTML>
Avatar billede exp Juniormester
17. juli 2003 - 10:50 #12
sådan ville jeg gøre...
Avatar billede sostack Nybegynder
17. juli 2003 - 10:52 #13
Så lav om til:
<?php
    $con = mysql_connect("localhost", "user", "pass");
        mysql_select_db("testbase");

    $result = mysql_query("SELECT * FROM tester");
    while ($row = mysql_fetch_assoc($result)){

        echo("<OPTION VALUE='".$row["ID"]."'>".$row["user"]);
    }
?>

//sostack
Avatar billede sostack Nybegynder
17. juli 2003 - 10:54 #14
exp -> Enig!

//sostack
Avatar billede fqthjoe Nybegynder
17. juli 2003 - 11:02 #15
Alt virker perfekt :-)))
Takker og takker..... til alle er bare så happy...
Avatar billede exp Juniormester
17. juli 2003 - 11:15 #16
Det var da så lidt :-)

Og til en anden gang, så brug kolonne-overskrifter i $row['id'] - det er lettere at overskue ;-)
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