Avatar billede kirsten Nybegynder
22. april 2001 - 19:21 Der er 29 kommentarer og
1 løsning

Slette fra DB\'n!

Hey!
Jeg har det her gb script som jeg gerne vil have lavet en admin del til. I få lige scriptet her:
<?php

$pr_side = \"5\"; //Definerer antal resultater pr. side

mysql_connect(\"localhost\",\"root\");
mysql_select_db(\"gb\");

if(!isset($s)){
    $s = \"0\"; //Tjekker om $s - som står for start - er sat, hvis ikke sættes den
}


$query = mysql_query(\"select * from indlaeg ORDER BY tid DESC limit $s,$pr_side\") or die(mysql_error());


include (\"header.php\");

##
#Skriver selve gæstebogen
##
while($row = mysql_fetch_array($query)){
      echo \"<div align=center><table width=\\\"40%\\\" border=\\\"0\\\" cellpadding=\\\"0\\\" cellspacing=\\\"0\\\"><tr><td><br>\";
      echo \"<font face=Verdana, Arial, Helvetica, sans-serif size=2>\";
      echo date(\"d/m Y \",$row[\"tid\"]).\"kl. \".date(\"H:i\",$row[\"tid\"]);
      echo \"<br>\";
      echo \"<a href=mailto:\".$row[email].\">\".$row[navn].\"</a> skrev<br>\";
      echo nl2br($row[kommentar]).\"<br>\";
      echo \"<br><hr></font></tr></td></table>\";
     
}


$g_total = mysql_query(\"select count(id) as total from indlaeg\") or die(mysql_error());
$total = mysql_result($g_total,0);

##
#Find ud af om derskal være et Forrige link
##
if($s >= $pr_side){    //Tjekker om værdien af $s er større eller lig $pr_side
    $previous_s = $s-$pr_side; //Regner ud hvor mysql skal starte hvis forrige side kaldes
    echo \"<font face=Verdana, Arial, Helvetica, sans-serif size=2><a href=\'?s=$previous_s\'>Forrige</a></font> \"; //Udskriver linket
}

##
#Find ud af hvis/hvor mange sider der er rows til
##
$page=1; //Definerer hvor sidetal skal starte
for($start=0; $total > $start; $start=$start+$pr_side){ //For-løkke der kører indtil der ikke er nok rows til en side mere
    if($start != $s){ //Tjekker om linket vil komme til at pege på den side man er på
        echo \"<font face=Verdana, Arial, Helvetica, sans-serif size=2><a href=\'?s=$start\'>$page</a></font> \"; //...hvis ikke, udskrives link med værdien af $page
    }
    else{ //Ellers, dvs. hvis linket vil pege på den side man er på..
        echo \"<font face=Verdana, Arial, Helvetica, sans-serif size=2>$page</font> \"; //...udskrives værdien af $page bare, altså ikke som link
    }
    $page++; //Lægger en til $page til næste gang løkken køres
}

##
#Find ud af om der skal være et næste link
##
if($total > $s+$pr_side){ //Tjekker om der er flere sider
    $next_s = $s+$pr_side; //Regner ud hvor mysql skal starte hvis næste side kaldes
    echo \"<font face=Verdana, Arial, Helvetica, sans-serif size=2><a href=\'?s=$next_s\'>Næste</a></font></div>\"; //Udskriver linket \"næste\"
}

include (\"footer.php\");
?>
I admin delen skal man kunne slette indlæg via et link noget i stil med: <a href=\"slet.php?delete=$id\">\">slet</a>!
Jeg er kommet så langt (tror jeg) så jeg har fundet ud af det er noget med mysql_connect(\"localhost\",\"root\");
mysql_select_db(\"gb\");

$sql = \"delete from indlaeg where id = $id\";
Men resten er jeg ikke så sikker på!!
Avatar billede htx98i17 Professor
22. april 2001 - 19:24 #1
mysql_query(\"DELETE FROM indlaeg WHERE id = \'$id\' \");

er det hvad du søger?
Avatar billede gizmo-gizmo Nybegynder
22. april 2001 - 19:26 #2
Jeg synes du skal bruge PhpMyAdmin til at slette...
Avatar billede kirsten Nybegynder
22. april 2001 - 19:27 #3
Ja det er noget af det!
Men hvordan skal skrive linket?
Avatar billede htx98i17 Professor
22. april 2001 - 19:27 #4
gizmo, det er jo LANGT fra et svar der passer til hendes spm...
Hvorfor synes du iøvrigt også det?
Avatar billede htx98i17 Professor
22. april 2001 - 19:28 #5
<a href=\"slet.php?id=<? echo$id; ?>\" >Slet</a>
Avatar billede kirsten Nybegynder
22. april 2001 - 19:29 #6
gizmo-gizmo>> Det kunne jeg jo godt, men det er for besværligt at kigge indlæg igennem på den måde!
Avatar billede gizmo-gizmo Nybegynder
22. april 2001 - 19:30 #7
--> htx.
det var ikke ment som et svar....
Hvorfor lave en admin del, når man PhpMyAdmin funker rigtig godt!
Avatar billede htx98i17 Professor
22. april 2001 - 19:30 #8
eller:

<a href=\"slet.php?sletid=<? echo$id; ?>\" >Slet</a> 

mysql_query(\"DELETE FROM indlaeg WHERE id = \'$sletid\' \");

Avatar billede htx98i17 Professor
22. april 2001 - 19:31 #9
phpmyadmin er god til at oprette og slette tabeller... ikke andet, den er i hvert fald langt fra noget man kan bruge til administration af f.eks. et forum eller brugerdatabase...
Avatar billede kirsten Nybegynder
22. april 2001 - 19:34 #10
hvordan propper jeg query\'n ind scriptet?
Avatar billede htx98i17 Professor
22. april 2001 - 19:36 #11
if(isset($sletid)) {
mysql_query(\"DELETE FROM indlaeg WHERE id = \'$sletid\' \");

}

ovenstående sættes bare ind et sted for oven...

og linket kan du sætte hvor du vil...
Avatar billede htx98i17 Professor
22. april 2001 - 19:37 #12
og self. skal det indsættes efter din connection til din db...
Avatar billede gizmo-gizmo Nybegynder
22. april 2001 - 19:38 #13
ja, det er sel´fø rigtigt nok....
<?
//connect her!
$query = mysql_query(\"select gruppe from $bruger group by gruppe\");
while($row = mysql_fetch_array($query))
{
echo \"$row[indlaeg]<a href=\\\"admin.php?id=$row[id]\\\">slet indlæg</a><br><br>\";
}

?>

<?
mysql_query(\"DELETE FROM indlaeg WHERE id = \'$id\' \");
?>
Avatar billede kirsten Nybegynder
22. april 2001 - 19:38 #14
Lige et lille tillægs spm! :)
Hvordan skal linket se ud i en echo sætning?
Avatar billede htx98i17 Professor
22. april 2001 - 19:41 #15
printf(\"<a href=\\\"slet.php?sletid=<? echo$id; ?>\\\" >Slet</a>\");

lav den med printf() i stdet for...

Avatar billede htx98i17 Professor
22. april 2001 - 19:42 #16
aarrgg  undskyld:

printf(\"<a href=\\\"slet.php?sletid=$id\\\" >Slet</a>\");
Avatar billede kirsten Nybegynder
22. april 2001 - 19:45 #17
Det funker ikke helt!
I linket skriver den slet.php?sletid=<? echo$id; ?> istedet for at udskrive id\'t
Avatar billede htx98i17 Professor
22. april 2001 - 19:46 #18
brug mit sidste eksempel
Avatar billede kirsten Nybegynder
22. april 2001 - 19:47 #19
hmm, nu skriver den ingen efter =  ????
Avatar billede gizmo-gizmo Nybegynder
22. april 2001 - 19:48 #20
prøv så mit....
Avatar billede htx98i17 Professor
22. april 2001 - 19:48 #21
du skal sørge for at $id har en værdi

$id = $din__query[id];

?
Avatar billede kirsten Nybegynder
22. april 2001 - 19:53 #22
Jeg valgte at bruge htx98i17  ekspempel da det var mere overskueligt!

Takker for hjælpen :)
Avatar billede gizmo-gizmo Nybegynder
22. april 2001 - 19:54 #23
hmm...mit var bare det komplette
Avatar billede kirsten Nybegynder
22. april 2001 - 19:57 #24
Ja men jeg syntes at hans var nemmere at bruge...!
Men hvis du er ked, kan jeg da godt smide 15 point af til dig! ;)
Avatar billede gizmo-gizmo Nybegynder
22. april 2001 - 20:05 #25
nej, det er ligemeget. behøver du ikke.
Avatar billede kirsten Nybegynder
22. april 2001 - 20:07 #26
Ok. :)
Avatar billede kirsten Nybegynder
22. april 2001 - 20:45 #27
Det virker ikke hel på samme måde på serveren som lokalt! Når jeg vil slette så tror den at slet?id=1 et en side der ikke findes! Kan man ikke lave noget i stil med: if slet = slet print<\"slettet\">?
Jeg ved det er helt hen i vejret med det kodningen men, sådan er det når man ikke er mester i php! :)
Avatar billede htx98i17 Professor
22. april 2001 - 20:49 #28
du skal jo skrive slet.php?osv...
ellers ved den ikke hvilken fil den skal hente...

if(isset($sletid)) {
Print\"id nr. $sletid er slettet\";
}
Avatar billede gizmo-gizmo Nybegynder
22. april 2001 - 20:49 #29
--> kirsten
det er ligemeget om man ikke kan lave koderne, når man kan forstå scriptene.

det skal altså ikke være:
slet?id=1
men
slet.php?id=1
Avatar billede kirsten Nybegynder
22. april 2001 - 20:50 #30
I know jeg var bare lige lidt for hurtig! :)
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
Computerworld tilbyder specialiserede kurser i database-management

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