Avatar billede stroke1 Nybegynder
24. juli 2003 - 11:17 Der er 14 kommentarer og
1 løsning

det sletter kun den første post

Jeg har to php filer, hvor den første læser data fra en database og sætter en checkbox ud for hver enkelt post, så det er muligt at slette den/de valgte poster i databasen.

Den anden php fil slette så den/de valgte poster i databasen.

MEN det der sker,er at jeg kun kan slette den først indlæste post. Markerer jeg nogle af de andre, sker der ikke noget.

Jeg har prøvet at udskrive arrayet " del_me " som skulle indeholde alle de slettede poster, men den udskriver kun den første post, hvis den selvfølgelig er valgt til at blive slettet.

Håber der er en der kan hjælpe mig....
Her er de to filer :

FIL NR. 1  -


<?
ob_start();
require("sidehoved.html");
session_start();
$valid_user = $HTTP_SESSION_VARS['valid_user'];
?>


<form name=bm_table action="http://127.0.0.1/tilen/slet_post1.php" method=post>
<input type="Submit" name="submit" value="Delete">

<?php

// Indstillinger
$offset = (isset($_GET[offset])) ? $_GET[offset] : 0; // Hvis ikke offset er sat, sættes den til 0
$pr_side = 5; // Antal resultater pr. side


$conn = mysql_connect("localhost","root") or die(mysql_error());
mysql_select_db("tilen) or die(mysql_error());

$query = mysql_query("SELECT * FROM indsaet_post WHERE userid='$valid_user' ORDER BY id DESC LIMIT $offset,$pr_side");

while ($row = mysql_fetch_assoc($query)) {

echo "
<br><br>

<table class='tekstafsnit' width='100%' border='0' cellspacing='0' cellpadding='0'>

<tr>
  <td><center>Indrykket: $row[dato]</center></td>
</tr>

<tr>
<td><center><b>brugernavn: $row[userid]</b></center></td> 
</tr>



<input type='checkbox' name='del_me[]' value='$row[dato]'>


</table>
</form>
</center>

";

}

?>

<?php
$antal = mysql_result(mysql_query('SELECT COUNT(*) FROM indsaet_post'),0); // Tæller antal poster i tabellen "tabel" (husk at ændre til den tabel du bruger)

if ($offset >= $pr_side) { // Tester om det er nødvendigt med et "forrige-link"
$forrige = $offset-$pr_side; // Finder ud af hvor forrige skal starte fra
echo "<center><a href='?offset=$forrige'>Forrige</a></center> "; // Udskriver link
}
if ($antal > $offset+$pr_side) { // Tester om det er nødvendigt med et "næste-link"
$naeste = $offset+$pr_side; // Finder ud af hvor næste skal starte fra
echo "<center><a href='?offset=$naeste'>Næste</a></center>"; // Udskriver link
}



?>


<?
require ("sidefod.html");
ob_end_flush();
?>


FIL NR. 2 -


<?
ob_start();
require("sidehoved.html");
session_start();

$del_me = $HTTP_POST_VARS['del_me'];
echo "$del_me[0]";
echo "$del_me[1]";
exit;
$valid_user = $HTTP_SESSION_VARS['valid_user'];


$connection = mysql_pconnect("localhost","root");
mysql_select_db("tilen");
if (empty($HTTP_POST_VARS))
{
    echo 'Du har ikke valgt at slette en post.';
    exit;
} else {
  if (count ($del_me) >0)
  {
      foreach ($del_me as $row[dato])
      {
        mysql_query("delete from indsaet_post where dato = '$row[dato]'") or die(mysql_error());
      }
  } else {
      echo ' Du har ikke valgt at slette nogen post';
  }
}

require ("sidefod.html");
ob_end_flush();
?>
Avatar billede stroke1 Nybegynder
24. juli 2003 - 11:24 #1
ingen hurtige skud :)
Avatar billede stroke1 Nybegynder
24. juli 2003 - 11:35 #2
den får kun $del_me[0] med over i fil nr. 2, selvom jeg vælger at 2 poster skal slettes ??
Avatar billede repox Seniormester
24. juli 2003 - 11:38 #3
prøv at udskifte disse linier:

$i = 0;
while ($row = mysql_fetch_assoc($query)) {

echo "
<br><br>

<table class='tekstafsnit' width='100%' border='0' cellspacing='0' cellpadding='0'>

<tr>
  <td><center>Indrykket: $row[dato]</center></td>
</tr>

<tr>
<td><center><b>brugernavn: $row[userid]</b></center></td> 
</tr>



<input type='checkbox' name='del_me[$i]' value='$row[dato]'>


</table>
</form>
</center>

";
$i++;

}

og ret det her:

foreach ($del_me as $value)
      {
        mysql_query("delete from indsaet_post where id='$value'") or die(mysql_error());
      }


måske ?
Avatar billede stroke1 Nybegynder
24. juli 2003 - 11:42 #4
prøver lige....
Avatar billede stroke1 Nybegynder
24. juli 2003 - 11:52 #5
har prøvet at rette det øverste med $i, men den skriver stadig kun den første post ud nemlig $del_me[0] :'

del_me = $HTTP_POST_VARS['del_me'];
echo "$del_me[0]";
echo "$del_me[1]";


hmmmmm...
Avatar billede stroke1 Nybegynder
24. juli 2003 - 11:53 #6
kan det være den her der er noget galt med :

$del_me = $HTTP_POST_VARS['del_me'];
Avatar billede erikjacobsen Ekspert
24. juli 2003 - 11:56 #7
Dit oprindelige eksempel bør virke. Jeg har lavet denne test:
http://www.ek0.com/~ej/delme.php
der indeholder:

<?

  print_r($_GET['del_me']);

?>

<html>
<body>

<form>

<input type="checkbox" name="del_me[]" value="a"><br>
<input type="checkbox" name="del_me[]" value="b"><br>
<input type="checkbox" name="del_me[]" value="c"><br>
<input type="checkbox" name="del_me[]" value="d"><br>
<input type="checkbox" name="del_me[]" value="e"><br>

<input type="submit">
</form>

</body>
</html>

Er det ikke ca det du vil opnå?
Avatar billede stroke1 Nybegynder
24. juli 2003 - 12:00 #8
jo men jeg kan bare ikke forstå hvorfor kun den første post kan slettes. der kommer ikke nogen værdi i del_me[1], del_me[2] osv..
Avatar billede erikjacobsen Ekspert
24. juli 2003 - 12:09 #9
Det kan jeg heller ikke gennemskue - men der er ingen
grund til at proppe indexer på ($i) - det skal virke uden.
(Og måske også med - problemet er bare et andet sted)
Avatar billede stroke1 Nybegynder
24. juli 2003 - 12:13 #10
ingen der har et foreslag :)
Avatar billede stroke1 Nybegynder
24. juli 2003 - 12:23 #11
jeg er villig til at give flere point, hvis det kan hjælpe :)
Avatar billede erikjacobsen Ekspert
24. juli 2003 - 12:30 #12
det er fordi du afslutter din form for mange gange *g*
Avatar billede stroke1 Nybegynder
24. juli 2003 - 12:33 #13
okay, det lyder sku godt hvis du har forklaringen, men hvordan skal det så se ud ;)
Avatar billede stroke1 Nybegynder
24. juli 2003 - 12:46 #14
tror det virker nu.
Det er rigtigt at form skulle ud af while sætningen.
Burde den så ikke have sendt den variabel med det største index, istedet for den med det mindste ??
Avatar billede erikjacobsen Ekspert
24. juli 2003 - 12:54 #15
Nix - den sender den første. Resten har jo intet med din
form at gøre.
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

IT-JOB

Politiets Efterretningstjeneste

DevOps engineer til dataanalyse i PET

HusCompagniet A/S

Senior data engineer

Capgemini Danmark A/S

Client Partner

Scan Global Logistics

PMO Project Manager

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Analytiker til Security Operations Center ved Cyberdivisionen