Avatar billede Slettet bruger
25. september 2009 - 15:10 Der er 9 kommentarer og
1 løsning

Slette fra database, virker ikke mere

Hejsa allesammen ..

jeg har en side som fletter en række i en mysql database, eller det skulle den gøre :-/

her er lige lidt kode:

include("conn.php");
if(isset($_GET['slet'])) { //hvis ['slet'] er sat fra admin_alle.php

$id = $_GET['slet'];

        if($_GET['sletnu'] == $id) { // hvis der er klikket på "ja" linket
            $query = mysql_query("DELETE FROM booking WHERE id=$id")or die(mysql_error());
           
        echo  'Slettet! <a href="admin_alle.php">Tilbage</a>';
   
            } else {
echo "Er du sikker på at du vil slette:<br /><br />";
$hent = mysql_query("SELECT * FROM booking WHERE id=$id")or die(mysql_error());
while($row = mysql_fetch_array($hent)) {

(en masse variabler.)

#bekræftelses link:

echo '<a href="admin_slet.php?sletnu=' . $id . '">Ja </a>';

#Første slet link:

<a href="admin_slet.php?slet=' . $id . '">Slet</a>

Den har id med fra ?slet=' . $id . '
og den har også id med i bekræftelses linket

Det virkede tidligere, men så lå der pludselig en dansk kabel tv mand og bøvlede rundt i kassen, så koksede det hele under en ny uploading, og nu har jeg rodet for meget i det tror jeg, håber i kan se noget ud af det :)
Avatar billede repox Seniormester
25. september 2009 - 17:31 #1
Der kommer ikke nogen fejl fra mysql_error()?
Avatar billede Slettet bruger
25. september 2009 - 20:57 #2
Nej det virker som om at den slet ikke fanger nogen kode efter der er trykket på ja linket, de viser bare hvis side
Avatar billede dkfire Nybegynder
25. september 2009 - 22:03 #3
Jeg kunne godt tænke mig at se hele siden i komplet rækkefølge.

Du skal huske på at $_GET['slet'] IKKE er sat når du kalder siden anden gang, dvs trykker på "ja".
Derfor vil den, som jeg ser det nu, aldrig kunne komme til if($_GET['sletnu'] == $id), da if(isset($_GET['slet'])) aldrig vil være sandt når du trykker på "ja". Du bliver nød til at have "slet" med over når du trykker på "ja"
Avatar billede Slettet bruger
26. september 2009 - 10:14 #4
dette er admin_slet.php

<?php //Starter sessions. Tjekker om session['logget_ind'] er sat fra admin_logind.php
session_start();
if(!$_SESSION['logget_ind'] == 1){ //Hvis session['logget_ind'] ikke er sat udskriver vi en fejl-meddelse og køre exit(); som lukker for resten af koden
    echo "<b>FEJL:</b><br /><br />Du skal være logget ind for at se denne side";
    exit();
} else {

//hvis session['logget_ind'] er sat fra admin_logind køre vi resten af koden.
    ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <link rel="stylesheet" href="style.css" />
        <title>Booking System - Slet en forspørgelse</title>
    </head>
    <body>
    <div class="admin_menu">Du er logget ind som:<b> <?php echo $_SESSION['brugernavn']; ?> </b> | <a href="admin.php">Vis sidste 20</a> - <a href="admin_alle.php">Vis Alle</a> - <a href="hjaelp.php">Hjælp!</a> - <a href="admin_logud.php">Log ud</a></div><br />
<div class="container">
<h3>Administration af Booking system:</h3><br />
Slet forspørgelser...:<br /><br />

<?php
include("conn.php");
if(isset($_GET['slet'])) { //hvis ['slet'] er sat fra admin_alle.php

$id = $_GET['slet'];

        if($_GET['sletnu'] == $id) { // hvis der er klikket på "ja" linket
            $query = mysql_query("DELETE FROM booking WHERE id=$id")or die(mysql_error());
           
        echo  'Slettet! <a href="admin_alle.php">Tilbage</a>';
   
            } else {
echo "Er du sikker på at du vil slette:<br /><br />";
$hent = mysql_query("SELECT * FROM booking WHERE id=$id")or die(mysql_error());
while($row = mysql_fetch_array($hent)) {
       
       
        $tid = $row['tid'];
        $tlf = $row['tlf'];
        $navn = $row['navn'];
        $dato = $row['dato'];
        $email = $row['email'];
        $addr = $row['addr'];
        $godkendt = $row['godkendt'];
       
        echo "Id: <i>" . $id . "</i><br />";
        echo "Navn: <i>" . $navn . "</i><br />";
        echo "Adresse: <i>" . $addr . "</i><br />";
        echo "Tlf.: <i>" . $tlf . "</i><br />";
        echo "E-mail: <i>" . $email . "</i><br />";
        echo "Dato: <i>" . $dato . "</i><br />";
        echo "Tidsramme: <i>" . $tid . "</i><br />";
        echo "Godkendt: <i>" . $godkendt . "</i><br /><br />";
       
        echo '<a href="admin_slet.php?sletnu=' . $id . '">Ja </a>';
        echo ' - ';
        echo '<a href="admin_alle.php"> Nej, Tilbage</a>';

           
        }   
           
            }
        }
       
           
                ?>
</div>
<div class="copyright">Copyrigt</div>
<?php
}
?>
</body>
</html>
Avatar billede Slettet bruger
26. september 2009 - 11:19 #5
vil det sige at $id ikke indeholder id'et fra slet i denne linje?


$id = $_GET['slet'];
Avatar billede dkfire Nybegynder
26. september 2009 - 11:40 #6
Den linje kommer du slet ikke til når du trykker på "ja", da if(isset($_GET['slet'])) aldrig er sandt.
Avatar billede Slettet bruger
26. september 2009 - 11:44 #7
Okay, tror næsten jeg er med nu, skal jeg ha slet med i "ja" linket på en måde?
Avatar billede dkfire Nybegynder
26. september 2009 - 12:04 #8
Ja det kan du gøre eller du kan tage den ene if sætning ud af den anden.



if(isset($_GET['sletnu'])) { // hvis der er klikket på "ja" linket

    $id = $_GET['sletnu'];
    $query = mysql_query("DELETE FROM booking WHERE id=$id")or die(mysql_error());
    echo  'Slettet! <a href="admin_alle.php">Tilbage</a>';

}elseif(isset($_GET['slet'])) { //hvis ['slet'] er sat fra admin_alle.php

    $id = $_GET['slet'];

    echo "Er du sikker på at du vil slette:<br /><br />";
    $hent = mysql_query("SELECT * FROM booking WHERE id=$id")or die(mysql_error());
   
    while($row = mysql_fetch_array($hent)) {
         
        $tid = $row['tid'];
        $tlf = $row['tlf'];
        $navn = $row['navn'];
        $dato = $row['dato'];
        $email = $row['email'];
        $addr = $row['addr'];
        $godkendt = $row['godkendt'];
     
        echo "Id: <i>" . $id . "</i><br />";
        echo "Navn: <i>" . $navn . "</i><br />";
        echo "Adresse: <i>" . $addr . "</i><br />";
        echo "Tlf.: <i>" . $tlf . "</i><br />";
        echo "E-mail: <i>" . $email . "</i><br />";
        echo "Dato: <i>" . $dato . "</i><br />";
        echo "Tidsramme: <i>" . $tid . "</i><br />";
        echo "Godkendt: <i>" . $godkendt . "</i><br /><br />";
     
        echo '<a href="admin_slet.php?sletnu=' . $id . '">Ja </a>';
        echo ' - ';
        echo '<a href="admin_alle.php"> Nej, Tilbage</a>';

    } 
         
}
?>

Det giver desværre ikke så meget sikkerhed for at man faktisk er kommer fra samme side og har trykket jeg, da en url altid kan pilles ved.
Dernæst bør du lave lidt mere validering på hvad $id må være.
Avatar billede Slettet bruger
26. september 2009 - 12:24 #9
Så virkede det endelig igen :)Tak for hjælpen, vil lige kigge lidt på noget validering til id :)

smid et svar
Avatar billede dkfire Nybegynder
26. september 2009 - 12:28 #10
Et svar ;-)
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