Avatar billede hp-power Nybegynder
18. april 2008 - 19:36 Der er 6 kommentarer og
1 løsning

kan ikke finde fejlen ved sletning..

jeg kan ikke finde ud af hvorfor den ikke vil slette i min mysql

denne lide lister alle poster i tabel med en slet kan

det kan godt være det er en forkert måde at gøre det på men jeg er helt ny idet..

delete_form.php indeholder

<?
//----------------------  START --------------------------


// forbindelse til sql
$conn = mysql_connect("localhost", "root", "online");
// vælg tabel
mysql_select_db("mysql",$conn);
// opbyd sql
$sql = "select * from mylinks order by kategori"; // ---------------------------- SQL !!!!
// udfør sql
$resultat = mysql_query($sql,$conn) or die(mysql_error());
// Henter data



while ($newarray = mysql_fetch_array($resultat)) {
   
    echo "<div id=\"subdellinks\">";
    echo "<form action=\"fun_del.php\" method=\"post\">";
    // giv felterne et navn
    $id = $newarray['id'];
    $beskrivelse = $newarray['beskrivelse'];
    $link = $newarray['link'];
    $kategori = $newarray['kategori'];
    // udskrivning til skærm
    echo "$id" . " - " . "$kategori" . " - " . "$beskrivelse";
    echo "<a href=\"$link\">$beskrivelse</a>";
    echo "    ";
    echo "<input type=\"submit\" name=\"submit\" value=\"SLET\" class=\"knap\"/>";
    echo "</div>";
   
}

//----------------------  SLUT --------------------------
?>

fun_del.php inderholder:


<?
// forbindelse til sql
$conn = mysql_connect("localhost", "root", "online");
// vælg tabel
mysql_select_db("mysql",$conn);
// definer sql text
$sql = 'delete from mylinks where id=\'$_POST[id]\'';

// udfør sql text

if (mysql_query($sql,$conn)) {
    echo "Link Slettet";
   
   
   
}else{
    echo "Fejl under tilføjelse";
    echo die(mysql_error());
}










?>
Avatar billede virtual1ty Nybegynder
18. april 2008 - 19:52 #1
Prøv at ændre denne linje:

$sql = 'delete from mylinks where id=\'$_POST[id]\'';

Til:

$sql = "delete from mylinks where id=\'$_POST[id]\'";

Det kan også godt være, at du skal lave en stripslashes() på din query, inden du udfører den:

$query = stripslashes($sql)
Avatar billede hp-power Nybegynder
18. april 2008 - 19:59 #2
har ændret
fun_del.php

<?
// forbindelse til sql
$conn = mysql_connect("localhost", "root", "online");
// vælg tabel
mysql_select_db("mysql",$conn);
// definer sql text
$sql = "delete from mylinks where id=\'$_POST[id]\'";
$query = stripslashes($sql);
// udfør sql text

if (mysql_query($query,$conn)) {
    echo "Link Slettet";
   
   
   
}else{
    echo "Fejl under tilføjelse";
    echo die(mysql_error());
}

?>

og får nu fejl.


Notice: Undefined index: id in /Volumes/Mega Stock/PHP SERVER/admin/fun_del.php on line 16
Link Slettet
Avatar billede virtual1ty Nybegynder
18. april 2008 - 20:29 #3
Okay, vi prøver noget andet..

Lav $sql = "delete from mylinks where id=\'$_POST[id]\'";

om til:

$sql = "delete from `mylinks` where id = '$_POST[id]'";

Og fjern $query = stripslashes($sql).
Se om det hjælper.
Avatar billede hp-power Nybegynder
18. april 2008 - 23:02 #4
samme fejl..

er det måde jeg lister dem op på med mange form så den ikke ved hvilken den skal slette eller?
Avatar billede erikjacobsen Ekspert
18. april 2008 - 23:13 #5
Du har ikke et felt, der hedder "id", eller bruger ikke method="post", når du tilgår siden med den kode du viser her.
Avatar billede hp-power Nybegynder
18. april 2008 - 23:29 #6
nej jeg her jo ikke nogle felter da jeg bare liste dem op som tekst med echo...
Avatar billede hp-power Nybegynder
19. april 2008 - 02:12 #7
langt om længe fandt jeg ud at det..

jeg sætte en echo ind som lavede en hidden input med id nummert i så kunne den finde den :->

Man skal jo lige lære det. begyndte for en uge side...

Heino
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