Avatar billede komet Nybegynder
03. februar 2005 - 09:36 Der er 6 kommentarer og
1 løsning

Slette brugere i SQL database, igennem PHP variabel

Hej

Jeg er ved og lave login system i PHP, som bruger en MySQL database. Så er jeg ved og lave sådan man kan slette brugere fra databsen

Jeg har taget et screen shot af hvordan siden ser ud nu. Hvordan kan jeg lave sådan at brugerne bliver slettet når man klikker på dem. Altså man kan køre ned af i tabellen og finde den man gerne vil slette og så klikke på ham. Og så forsvinder han fra databasen. Og så kunne det nok også være en fordel hvis navnene stod i alfabetisk rækkefølge. Er dette muligt og lave???

Linket til det screen shot

http://home19.inet.tele.dk/piske/diverse/bruger.jpg

Og her er min PHP kode

<?php
//Den første er en usynlig tabel, som bare giver overskriften til den tabel hvor dataerne står i
//Connecter til MySQL databasen
mysql_connect ("localhost", "root", "kommet");
mysql_select_db ("skp");
echo "<h1><div align=center>Slet Bruger</div></h1>";
echo "<br>";
echo "<TABLE border=0 width=75% align=center>";
echo "<TR>";
echo    "<TD width=49%>";
echo        "<div align=center><font size=5>Navn</div></font>";
echo    "</TD>";
echo    "<TD width=26%>";
echo        "<div align=center><font size=5>Fødselsdag</div></font>";
echo    "</TD>";
echo    "<TD width=30%>";
echo        "<div align=center><font size=5>Password</div></font>";
echo    "</TD>";
echo "</TR>";

//Laver en forspørgsel til tabellen skp, og hiver så alle dataerne ud i et array der hedder $result
$result = mysql_query("select * from skp");
//Så bliver array'et lavet om til variabler der hedder $navne og $fødselsdag, dette bliver gjort automatisk af PHP
while ($row = mysql_fetch_array($result)) {
  extract($row);
//Så bliver de tabeller lavet, hvor dataen skal stå i. Og de bliver sat ind ved hjælp af variablerne
echo "<TABLE border=1 width=75% align=center>";
echo "<TR>";
echo    "<TD width=40%><div align=center>$Navne</div></TD>";
echo    "<TD width=20%><div align=center>$Fødselsdag</div></TD>";
echo    "<TD width=20%><div align=center>$Kort</div></TD>";
echo "</TR>";
echo "</TABLE>";
}
?>
<!--Laver bare et link tilbage til admin.php-->
<p>
<a href="admin.php"><div align=center>Tilbage</a></div>
Avatar billede mortenkjeldberg Nybegynder
03. februar 2005 - 10:47 #1
Hej

Lige den lille del af det først. For at få navnene ud i alfabetisk orden skal du ændre din query "select * from skp" til at være "select * from skp order by Navne".

For at kunne slette de enkelte brugere ved et klik skal ville jeg indsætte et <a href> til et deletescript på hver af rækkerne i tabellen.
Dvs. inden <tr> indsætter du echo '<a href="delete.php?usertodel=' .$Navne .'"> og efter </tr> indsætter du </a>.
Så skal du lave scriptet delete.php som skal læse $_GET['usertodel'] og slette den i db.
Jeg er med denne løsning gået ud fra at Navne er det unikke felt i din tabel.

/Mort3n
Avatar billede komet Nybegynder
03. februar 2005 - 11:59 #2
Den kommer videre når jeg trykker på et navn, men jeg får en fejl fra delete.php. Kan du se hva jeg har lavet forkert???

<?php
//Connecter til MySQL databasen
mysql_connect ("localhost", "root", "kommet");
mysql_select_db ("skp");
$_GET['usertodel']
$Update_SQL = "DELETE from skp where Navne='$_GET[usertodel]'";
mysql_query ($Update_SQL);
?>
Avatar billede fojensen Nybegynder
03. februar 2005 - 12:28 #3
nu skriver du ikke hilken fejl du får, men jeg gætter mig frem i første omgang...

tror du skal ændre til:
$Update_SQL = "DELETE from skp where Navne=$_GET[usertodel]";

ellers prøv med:
$usertodel = $_GET['usertodel'];
og
$Update_SQL = "DELETE from skp where Navne='$usertodel'";

mvh. Folmer
Avatar billede komet Nybegynder
03. februar 2005 - 12:49 #4
Nu skriver den ikke fejl længere, men den sletter heller ikke noget.

Min kode ser sådan ud pt.

<?php
//Connecter til MySQL databasen
mysql_connect ("localhost", "root", "kommet");
mysql_select_db ("skp");
$usertodel = $_GET['usertodel'];
$Update_SQL = "DELETE from skp where Navne=$_GET[usertodel]";
mysql_query ($Update_SQL);
echo "<a href=_bruger.php><div align=center>Tilbage</div></a>";
?>

Min db indeholder Navne, Fødselsdag, Password og Kort. Altså den skulle jo gerne slette en bruger når man klikkede på ham. Altså hvis man valgte en bruger skulle den gerne slette alle data, både Navne, Fødselsdag, Password og Kort
Avatar billede mortenkjeldberg Nybegynder
03. februar 2005 - 12:51 #5
Hej
Ja som Folmer skriver tilgår du værdier i $_GET med en streng som nøgle. Det betyder at skal skrive $_GET ['usertodel'].
Hvis det ikke er det så send post lige fejlen.

/Mort3n
Avatar billede mortenkjeldberg Nybegynder
03. februar 2005 - 12:53 #6
OK har du gåsetegnene med? (Det foran delete.php og det foran den sidste >)

<a href="delete.php?usertodel=' .$Navne .'">

Prøv evt. at skrive $GET_['usertodel'] ud

/Mort3n
Avatar billede mortenkjeldberg Nybegynder
08. februar 2005 - 16:06 #7
Kunne det bruges?
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