Проблем с код за премахване на резултат

Foxy

Registered
Проблема е следния - кода трие бан само ако е последния (няй-отгоре в таблицата), а ако е по-надолу не го трие, а изкрава, че не намира бан с ип-то:


Код:
$zaqvka = "SELECT * FROM $table";
       $izp = mysql_query($zaqvka);
        $row = mysql_fetch_assoc($izp);
    	if($row[$pole] == $ip)
        {
            echo "<b>Бана на играча с IP <font color='red'>$ip</font> беше премахнат!</b>";
            $sql = "DELETE FROM $table WHERE $pole='$ip' LIMIT $bans";
            mysql_query($sql) or die(mysql_error());
        }
        else
        {
            echo "<b>Не беше намерен бан на ip-то $ip</b>";
        }
 
Как се казва полето, в което записваш IP-то (каква е стойността на $pole и $bans)

ЕДИТ: Направо дай структурата на базата данни. :)
 
1 таблица за банове с няколко полета (има и id, но не ми трябва с id, тъй като хората не се знаят номера на бана) - player_ip; reason и такива. Дефакто ми трябва да премахвам по player_ip.
 
Пробвай така:
Код:
<?php

	$zaqvka = "SELECT * FROM $table";
       $izp = mysql_query($zaqvka);
        $row = mysql_fetch_assoc($izp);
       if($row['player_id'] == $ip)
        {
           $query =  mysql_query("DELETE FROM table WHERE player_id='$ip'") or die(mysql_error());
		   if ($query)
		   {
				echo 'Изтрихте бана успешно!';
		   }
        }
        else
        {
            echo "<b>Не беше намерен бан на ip-то $ip</b>";
        } 
?>
 
Код:
 <?php

   $zaqvka = mysql_query("SELECT * FROM $table") or die(mysql_error());
        $row = mysql_fetch_assoc($zaqvka);
       if($row['player_id']  ==  $ip) {
           $query =  mysql_query("DELETE FROM `table` WHERE `player_id`='$ip'") or die(mysql_error());
         if ($query) {
            echo 'Изтрихте бана успешно!';
         }
        }else{
            echo "<b>Не беше намерен бан на ip-то $ip</b>";
        }
?>
Това ми изглежда леко объркано. Това $ip е стойност на някакво поле нали така ? Ако е защо не провериш първо с mysql_num_rows дали ще върне 1 или повече и тогава да правиш заявката ?
 
Foxy каза:
$zaqvka = "SELECT * FROM $table";
$izp = mysql_query($zaqvka);
$row = mysql_fetch_assoc($izp); // заради самия селект, това ще върне последния резултат, демек скрипта сработва ако ип-то се намира последно в базата данни :-)
if($row[$pole] == $ip)
{
echo "<b>Бана на играча с IP <font color='red'>$ip</font> беше премахнат!</b>";
$sql = "DELETE FROM $table WHERE $pole='$ip' LIMIT $bans";
mysql_query($sql) or die(mysql_error());
}
else
{
echo "<b>Не беше намерен бан на ip-то $ip</b>";
}
това се прави с помощта на WHERE `player_ip` = '$ip'
Ако (както по-горе Dizasterr), mysql_num_rows() ти върне 1 - значи има такъв бан, и може да го изтриеш, пак с помощта на WHERE `player_ip` = '$ip'
 
Код:
if(mobio_checkcode($servID, $code, 0) == 1) {
       $zaqvka = "SELECT * FROM $table";
       $izp = mysql_query($zaqvka);
        $row = mysql_fetch_assoc($izp);
    	if($row[$pole] == $bip)
        {
            if(mysql_num_rows($izp) >= 1)
            {
            echo "<b>Бана на играча с IP <font color='red'>$bip</font> беше премахнат!</b>";
            $sql = "DELETE FROM $table WHERE $pole='$bip' LIMIT $bans";
            mysql_query($sql) or die(mysql_error());
            }
        }
        else
        {
            echo "<b>Не беше намерен бан на ip-то $bip</b>";
        }
    }else{
    	echo "Невалиден код!";
    }

Това е целият код. Отново ми казва, че не е намерен бан с ип-то..
 
Foxy каза:
if(mobio_checkcode($servID, $code, 0) == 1) {
$zaqvka = "SELECT * FROM $table WHERE `player_ip` = '$bip'";
$izp = mysql_query($zaqvka);
if(mysql_num_rows($izp) >= 1)
{
echo "<b>Бана на играча с IP <font color='red'>$bip</font> беше премахнат!</b>";
$sql = "DELETE FROM $table WHERE `player_ip` = '$bip' LIMIT $bans";
mysql_query($sql) or die(mysql_error());
}
else
{
echo "<b>Не беше намерен бан на ip-то $bip</b>";
}
}else{
echo "Невалиден код!";
}
 
Replace каза:
Foxy каза:
if(mobio_checkcode($servID, $code, 0) == 1) {
$zaqvka = "SELECT * FROM $table WHERE `player_ip` = '$bip'";
$izp = mysql_query($zaqvka);
if(mysql_num_rows($izp) >= 1)
{
echo "<b>Бана на играча с IP <font color='red'>$bip</font> беше премахнат!</b>";
$sql = "DELETE FROM $table WHERE `player_ip` = '$bip' LIMIT $bans";
mysql_query($sql) or die(mysql_error());
}
else
{
echo "<b>Не беше намерен бан на ip-то $bip</b>";
}
}else{
echo "Невалиден код!";
}
+1
 

Back
Горе