Hallo allemaal,

Ik had een verwijder script gemaakt, alles werkte, je kan de berichten selecteren. Dan druk je op de knop verwijderen. Hij zegt vervolgens dat ze succesvol verwijdert zijn. Ga je naar de pagina waar de berichten staan, blijken ze nog niet verwijdert te zijn..

Hier het script:

<?

if($_GET['JJ'] == "Ja")   
 {   
  for($T = 0; $T < count($_POST['id']); $T++) 
  { 
     //delete query met $_POST['id'][$T];   
       
     $query = "DELETE FROM sigchat WHERE id='".$_POST['id'][$T]."'";     
     mysql_query($query) or die (mysql_error());    
  } 
echo "Berichten succesvol verwijdert, u wordt over 5 sec. doorgestuurd. <META HTTP-EQUIV='refresh' CONTENT='5; URL=Adminpaneel.php?actie=Verwijderen'> ";  
 }    
 else{

$db_link = mysql_connect('localhost', 'thomaz', '208852487');  
mysql_select_db('thomaz', $db_link);  
$query = "SELECT * FROM sigchat";  
$result = mysql_query($query);  
$num_rows = mysql_num_rows($result);  
// max resulaten op 1 pagina  
$max_on_page = 100;  
// laat hoeveel pagina nummers ervoor en erachter zien  
$viewpage = 1;  
$num_pages = ceil($num_rows / $max_on_page);  
$page = $_GET['page'];  
//als de pagina niet is opgegeven page wordt 1, verander pagina.php  
if (!isset($_GET["page"])) {  
    $page = 1;  
    header("location: Adminpaneel.php?actie=Verwijderen&page=1");  
}  
// we willen geen negative pagina's  
$begin = $page - $viewpage;  
if ($begin < 1) {  
    $begin = 1;  
}  
// ook niet teveel  
$end = $page + $viewpage;  
if ($end > $num_pages) {  
    $end = $num_pages;  
}  
$vorige = $page - 1;  
$volgende = $page + 1;  
### vanaf hier wordt de navigatie weergegeven ###  

echo '<BR><div align="right">'; 
if ($begin > 1) {  
    echo '<a href="Adminpaneel.php?actie=Bewerken&page=1" title="Eerste pagina">&laquo; </a>  <a href="Adminpaneel.php?actie=Verwijderen&page='.$vorige.'" title="Vorige Pagina">&lt;</a> ';  
}  
for ($i = $begin; $i <= $end; $i++) {  
    if ($i == $page) {  
            echo '<b>['.$page.'] </b>';  
    }  
    else {  
            echo '<a href="Adminpaneel.php?actie=Verwijderen&page='.$i.'">'.$i.' </a> ';  
    }  
}  
if ($end < $num_pages) {  
    echo '<a href="Adminpaneel.php?actie=Verwijderen&page='.$volgende.'" title="Volgende Pagina">&gt;</a>  <a href="Adminpaneel.php?actie=Verwijderen&page='.$num_pages.'" title="Laatste Pagina"> &raquo;</a>';  
} 
echo '</div><BR>';  

$start = $max_on_page * $page - $max_on_page;  
$Rquery = "SELECT * FROM sigchat ORDER BY id DESC LIMIT ".$start.", ".$max_on_page."";   
$Rresult=mysql_query($Rquery) or die (mysql_error());   
while ($sql = mysql_fetch_assoc($Rresult)) {   

$id = $sql['id']; 
$naam = $sql['naam'];   
$naam = htmlspecialchars ($naam);   
$bericht = $sql['bericht'];   
$bericht = htmlspecialchars ($bericht);     
$bericht = stripslashes($bericht);    
$bericht = nl2br($bericht);   

echo '<form type="checkbox" action="Adminpaneel.php?actie=Verwijderen&JJ=Ja" method="post">';
if ($sql['status'] == Webmaster){ 
echo '<table width="100%" border="0" cellspacing="0" cellpadding="0"> 
<tr> 
<th width=20% scope="col"><font color="#FFFFFF"><div align="left" class="Tekst"><input type="checkbox" name="id" value="';
echo $id;
echo '" />';  
echo $naam;  
echo '</font> 
</div></th> 
 <th scope="col"><div align="left" class="Tekst">'; 
echo $bericht;  
echo '</div></th> 
</tr> 
</table>'; 
}  
elseif ($sql['status'] == Admin){ 
echo ' <table width="100%" border="0" cellspacing="0" cellpadding="0"> 
<tr>'; 
echo '<th width=20% scope="col"><font color="#FFFF00"><div align="left" class="Tekst"><input type="checkbox" name="id" value="'.$id.'" />'; 
echo $naam; 
echo '</font>'; 
echo '</div></th> 
 <th scope="col"><div align="left" class="Tekst">'; 
echo $bericht;  
echo '</div></th> 
</tr> 
</table> '; 
} 
else{ 
echo ' <table width="100%" border="0" cellspacing="0" cellpadding="0"> 
   <tr><th width=20% scope="col"><div align="left" class="Tekst"><input type="checkbox" name="id" value="'.$id.'" />'; 
echo $naam; 
echo '</div></th> 
 <th scope="col"><div align="left" class="Tekst">';
echo $bericht;  
echo '</div></th> 
   </tr> 
 </table> '; 
}  

} 
echo '<BR><input type="submit" value="Met geselecteerd verwijderen"><div align="right">'; 
if ($begin > 1) {  
echo '<a href="Adminpaneel.php?actie=Verwijderen&page=1" title="Eerste pagina">&laquo; </a>  <a href="Adminpaneel.php?actie=Verwijderen&page='.$vorige.'" title="Vorige Pagina">&lt;</a> ';  
}  
for ($i = $begin; $i <= $end; $i++) {  
if ($i == $page) {  
		echo '<b>['.$page.'] </b>';  
}  
else {  
		echo '<a href="Adminpaneel.php?actie=Verwijderen&page='.$i.'">'.$i.' </a> ';  
}  
}  
if ($end < $num_pages) {  
echo '<a href="Adminpaneel.php?actie=Verwijderen&page='.$volgende.'" title="Volgende Pagina">&gt;</a>  <a href="Adminpaneel.php?actie=Verwijderen&page='.$num_pages.'" title="Laatste Pagina"> &raquo;</a>';  
} 
echo '</div>'; 
}
?>


