Avatar billede tobrukDk Novice
05. januar 2012 - 19:12 Der er 16 kommentarer og
1 løsning

problem med slette function

hej

Jeg er i gang med uddannelse og jeg har kommet på et lille problem og det er sådan at der er nogle fejl siger den :(



<?php
session_start();
include ("database/database.php")
?>
<?php
if(isset($_GET["billeder"])) {
        $id = $_GET['id'];
       
        $query="DELETE FROM billeder WHERE id='$id'";
        mysql_query($query)or die(mysql_eroror());
       
    }
?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="style/style.css">
<title>Admin Slet billeder</title>
</head>
<body>
<div id="wrapper">
<h1><a href="admin.php">Admin login</a></h1>
    <div id="menu">
    <ul>
                    <li><a href="admin.php">Upload billeder</a></li>
                    <li><a href="slet.php">Slet Billeder</a></li>
                    <li><a href="logud.php">Log ud</a></li>
    </ul>
    </div>
    <div id="sletform">
        <?php
            $result = mysql_query("SELECT * FROM katogori");
              while($row = mysql_fetch_array($result))
            {
                echo "<li>" . "<a href='slet.php?billeder=$row[id]'>$row[katogori]</a>" . "</li>";
            }
        ?>
    </div>
    <div id="content">
                <?php
                    $result = mysql_query("SELECT * FROM billeder WHERE fk_katogori = $_GET[billeder]");
                    while($row = mysql_fetch_array($result))
                {
                    echo "<div class='ikon'><img src='../foto_ikon/$row[navn]' /></div>";
                    echo "<a href='?billeder=slet&id=$row[id]' onclick='return confirm(\Er du helt sikkert på at slette det her\")'>Slet</a>";
                }
                    ?>
   
    </div>
</div>
</body>
</html>



Den siger sådan her;


Notice: Undefined index: id in C:\xampp\htdocs\galleri\admin\slet.php on line 7

og

Notice: Undefined index: billeder in C:\xampp\htdocs\galleri\admin\slet.php on line 42

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\galleri\admin\slet.php on line 43

Hvad er gået galt for mig?

- Mit php niveau er ikke så højt men sådan lidt højt ;) vil du hjælp mig?
Avatar billede Fnugus Nybegynder
05. januar 2012 - 19:57 #1
Du har ikke rent faktisk defineret variablerne og sikret dig at de  før du bruger dem. Prøv at bruge

if(!isset($_GET['id'])) exit(' variabel 'id' ikke sat');
Avatar billede tobrukDk Novice
05. januar 2012 - 20:05 #2

<?php
session_start();
include ("database/database.php")
?>
<?php
if(!isset($_GET["billeder"])) {
        $id = $_GET['id'];
       
        $query="DELETE FROM billeder WHERE id='$id'";
        mysql_query($query)or die(mysql_eroror());
       
    }
?>


er sådan du mener :) ..

nu siger den bare at der er fejl her


$result = mysql_query("SELECT * FROM billeder WHERE fk_katogori = $_GET[billeder]");
                    while($row = mysql_fetch_array($result))
Avatar billede Fnugus Nybegynder
05. januar 2012 - 20:14 #3
Med variablen $billeder, gør det samme som med $id, altså med if(isset... Osv.
Avatar billede tobrukDk Novice
05. januar 2012 - 20:30 #4
hvordan skal det forståes?
Avatar billede Fnugus Nybegynder
05. januar 2012 - 20:47 #5
if(!isset($_GET['billeder']))
    exit ('variabel billeder ikke sat.');
$billeder = $_GET['billeder'];
Avatar billede tobrukDk Novice
05. januar 2012 - 20:51 #6
er ikke helt i med hvor henne jeg skal skrive det henne?
05. januar 2012 - 20:52 #7
Du får fejlmeldingen "Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given". 

Den fejlmelding kommer i forbindelse med forespørgslen $result = mysql_query("SELECT * FROM billeder WHERE fk_katogori = $_GET[billeder]");

Fejlmeldingen betyder, at forespørgslen fejlede.  Der er ikke i tabellen nogen rækker hvor fk_kategori = $_GET[billeder].  Hvis forespørgslen lykkes wille $result indeholde resultatet.  Hvis forespørgslen ikke lykkes indeholder $result FALSE. Se for eksempel http://php.net/manual/en/function.mysql-query.php under 'Return Values'.

Sandsynligvis er $_GET["billeder"] tom.  Du kan checke det ved i begyndelsen af koden at skrive:  echo $_GET["billeder"];

Hvis det viser sig at $_GET["billeder"] er tom, så foreslår jeg, at du undersøger hvor værdien i $_GET["billeder"] skal komme fra og hvorfor den er tom.
Avatar billede tobrukDk Novice
05. januar 2012 - 21:12 #8
http://localhostr.com/files/HPJP5x1/capture.png

sådan ser min database ud .. :)
Avatar billede tobrukDk Novice
05. januar 2012 - 21:14 #9
05. januar 2012 - 21:45 #10
...så hvis værdien af $_GET["billeder"] er 1, 2, eller 3, så vil forespørgslen give resultat, men hvis værdien af $_GET["billeder"] er noget andet, for eksempel NULL, vil forespørgslen give FALSE og der med udløse fejlmeldingen.

