[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: запрос из базы
panich
Нужно вытащить из базы данные,которые соответствуют логину,но не соответствуют айди:
SELECT `id` FROM `table` WHERE `login`='$login' AND `id` NOT LIKE '%$olg_id'

Что неправильно написал подскажите?



Спустя 3 минуты, 35 секунд (6.02.2012 - 13:22) nugle написал(а):
попробуй так
SELECT `id` FROM `table` WHERE `login`='$login' AND `id` <> 'olg_id'

Спустя 1 минута, 32 секунды (6.02.2012 - 13:23) GET написал(а):
SELECT `id` FROM `table` WHERE `login`='$login' AND `id` !='olg_id'

Спустя 1 минута, 37 секунд (6.02.2012 - 13:25) Xes написал(а):
вопщебы неплохо написать всю строку целиком т.к. тут не понятно что ты имеещь виду.
Можно предложить чтото типа ткого на альтернативу.
$qery="SELECT `id` FROM `table` WHERE `login`='".$login."' AND `id`<>'".$olg_id."' LIMIT 1"


Точку с запятой в конце поставь ; :)

Спустя 11 минут, 12 секунд (6.02.2012 - 13:36) panich написал(а):
Пробовал как Вы все указали ещё до того как сюда выложил и каждый раз при этих попытках (как и при моём, ранее приведённом примере) выдаёт просто белый экран-убираю и страница перезагружается...
Вот весь код:
if (isset($_POST['login']))
{
$login = substr(mysql_real_escape_string(trim($_POST['login'])),0,30);
$login = htmlspecialchars($login);
if(get_magic_quotes_gpc())
{
$login = stripslashes($login);
}
if(!preg_match("/^[a-zA-Z0-9_\.\-]+\@([a-zA-Z0-9\-]+\.)+[a-zA-Z0-9]{2,6}$/",$login))
{
exit ("<p>Логин не соответствует общепринятому(e-mail)!</p>
<a href='../znakomstva/page_user.php'>вернуться на свою страницу!</a>"
);
}
else
{
$sql10 = "SELECT `id` FROM `users` WHERE `login`='$login' AND `id` NOT LIKE '%$old_id'";
$result10 = mysql_query($sql10, $db)or die("Ошибка в запросе: " . mysql_error());
if (!$result10)
{
echo "ошибка - ".mysql_error()."<br>";
echo $sql10;
exit();
}
else
{
$myrow10 = mysql_fetch_assoc($result10);
if (!empty($myrow10['id']))
{
exit ("<p>Извините, введённый вами логин уже зарегистрирован. Введите другой логин.</p>
<a href='../znakomstva/page_user.php'>вернуться на свою страницу!</a>"
);
}
else
{
$sql11 = "UPDATE `users` SET `login`='$login' WHERE `login`='$old_login'";
$result11 = mysql_query($sql11, $db)or die("Ошибка в запросе: " . mysql_error());
if (!$result11)
{
echo "ошибка - ".mysql_error()."<br>";
echo $sql11;
exit();
}
else
{
$_SESSION['login'] = $login;
if (isset($_COOKIE['login']))
{
setcookie("login", $login, time()+9999999);
}
}
}
}
}
}

Старый логин ещё ранее вытащил-тут не указал.Но его проверял и с ним всё нормально-без нареканий тут!

Спустя 9 минут, 26 секунд (6.02.2012 - 13:46) nugle написал(а):
panich
выведи напрямую запрос(который я указал ранее, с таким же синтаксисом) и вставь его в бд, и тогда увидишь

Спустя 4 минуты, 24 секунды (6.02.2012 - 13:50) panich написал(а):
Ещё хотел уточнить-а тут всё правильно:
`login`='$login' AND `id` <> 'olg_id'

Или так нада:
`login`='$login' AND `id` <> '$olg_id'

???На всякий случай...

Я вконце скрипта не написал переадресовывание после выполнения на страницу пользователя-может ошибка банальна и она именно в этом?

Спустя 2 минуты, 3 секунды (6.02.2012 - 13:52) GET написал(а):
panich
Команды exit в своем скрипте замени на echo'1'; echo'2';.... echo'N'; Чтоб увидеть на каком шаге глохнет

Спустя 57 секунд (6.02.2012 - 13:53) GET написал(а):
`login`='$login' AND `id` <> '$olg_id'

Спустя 1 минута, 15 секунд (6.02.2012 - 13:54) panich написал(а):
И раз уж так повезло с отзывчивостью-воспользуюсь моментом:
<?php
session_start();
include ("bd.php");
if (isset($_COOKIE['auto']) and isset($_COOKIE['login']) and isset($_COOKIE['pass']))
{
if ($_COOKIE['auto'] == 'yes')
{
$_SESSION['pass'] = $_COOKIE['pass']."cR9i7Z";
$_SESSION['pass'] = strrev(md5(mysql_real_escape_string($_COOKIE['pass'])));
$_SESSION['login'] = mysql_real_escape_string($_COOKIE['login']);
$_SESSION['id'] = mysql_real_escape_string($_COOKIE['id']);
if (isset($_GET['id']))
{
$id = intval($_GET['id']);
}
if (!preg_match("|^[\d]+$|", $id))
{
exit("<p>Вы не являетесь владельцем этой страницы!<br>Неверно указан URL</p>");
}
else
{
if (!empty($_SESSION['login']) and !empty($_SESSION['pass']))
{
$login = mysql_real_escape_string($_SESSION['login']);
$pass = mysql_real_escape_string($_SESSION['pass']);
$result3 = mysql_query("SELECT `id` FROM `users` WHERE `login`='$login' AND `pass`='$pass' LIMIT 1",$db);
$myrow3 = mysql_fetch_assoc($result3);
if (empty($myrow3['id']))
{
exit("Пользователя не существует! Возможно он был удален.Обратитесь в службу технической поддержки по адресу электронной почты bvstrechy@list.ru");
}
else
{
$_SESSION['id'] = $id;
header("Location:http://localhost/znakomstva/page_user.php?id='$id'");
}
}
}
}
}

