Проблем с foreach...

SLADE

Registered
Здравейте. Имам гаден проблем с foreach.

Проблема става при натискане на бутона:
Код:
<input type="submit" class="btn" name="deletesp" value="."/>
без маркиране на отметка...

Warning: Invalid argunemt supplied for foreach() in - реда който започва със foreach.


Ето Ви кода:
Код:
<?
if(!$_SESSION['username']) { header("Location: login.php?error=2"); }
if($_POST['deletesp']) {
foreach($_POST['selectid'] AS $k=>$v) {
$sql = mysql_query("DELETE FROM spomeni WHERE id='$v'");
}
}
?>

Ако може да помогнете ще съм Ви безкрайно балгодарен, защото с един приятел се измъчихме и неможе да го оправим.
Благодаря Ви предварително!
 
Я пробвай

Код:
<?php
if(!$_SESSION['username']) { header("Location: login.php?error=2"); }
if(isset($_POST['deletesp'])) {
$teletesp = $_POST['deletesp'];
foreach($teletesp AS $k=>$v) {
$sql = mysql_query("DELETE FROM spomeni WHERE id='$v'");
}
}
?>
 
Пробвай така ще стане

<?
if(!$_SESSION['username']) { header("Location: login.php?error=2"); }
if($_POST['deletesp']) {
if(count($_POST['deletesp']) > 0){
foreach($_POST['selectid'] AS $k=>$v) {
$sql = mysql_query("DELETE FROM spomeni WHERE id='$v'");
}
}
}
?>

Тъй като очакваш резултата от post заявката да е масив проверяваш дали не е празен и ако не е празен продължаваш.
Просто добави това с червеното и си готов и съответно скобите към него де :)
 
PHPclown, d3xter пак не става.
Искам да поясня, че попримцип функцията си работи, но когато не си маркирал и натиснеш бутона дава тази грешка.

emagi няма HTML само бутон е.
Ето в този код има HTML, но незнам дали е от тук проблема.

Код:
<?
$user = $_SESSION['username'];
$query = mysql_query("SELECT * FROM spomeni WHERE user='$user' ORDER BY id DESC");
$i = 0;
if(mysql_num_rows($query)>0)
{
while($results = mysql_fetch_assoc($query))
{
   if($i%1 == 0)
   echo "</tr><tr>";
   echo "\n<td align='left'><input name='selectid[]' value='$results[id]' type='checkbox'></td>\n";
   echo "\n<td align='left' width='100%'>$results[spomen]</td>\n";
   
   $i++;
}
echo '</tr></table>';
}
else
{
?>
 
Извинявам се грешката е била в мен- объркал съм атрибутите на $_POST-a

Грешката ми беше,че вместо count($_POST['selectid'], бях сложил
count($_POST['deletesp']

Пробвай така:

<?
if(!$_SESSION['username']) { header("Location: login.php?error=2"); }
if($_POST['deletesp']) {
if(count($_POST['selectid']) > 0){
foreach($_POST['selectid'] AS $k=>$v) {
$sql = mysql_query("DELETE FROM spomeni WHERE id='$v'");
}
}
}
?>


Сега вече не би трябвало да имаш проблеми.
Реално проблема ти е, че ти очакваш масив, който го няма, а с този ред отгоре проверява дали е създаден масива и дали има нещо в него
 

Back
Горе