Работы с sql - не люблю с ней работать... Не понимаю просто ее...
Кусок вывода тех кто находится в одном клане:
<?
$q = mysql_query('SELECT * FROM `clan_memb` WHERE `clan` = "'.$i['id'].'" ORDER BY `rank` DESC,`exp` DESC LIMIT '.$start.', '.$max.'');
while($row = mysql_fetch_array($q)) {
$memb = mysql_query('SELECT * FROM `users` WHERE `id` = "'.$row['user'].'"');
$memb = mysql_fetch_array($memb);
?>
Мне надо только тех кто не состоит в клане... Можно конечно создать в колонке юзера еще одну строку типа clan если состоит в клане, то там 1, если не состоит, то 0, но это не удобно...
Помогите) В долгу не останусь...
сделай проверку,если id юзера не существует в таблице $i['user_id'] то выводи его
"Работы с sql - не люблю с ней работать... Не понимаю просто ее..." - лол, просто лол
Твой кусок кода
WHERE `id` = "' . $row['user'] . '"
заменить на
WHERE `id` != "' . $row['user'] . '"
Весь код не правильный, не оптимизированный. Слишком много обращений к БД.
Join в помощь,ёпт
Добавлено 07.06.15 в 17:03:35:
<?php
$query=mysql_query("SELECT `clan_member`.* ,`users`.* FROM `clan_member` LEFT JOIN `users` ON `clan_member`.`user` = `users`.`id` AND `clan_member`.`clan` != '".$i['id']."' ORDER BY `clan_member`.`rank` DESC,`clan_member`.`exp` DESC LIMIT ".$start.", ".$max.""
while($row_user = mysql_fetch_array($query)){
//Выводишь шлёпанца
}
?>
Может быть ещё проще пройдёт, без LEFT JOIN
<?
$q = mysql_query('SELECT c.*, u.* FROM `clan_memb` c, `users` u WHERE `c.clan` = "' . $i['id'] . '" AND u.id != c.user ORDER BY `rank` DESC,`exp` DESC LIMIT '.$start.', '.$max.'');
while($row = mysql_fetch_array($q)) {
?>
Не одно из всех вариантов не работает...
Добавлено 07.06.15 в 21:04:19:
Вобще х с ним, сделаю как хотел, всем спасибо за помощь, тролям х по самое горло!