el_scorcho Skrevet 29. april 2009 Del Skrevet 29. april 2009 (endret) Hei Har fått utrolig bra hjelp her tidligere, spør derfor om et par ting til. Skal lage en side som skal slette visse bestemte rader i en database, dette ved først å hente dem ut, så skal de merkes vha en checkbox, så slettes ved et trykk på knappen. Dette er koden jeg har for å hente ut radene fra db (Dette virker forøvrig): <?php while ($row = mysql_fetch_array($sql, MYSQL_BOTH)) { // gir navn til variablene $medlemsnr = $row['medlemsnr']; $fornavn = $row['fornavn']; $etternavn = $row['etternavn']; // $melding = $row['melding']; // $epost = $row['epost']; //build formatted results //echo "Medlemsnummer = $medlemsnr <br> Navn = $fornavn   $etternavn, <br>"; ?> <form method="post" action="delete.php"> <br><b>Medlemsnr:</b><br> <i><?php echo "$medlemsnr"; ?></i><br> <b>Navn:</b><br> <i><?php print( "$fornavn"); ?></i> <i><?php print ( "$etternavn"); ?> <input type="checkbox" name="delete" id="checkbox[]" value="<?php echo "$medlemsnr";?>"> <?php } ?> <br>----------------------------------------- </i><br> <input type="submit" value="Slett" > </form> Her er delete.php: <?php if (is_array("$checkbox")) foreach ("$checkbox" as "$s") { echo "$s"; // $sql_query = mysql_query("DELETE FROM xxx WHERE medlemsnr is ("$s")"); } ?> Mine spm er så: Vil checkboxen få value medlemsnummer fra databasen? Hvordan skal delete.php se ut for å få tak i hvilke poster som skal slettes? Sql'n klarer jeg, men ikke hente valuen til arrayet checkbox. på forhånd takk for svar. (Var muligens litt innviklede spm dette, men jeg kan prøve å forklare litt nærmere hvis det trengs Endret 29. april 2009 av el_scorcho Lenke til kommentar
Garanti Skrevet 29. april 2009 Del Skrevet 29. april 2009 "Vil checkboxen få value medlemsnumer fra databasen?" Uten at jeg har testet koden ser det slik ut ja. Du finner dette raskt ut dersom du sjekker kildekoden til den første filen i en nettleser. For å kunne slette brukere bør du endre litt på oppsettet for checkboxene: <input type="checkbox" name="delete[<?php echo "$medlemsnr";?>]" id="checkbox[]" value="1"> Når du sender inn dataene vil alle brukerene komme i et array tilgjengelig i $_POST['delete'], for en tenkt bruker med bruker-id 7 vil du se om vedkommende skal slettes dersom $_POST['delete']['7'] == 1. Kun brukerene du har krysset av for sletting vil "få med seg" det som står i value. Når du skal ha ut denne informasjonen kjører du ganske enkelt foreach(), som du tydeligvis har forstått selv Tungvindt å forklare, spør om du lurer på noe Lenke til kommentar
el_scorcho Skrevet 29. april 2009 Forfatter Del Skrevet 29. april 2009 "Vil checkboxen få value medlemsnumer fra databasen?" Uten at jeg har testet koden ser det slik ut ja. Du finner dette raskt ut dersom du sjekker kildekoden til den første filen i en nettleser. For å kunne slette brukere bør du endre litt på oppsettet for checkboxene: <input type="checkbox" name="delete[<?php echo "$medlemsnr";?>]" id="checkbox[]" value="1"> Når du sender inn dataene vil alle brukerene komme i et array tilgjengelig i $_POST['delete'], for en tenkt bruker med bruker-id 7 vil du se om vedkommende skal slettes dersom $_POST['delete']['7'] == 1. Kun brukerene du har krysset av for sletting vil "få med seg" det som står i value. Når du skal ha ut denne informasjonen kjører du ganske enkelt foreach(), som du tydeligvis har forstått selv Tungvindt å forklare, spør om du lurer på noe Takk for svar. Mulig jeg må ha ting litt inn med teskje her men: Dette er da min kode..som tydeligvis ikke virker: <?php foreach ($_POST['delete'] as $s){ echo "$s"; } ?> Denne skriver ut "1" samme hva. Selv om medlemsnummer er 2. Hvordan kan denne filen delete.php se ut? Er altfor lenge siden jeg drev med dette, og jeg har googlet, men fant ikke noe som passet til min kode.. Igjen, takk for svar. Lenke til kommentar
Garanti Skrevet 29. april 2009 Del Skrevet 29. april 2009 Hehe, beklager, en stund siden jeg gjorde dette, og har ikke testet scriptet mitt selv. Endre til: <input type="checkbox" name="delete[]" id="checkbox[]" value="<?php echo "$medlemsnr";?>"> Lenke til kommentar
el_scorcho Skrevet 29. april 2009 Forfatter Del Skrevet 29. april 2009 (endret) Hehe, beklager, en stund siden jeg gjorde dette, og har ikke testet scriptet mitt selv. Endre til: <input type="checkbox" name="delete[]" id="checkbox[]" value="<?php echo "$medlemsnr";?>"> Supert, det gjorde susen.. MEN: Jeg var nok for rask når jeg sa at jeg klarte sql'n selv.. Dette er nå min delete.php <?php include ("conn.php"); foreach ($_POST['delete'] as $s){ //echo "$s"; $sql = "DELETE * FROM slekt WHERE medlemsnr is $s"; mysql_query($sql) or die("klarte ikke å slette fra tabellen!"); //header("Location: medlem.php"); //ob_end_flush(); echo "$sql"; } ?> Her er også conn.php som er koblingen mot databasen: <?php mysql_connect("xxx.xx", "xxx", "xxx") or die("Fikk ikke kontakt med databasen"); mysql_select_db("xxx") or die("Klarte ikke å velge databasen"); ?> Har skrevet ut $sql, og den ser veldig riktig ut, men allikevel får jeg "klarte ikke slette fra tabellen" Noen som ser hva som er feil? Igjen: På forhånd takk for svar. Endret 29. april 2009 av el_scorcho Lenke til kommentar
Garanti Skrevet 29. april 2009 Del Skrevet 29. april 2009 (endret) "DELETE * FROM slekt WHERE medlemsnr = $s" ? Altså, = i stedet for is. For alt jeg vet er is sidestillt med = i SQL, men det er ikke jeg kjent med Endret 29. april 2009 av Garanti Lenke til kommentar
el_scorcho Skrevet 29. april 2009 Forfatter Del Skrevet 29. april 2009 "DELETE * FROM slekt WHERE medlemsnr = $s" ? Altså, = i stedet for is. For alt jeg vet er is sidestillt med = i SQL, men det er ikke jeg kjent med Hmm, godt forslag, men det hjalp ikke...desverre.. Lenke til kommentar
Martin A. Skrevet 29. april 2009 Del Skrevet 29. april 2009 Bruk mysql_error() i die(), istede for feilmeldingen. Lenke til kommentar
el_scorcho Skrevet 29. april 2009 Forfatter Del Skrevet 29. april 2009 Bruk mysql_error() i die(), istede for feilmeldingen. Supert... Takker, da fant jeg ut hva som var feil. Takk Skal ikke ha * i delete-sql'en. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå