PHP, radera från databas
Jag har gjort en gästbok som nästan fungerar perfekt.
Men nu vill jag kunna radera inlägg också. Gjort en inloggning och får fram en chekbox vid varje inlägg och en radderingsknapp.
Men där kommer problemet.
Kryssar jag i fler rutor får jag ändå bara svar från sista inlägget om de är ikryssat.. Kryssar jag inte i sista inlägget utom massa (en) andra händer inget...
Gjort en print_r på $_POST['my_number'] och den visar: Array ( [0] => 7 )
med foreach slinga får jag bara ut 7 (sista inläggets nr) hur många ja en kryssar. kryssar ja annat en sista får ja inget..
Tror att något är fel på kryssrutorna.. Tips?
Ursäkta mycket kod. Bara start av sidan över, å slut av sidan under som saknas..
<?php
include ("databas.php");
//öppnar databasen
$open = mysql_connect( $dbhost, $dbroot, $dbpassword ) or die("SQL: $sql <br/>".mysql_error());
mysql_select_db( $databas, $open ) or die("SQL: $sql <br/>".mysql_error());
//Öppnad
// läser från medelanden
$data = mysql_query( "SELECT * FROM $dbgest");
while($rad = mysql_fetch_array ($data))
{
$n = ($rad["nr"]);
$n++;
}
if (empty($n)){
$n=1;
}
//logga in
if( isset($_POST['skicka']) ){
if(($_POST['url'])== $passwordname){
$passwords = $password1;
}
if((($_POST['url'])== $passwordname) and (($_POST['pass'])== $password)){
$ratt = $inloggad;
}
else{
//Glömt att skriva något
if((trim($_POST['namn'])=="") || (trim($_POST['meddelande'])==""))
{
$fel = "<table class='fel'><tr><td class='fel1'>Lite mer tack.. <br>Skriv ditt namn och ett meddelande!</tr></td></table>";
}
//alla obligatoriska fält är ifyllda, så spara
else {
$dbinfo = mysql_query ("INSERT INTO gastbok (tid, nr, namn, meddelande, Email, url) VALUES ( NOW(), $n, '$_POST[namn]', '$_POST[meddelande]', '$_POST[Email]', '$_POST[url]')") or die(mysql_error());
$_POST = "";
}
}
}
//Formuläret
echo "<table><tr><td><form method='post' action='" . $_SERVER['PHP_SELF'] . "?p=" . $_GET['p'] . "'>";
echo "Namn:</br><input type='text' name='namn' value='" . $_POST['namn'] . "'></td>";
echo "<td>E-mail:</br><input type='text' name='Email' value='" . $_POST['Email'] . "'></td></tr><tr>";
echo "<td>Url:</br><input type='text' name='url' value='" . $_POST['url'] . "'><td>";
//Visar lösenords fält.
if($passwords == $password1){
echo "Lösen:</br> <input type='password' name='pass' value='" . $_POST['pass'] . "'></br></td></tr><tr>";
$fel = "";
}
else{
echo "</br></td></tr><tr>";
}
echo "<td colspan=2>Medelande:</br><textarea name='meddelande' cols= 35 rows=6 value='" . $_POST['meddelande'] . "'></textarea></br>";
echo "<center><input type='submit' value='skicka' name='skicka'></center></td></tr></table></form>";
echo $fel;
//Här börjar problemet.. tar bara bort det sista inlägget även fast jag kryssar för fler..
//Tar bort inlägg
if( isset($_POST['radera'])){
$user = $_POST['my_number'];
foreach ($user as $nr)
$sql = "DELETE FROM $dbgest WHERE nr = '" . $nr . "'";
$result = mysql_query($sql);
$synlig = "H5BBi";
}
//Är du inloggad kommer det här fram
if (($ratt == $inloggad) or ($synlig == "H5BBi")) {
echo "<form method='post'>";
// för att få radera knappen att va kvar
$_POST = "";
//ta bort
echo "<input type='submit' value='radera' name='radera'>";
}
// läser från medelanden
echo "<table class='tabbel'><tr><td>";
$data = mysql_query( "SELECT * FROM $dbgest ORDER BY nr DESC");
while($rad = mysql_fetch_array ($data))
{
//tiden
echo "<hr noshade><table class='meddelanden'><tr class='farg'><td class='date'>" . ($rad["tid"]) . "</td><td class='nr'>";
//Här tror jag att boven är, men förstår inte felet..
//Kryssruta för att ta bort meddelanden.. (FEL)??????
if (($ratt == $inloggad) or ($synlig == "H5BBi")){
echo "<font class='radera'>Radera:
<input type='checkbox' name='my_number[]' value='" . $rad['nr'] . "'>";
}
//nr:
echo "#" . ($rad["nr"]) . "</td></tr>";
if (($ratt == $inloggad) or ($synlig == "H5BBi")){
echo "</form>";
}
//Namnet, länkat till mail. Om de finns
if (!empty($rad['Email'])){
echo "<tr><td class='namn'><a href=mailto:" . ($rad["Email"]) . ">" . ($rad["namn"]) . "</a></br>";
}
else{
echo "<tr><td class='namn'>" . ($rad["namn"]) . "</br>";
}
// webadress gjort till länk
if (!empty($rad['url'])){
echo "<a href=" . ($rad["url"]) . "target='_blank' title='" . ($rad["url"]) . "' target='_blank'>Hemsida</a><br></td>";
}
else {
echo "</td>";
}
//Medelandet
echo "<td class='med'>" . nl2br ($rad["meddelande"]) . "</td>";
echo "</tr></table></br>";
}
//slutläst
echo "</tr></table></br>";
//stänger databas
mysql_close($open);
?>