mvg. Thomas
1: Gebruik geen shorttags
2: gebruik: error_reporting(E_ALL);
3: Geeft de pagina errors ofzo?

GR. mebus
Notice: Undefined index: JJ in /usr/export/www/hosting/thomazopslag/VVerwijderen.php on line 5



[1] 2 > »



Notice: Use of undefined constant Webmaster - assumed 'Webmaster' in /usr/export/www/hosting/thomazopslag/VVerwijderen.php on line 79

dat zegt die de hele tijd..

En als ik op verwijderen klik, dan geeft die geen errors..

En wat zijn trouwens shorttags?
<? is een shorttag, welke ook word gebruikt met XML(als ik het goed heb)... Gebruik gewoon <?php en je hoeft het niet aan te passen als een server het niet ondersteund;)
Onzin
sorry voor de regel in de db
Sorry, maar ik ben nu nog niks wijzer..
Zit er wel wat in $_POST['id']?
Zet bovenaan eens 'print_r($_POST['id']);'

$query = "DELETE FROM sigchat WHERE id='".$_POST['id'][$T]."'";     
mysql_query($query) or die (mysql_error());

Ziet er verder goed uit, alleen als id een nummer is zou ik die quotes weghalen ;)
Die zijn nergens voor nodig.

Verder kun je de input beter ook even checken, bijv. met is_numeric.
Hoe zet je dit: 'print_r($_POST['id']);'
boven aan de pagina, waar ergens? En moet dat in een echo? Namelijk nog nooit van gehoord:$
Helemaal bovenaan:
<?php
if ($_SERVER['REQURST_METHOD'] == 'POST') {
echo '<pre>';
print_r ($_POST);
echo '<pre>';
}
?>
Zo krijg je de inhoud van de POST array te zien, ter controle of hij wel gevuld is.
Dit staat er als ik 5 berichten selecteer, ze hebben allemaal een id in de 300

Array
(
[id] => 374
)
Het slimste bij dit soort scripts, is om zo te werk te gaan:

1) Geef je checkboxen een array-naam, dus eentje die op [] eindigt, bijvoorbeeld name="delete[]"
2) Geef ze allemaal een andere value

Na verzenden van zo'n formulier krijg je alle aangevinkte checkboxen terug in $_POST['delete']. Je kunt dan met:
<?php
foreach ($_POST['delete'] as $value) {
// gebruik $value om je delete-query te maken en uit te voeren
}
?>

Reageren