Две проблемы с кодом

Печать RSS
532

Автор
Пришелец
0
Первая: почему следующий код не удаляет строки
<? 
if(isset($_GET['delfriend']) and !empty($_GET['id'])){ 
$id=$_GET['id']; 
$dquery=mysqli_query($sql, "SELECT * FROM `friends` WHERE `id` = '".$id."'"); 
$res=mysqli_fetch_array($dquery); 
echo $res[1].''.$res[2]; 
$query=mysqli_query($sql, "DELETE FROM `friends` WHERE `login` = '".$log."' AND `user` = '".$res[1]."';");
$query=mysqli_query($sql, "DELETE FROM `friends` WHERE `user` = '".$log."' AND `login` = '".$res[1]."';");
} 
?>
и вторая: есть таблица friends, есть поля id, login (подавший заявку на дружбу), user (подтверждающий дружбу) и st (статус заявки, если "1" - значит заявка подтверждена), есть файл со списком юзеров онлайн, где "юзер|||posix-время". Код ниже вроде как должен выводить только друзей онлайн, но что-то он не работает
<?
$of=array_reverse(file(ROOT.'data/online.dat'));
$total=count($of);
for ($i = 0; $i < $total; $i++){
$data=explode("<||>",$of[$i]);
$friquery=mysqli_query($sql, "SELECT `user` FROM `friends` WHERE `login` = '".$log."' AND `st`='1' ORDER by `id` DESC");
$fr=mysqli_fetch_array($friquery);
echo $fr[0];
if($data[0]==$fr[2]){
if(file_exists(ROOT.'data/users/'.$data[0].'.dat')){
$uf=file_get_contents(ROOT.'data/users/'.$data[0].'.dat');
$uinfo=explode("[:]",$uf);
$av=$data[0].'.jpg';

if(file_exists("../albums/av/$av")){
$preav="../albums/pre/$av";
$ava="../albums/av/$av";}else{$ava='../Nophoto.jpg';
$preav=$ava;}

if(($uinfo[3]!='') and ($uinfo[4]!='')){
$nick=$uinfo[3].' '.$uinfo[4];}else{$nick=$uinfo[0];}}else{$nick=$data[0];}
echo '<li><a href="'.ROOT.'pages/anketa.php?us='.$data[0].'"><img src='.$preav.'></a></li>';
}}

?>
Изменил: Мага (25.03.2012 / 10:54)

Чатланин
0
а у тебя что поля в таблице friends называются 1 и 2? Ты делаешь выборку полей $res[1] и $res[2]

Добавлено через 02:37 сек.
это раз. Вовторых ты сам себе создаешь дыру не фильтруя $_GET['id']

Добавлено через 05:57 сек.
пардон. Не заметил что ты используешь fetch_array. Просто никогда им не пользуюсь
Автор
Пришелец
0
Спасибо за совет по безопасности) забыл об этом. Проблема не решена.
Изменил: Мага (25.03.2012 / 12:20)

крутой чЕл
0
_fetch_array возвращает ассоциативный массив,где название столбца - это ключ массива. Тебе нужно юзать $res['name'] и тп. Или юзай _fetch_row
Автор
Пришелец
0
fetch_assoc ведь возвращает ассоциативный, нет? При fetch_row выдает точно то же самое.

крутой чЕл
0
fetch_assoc почти тоже самое,что fetch_array. По крайней мере оба возвращают ассоциативный массив

2000 лет д.н.э.
0
Wapruks (25 Марта 2012 / 16:22)
fetch_assoc почти тоже самое,что fetch_array. По крайней мере оба возвращают ассоциативный массив
отличие в том что fetch_array возвращает и ассоциативный массив и нумерованый
Автор
Пришелец
0
А по существу? Очень нужна помощь

Чатланин
0
может ошибка в том, что возвращаемый массив начинается с нулевого ключа? Может тебе нужно не первый ключ, а нулевой?
Автор
Пришелец
0
в посте ошибка, сам код уже исправил, поставил нулевой ключ - все то же
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск