Проблемы с выводом информации из БД

Wariner

Новичок
Проблемы с выводом информации из БД

Есть БД, в ней таблица с полями Nick, Password, Profile. Хочу вывести из БД пароль юзера с ником Wariner вот таким кодом:
PHP:
<? $link = @mysql_pconnect("localhost", "root", "") or die ("Ошибка соединения с сервером!");
$loadDB = @mysql_select_db("dvizok") or die ("Ошибка открытия БД!"); 
$query = "SELECT Password FROM RegList WHERE Nick = 'Wariner'";
$Pass = mysql_query($query) or die(mysql_error());  
$number = mysql_num_rows($Pass);  
echo($number."<br>"); 
echo($Pass); 
?>
Результат вот такой:
Что я делаю не так? Ведь пароль там 123...
 

Wariner

Новичок
Получается что в php нельзя извлечь
PHP:
"SELECT Password FROM RegList
Обязательно вместо Password писать *? Я не совсем это понимаю.

Автор оригинала: *****
Wariner, что делает функция mysql_query()?
С этим всё понял спасибо за намёк)))

С php дело имею первый день так что сильно не пинайте)))
 

Wariner

Новичок
Во всех примерах которые я видел за сегодняшний день везде используется звёздочка. А если использовать не звёздочку а имя столбца всё рано надо формировать массив функцией mysql_fetch_assoc()? Смысл если там одно значение или есть какой нибудь другой способ?
 

Фанат

oncle terrible
Команда форума
Во всех примерах которые я видел за сегодняшний день везде используется звёздочка.
Ну и что?
если использовать не звёздочку а имя столбца всё рано надо формировать массив
А какие проблемы-то у тебя, с формированием массива?

Смысл если там одно значение
Действительно. Пусть mysql_query сразу его и возвращает, верно?
 

Wariner

Новичок
Вот я и спрашиваю как так сделать? Точнее как из "идентификатора ресурса" получить его значение?
 

Фанат

oncle terrible
Команда форума
Во-первых, не из идентификатора. Ты у нас такой сообразительный, что хотел не из идентификатора, а из функции.
Во-вторых, перед тем, как получать, надо обучить пхп телепатии. чтобы он догадался, что ты хочешь - идентификатор или значение. Займись на досуге.
В-третьих, функция, которая из "идентификатора ресурса" получает его значение, тебе прекрасно известна. Какие у тебя проблемы с её применением, ты так и не написал. Я тебя внимательно слушаю.
 

Wariner

Новичок
Я сделал вот так:
PHP:
$link = @mysql_pconnect("localhost", "root", "") or die ("Ошибка соединения с сервером!");
$loadDB = @mysql_select_db("dvizok") or die ("Ошибка открытия БД!");
$query = "SELECT Password FROM RegList WHERE Nick = '".$Nick."'"; 
$Zapros = mysql_query($query) or die(mysql_error());  
$Pass=mysql_fetch_assoc($Zapros); 
if ($Pass[Password] == $Password)
...
Я тоже не телепат чтоб понимать незнакомого человека с полуслова! Покажи как надо сделать, если не сложно!
 

Фанат

oncle terrible
Команда форума
Тебе дали ссылку, причем, я уверен - это не единственный пример, который ты читал. Если ты считаешь себя умнее тех, кто их писал, то, может быть, объяснишь, наконец, ЧЕМ ТЕБЯ ЭТОТ КОД НЕ УСТРАИВАЕТ? Незнакомый человек тебе задал этот вопрос три раза.

-~{}~ 03.01.09 01:21:

кстати
$query = "SELECT Password FROM RegList WHERE Nick = '".$Nick."'";
здесь может быть SQL инъекция. И залогиниться под любым юзером не составит труда.
 

Wariner

Новичок
Я говорю о том что как правило в примере пишут не совсем оптимизированный код и знающий человек всегда скажет что вот так вот лучше сделать. Или там приведён оптимальный код?! А вообще всё это простое разглагольствование...
Небольшой оффтоп по делу:
Есть два файла, в одном форма:

<form action = "http://10.2.100.240:8080/test/Registration.php" method=&quotget">
Имя: <input type="text" name="Nick"/> Пароль: <input type="text" name="Password"/><br>
<input type="submit"/>
</form>

во втором обработка:

PHP:
<? $link = @mysql_pconnect("localhost", "root", "") or die ("Ошибка соединения с сервером!");  // Подключение сервера БД 
$loadDB = @mysql_select_db("dvizok") or die ("Ошибка открытия БД!"); // загррузка БД 
$query = "SELECT Password FROM RegList WHERE Nick = '".$Nick."'"; 
$Zapros = mysql_query($query) or die(mysql_error());  
$Pass=mysql_fetch_assoc($Zapros); //Возвращает ассоциативный массив 
echo("1)".$Password."<br>"); 
echo("2)".$Pass[Password]."<br>"); 
echo("3)".$Nick."<br>"); 
if ($Pass[Password] == $Password)     
{ 	
echo("Вход выполнен! Добро пожаловать,".$Nick); 	
} 
else 	
{ 	
echo("Не правильно введены имя или пароль!"); 	
} ?>
Переменные не передаются((( в чём мой косяк?

И ещё вопрос что значит вход для форума? Т.е. ты вводишь ник и пароль и тебе говорит "Ты вошёл". На сервере же я не присутствую. До каких остаётся это "вошёл" и что конкретно в этот момент происходит(добавляется в БД что то или как)?
 

nerezus

Вселенский отказник
Wariner "вошел" остается ровно на ту долю секунды между запросом пользователя и окончанием генерацией ответа.
 

Фанат

oncle terrible
Команда форума
Wariner, я не очень понимаю, какой смысл ты вкладываешь в слово "оптимальный". В примерах пишут упрощенный, облегченный для понимания, и наиболее общий код, подходящий для возможно большего числа случаев.
Почему ты решил, что этот код кривой и его обязательно надо переделывать - для меня загадка. Я так понимаю, никаких конкретных претензий к этому коду у тебя нет, а есть только разглагольствования?

По поводу твоего вопроса. Сейчас, в 21 веке, никто не пишет Добро пожаловать,".$Nick. Пишут
"Добро пожаловать,".$_GET['Nick'], в зависимости от метода, которым был запрошен сервер. Попробуй, и у тебя получится.

Про форум хороший вопрос. В момент "входа" форум "запоминает" пользователя (а точнее - тот браузер, который послал запрос). С помощью средств протокола HTTP. Как это происходит? Браузер с этого момента при каждом запросе сервера посылает некоторую информацию, по которой сервер его распознает. Либо это те самые логин и пароль, либо какой-то идентификатор.

Не забудь, пожалуйста, мое предыдущее замечание,
здесь может быть SQL инъекция. И залогиниться под любым юзером не составит труда.
-~{}~ 03.01.09 13:08:

Судя по твоим вопросам, я думаю, тебе очень нелишним будет почитать вот это: http://phpfaq.ru/newbie
Тут несколько статей для начинающих, в которых есть ответы на вопросы, которые ты уже задал, и на те, которые обязательно возникнут вскоре.
 
Сверху