if (!empty($_SESSION['login']) and !empty($_SESSION['pass']) and !empty($_SESSION['id']))
{
$pass = mysql_real_escape_string($_SESSION['pass']);
$login = mysql_real_escape_string($_SESSION['login']);
$id = mysql_real_escape_string($_SESSION['id']);
if (isset($_GET['id']))
{
$id = intval($_GET['id']);
}
if (!preg_match("|^[\d]+$|", $id))
{
exit("<p>Вы не являетесь владельцем этой страницы!<br>Неверно указан URL</p>");
}
else
{
if (!empty($_SESSION['login']) and !empty($_SESSION['pass']))
{
$result4 = mysql_query("SELECT `id` FROM `users` WHERE `login`='$login' AND `pass`='$pass' LIMIT 1",$db);
$myrow4 = mysql_fetch_assoc($result4);
if (empty($myrow4['id']))
{
exit("Пользователя не существует! Возможно он был удален.Обратитесь в службу технической поддержки по адресу электронной почты bvstrechy@list.ru");
}
else
{
if($id = $myrow4['id'])
{
$_SESSION['id'] = $id;
header("Location:http://localhost/znakomstva/page_user.php?id='$id'");
}
}
}
}
}

?>

Вот этот код я написал перед загрузкой страницы,что бы безопасность увеличить.Попрошу Вас глянуть одним глазком и указать на ошибки,недочёты и упущенные моменты.Заранее благодарен!!!

Спустя 2 минуты, 16 секунд (6.02.2012 - 13:57) GET написал(а):
include ("bd.php");

bd - Baza Dannyh - как учит Евгений Попов
db - Data Base - как правильно

Спустя 54 секунды (6.02.2012 - 13:58) GET написал(а):
if (isset($_COOKIE['auto']) and isset($_COOKIE['login']) and isset($_COOKIE['pass']))

можно переписать

if (isset($_COOKIE['auto'],$_COOKIE['login'],$_COOKIE['pass']))

smile.gif

Думаешь безопасно в куки отправлять пароль?

Спустя 3 минуты, 25 секунд (6.02.2012 - 14:01) panich написал(а):
Это я если пользователь автовход захочет реализовать.Слышал,что реализовать его можно через сессии как-то,но не искал,если честно...хотя следует,думаю.
Тут спасибо,а в остальном что ещё у меня "плохо" выглядит?

П.С.Вы правы,самый первый учитель у меня был-видеоурок от Попова.Уже год после этого слушаю как его хаят и меня носом тыкают за ошибки им допущенные.

Спустя 1 минута, 23 секунды (6.02.2012 - 14:02) GET написал(а):
Цитата
if (!empty($_SESSION['login']) and !empty($_SESSION['pass']))
  {
    $login = mysql_real_escape_string($_SESSION['login']);           
    $pass = mysql_real_escape_string($_SESSION['pass']);           
    $result3 = mysql_query("SELECT `id` FROM `users` WHERE `login`='$login' AND `pass`='$pass' LIMIT 1",$db); 
    $myrow3 = mysql_fetch_assoc($result3);
    if (empty($myrow3['id']))
    {
    exit("Пользователя не существует! Возможно он был удален.Обратитесь в службу технической поддержки по адресу электронной почты bvstrechy@list.ru");
    }
    else
    {
    $_SESSION['id'] = $id;
    header("Location:http://localhost/znakomstva/page_user.php?id='$id'");
    }
  }


И

Цитата
if (!empty($_SESSION['login']) and !empty($_SESSION['pass']) and !empty($_SESSION['id']))
{
$pass = mysql_real_escape_string($_SESSION['pass']);   
$login = mysql_real_escape_string($_SESSION['login']);                           
$id = mysql_real_escape_string($_SESSION['id']);
if (isset($_GET['id']))
{
$id = intval($_GET['id']);
}     
if (!preg_match("|^[\d]+$|", $id))   
{           
exit("<p>Вы не являетесь владельцем этой страницы!<br>Неверно указан URL</p>");       
}
else
............
{


Куски почти дублируются надо придумать, как их совместить

Спустя 4 минуты, 19 секунд (6.02.2012 - 14:07) panich написал(а):
Да как же там совместишь?
Сначала на куки проверяю,а потом сессии...

Спустя 6 минут, 18 секунд (6.02.2012 - 14:13) GET написал(а):
Цитата
Да как же там совместишь?


Вы спросили я ответил.

Вот здесь ошибка:

Цитата
if($id = $myrow4['id'])


'=' и '==' и '===' разные вещи

if ($id == $myrow4['id'])

Спустя 3 минуты, 8 секунд (6.02.2012 - 14:16) GET написал(а):
http://irbis-team.com/15/7/1

Здесь много что то для себя подчеркнуть.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.