Jeg ville derfor have troet, at du ville være interesseret i at undersøge, hvad værdien af $_GET["billeder"] er, såsom ved at echoe den ud som jeg foreslog.  Gider du ikke det?
Avatar billede tobrukDk Novice
05. januar 2012 - 22:05 #11
Undskyld jeg spørger lidt dumt men hvordan echoe den ud som du siger til mig at jeg skal gøre?
06. januar 2012 - 06:20 #12
Din kode starter nu således:


<?php
session_start();
include ("database/database.php")
?>
<?php
if(isset($_GET["billeder"])) {


Det ændrer du for eksempel til:


<?php
session_start();
include ("database/database.php")
?>
<?php
echo "BILLEDER = ".$_GET["billeder"]
if(isset($_GET["billeder"])) {

og så kører du koden.  Hvis du så får udskrevet, for eksempel, "BILLEDER = 3" så er $_GET["billeder"] ikke tom, og så må vi lede efter en anden årsag til fejlmeldingerne.  Jeg gætter på, at du før udskrevet "BILLEDER = " og ikke mere.  I så fald må du kikke på den kode der skulle have putten en værdi i $_GET["billeder"].
Avatar billede tobrukDk Novice
06. januar 2012 - 06:23 #13
Ja nemlig . Og jeg synes bare at jeg hqr prøve mange ting . ::o men jeg finder lige ud af det i skole ;)
Avatar billede tobrukDk Novice
06. januar 2012 - 10:42 #14


<?php
ob_start();
session_start();
include ("database/database.php")
?>
<?php
if(isset($_GET["opgave"])) {
                if($_GET["opgave"] == "slet")
                  {
                        $id = $_GET['id'];

                        $query="DELETE FROM billeder WHERE id='$id'";
                        mysql_query($query)or die(mysql_eroror());
                       
                        header("Location:slet.php");
                    }
            }

?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="style/style.css">
<title>Admin Slet billeder</title>
</head>
<body>
<div id="wrapper">
<h1><a href="admin.php">Admin login</a></h1>
    <div id="menu">
    <ul>
                    <li><a href="admin.php">Upload billeder</a></li>
                    <li><a href="slet.php">Slet Billeder</a></li>
                    <li><a href="logud.php">Log ud</a></li>
    </ul>
    </div>
    <div id="sletform">
        <?php
            $result = mysql_query("SELECT * FROM katogori");
              while($row = mysql_fetch_array($result))
            {
                echo "<li>" . "<a href='slet.php?opgave=$row[id]'>$row[katogori]</a>" . "</li>";
            }
        ?>
    </div>
    <div id="content">
        <?php
        if(isset($_GET["opgave"])) {
        $query = "SELECT * FROM billeder WHERE fk_katogori = $_GET[opgave] ORDER BY id DESC";
        $result = mysql_query($query);
        while($row = mysql_fetch_assoc($result))
    {   
            echo "
            <div id='left'><img class='admin' src='../foto_ikon/$row[navn]' /><br />
        <li><a href='?opgave=slet&id=$row[id]' onclick='return confirm(\Er du helt sikkert på at slette det her\")'>Slet</a></li></div>";
    }
        }
    else {
        echo "Velkommen";       
    }

?>
    </div>
</div>
</body>
</html>



komme frem til det her og det virker 100% nu
Avatar billede tobrukDk Novice
06. januar 2012 - 16:31 #15
skriver lige til mig hvis i synes ikke at jeg må lukke nede..
Avatar billede tobrukDk Novice
06. januar 2012 - 16:32 #16
eller i vil have noget for det? fordi jeg lukker nemlig samtale nu
06. januar 2012 - 16:35 #17
Det er dig der afgør, om du har løst det på egen hånd, i hvilket tilfælde du accepterer dit eget svar, eller om du har haft hjælp og fra hvem, i hvilket tilfælde du beder om 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