Ru-Board.club
← Вернуться в раздел «Web-программирование»

» Как сделать sql запрос, для проверки наличия строки в базе

Автор: Cheery
Дата сообщения: 18.11.2009 19:54
usertum
вывести зачем?
Автор: usertum
Дата сообщения: 18.11.2009 20:08
Для просмотра пароля, самим пользователем.
Автор: Cheery
Дата сообщения: 18.11.2009 21:40
usertum

Цитата:
Для просмотра пароля, самим пользователем.

$res=mysql_query("SELECT Plainpassword FROM TABLENAME WHERE user='имя_пользователя'");
$data=mysql_fetch_assoc($res);
echo $data['Plainpassword'];
Автор: usertum
Дата сообщения: 18.11.2009 22:52
SELECT Plainpassword FROM TABLENAME WHERE user='имя_пользователя'"); для моей бд должно быть так: SELECT Plainpassword FROM ofUser WHERE username='test'"); - верно? Не получается что то у меня, или не так понял или не так делаю

ps: Структура:

Добавлено:
/*
MySQL Data Transfer
Source Host: localhost
Source Database: port
Target Host: localhost
Target Database: port
Date: 19.11.2009 8:13:45
*/

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for ofuser
-- ----------------------------
CREATE TABLE `ofuser` (
`username` varchar(64) NOT NULL,
`plainPassword` varchar(32) DEFAULT NULL,
`encryptedPassword` varchar(255) DEFAULT NULL,
`name` varchar(100) DEFAULT NULL,
`email` varchar(100) DEFAULT NULL,
`creationDate` char(15) NOT NULL,
`modificationDate` char(15) NOT NULL,
PRIMARY KEY (`username`),
KEY `ofUser_cDate_idx` (`creationDate`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

-- ----------------------------
-- Records
-- ----------------------------
INSERT INTO `ofuser` VALUES ('test', 'test', '0', 'test', '', '001258476990171', '0');
INSERT INTO `ofuser` VALUES ('123', null, '4d38fbc602ac0c8bd04b164c770d8db5', null, null, '001258476990171', '001258476990171');
INSERT INTO `ofuser` VALUES ('testreg', '12312312', null, null, 'testreg@testreg.ru', '', '');

Нужно вывести пароль testreg пользователя, его пароль в БД 12312312
Автор: shakhr
Дата сообщения: 19.11.2009 00:00
можно вот это $data=mysql_fetch_assoc($res);
заменить на $data=mysql_fetch_row($res); или $data=mysql_fetch_array($res);
Автор: Cheery
Дата сообщения: 19.11.2009 00:17

Цитата:
Не получается что то у меня, или не так понял или не так делаю

ну так покажите что делаете
мы же не телепаты. или покажите сообщение об ошибке при выполнения запроса
Автор: usertum
Дата сообщения: 19.11.2009 13:19
Все получилось спасибо, подскажите пожалуйста на будущее, что нужно изменить в классе БД для вывода ошибок? А то ошибки не выводятся, на угад делаю
Автор: Cheery
Дата сообщения: 19.11.2009 19:09
usertum

Цитата:
что нужно изменить в классе БД для вывода ошибок?

выводить ошибки надо только на момент отладки. в рабочей версии это будет только помогать взломщикам подбирать SQL injection
mysql_query("....") or die(mysql_error());
Автор: usertum
Дата сообщения: 21.11.2009 14:04
Еше вопрос конечно не совсем по теме, как текст из формы:

<form method="post" action="st.php">
Сообшение для отправки: <input type="text" name="mes">
<input type="submit" value="отправить">
</form>

Отправлять в кодировке utf8, тк поддерживается только отправка сообщений в utf8, и при обычной отправке приходят "квадратики &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; "

echo iconv("windows-1251", "utf-8", "тест"); , как я понял это то что нужно, но как через это пропустить запрос?
Автор: Cheery
Дата сообщения: 21.11.2009 14:16
usertum
страница с формой должна быть в этой кодировке
Автор: derelict
Дата сообщения: 21.11.2009 14:23

Цитата:
usertum
страница с формой должна быть в этой кодировке

Если это по каким-то причинам нельзя сделать, то можно воспользоваться библиотекой iconv для преобразования кодировки в обрабатывающем запрос скрипте.
Автор: usertum
Дата сообщения: 21.11.2009 14:25
derelict, Cheery

Спасибо, все получилось.
Автор: usertum
Дата сообщения: 11.12.2009 16:35
Опять вынужден попросить помощи у Вас. Встретил что значения в БД хранятся так:
таблица data, и содержит в себе значения а таком виде
Значение 1 | Значение 2 | Значение 3 ... то есть через знак |, как можно вывести определенное значение например только Значение 2 или 3 ?
Автор: Cheery
Дата сообщения: 11.12.2009 19:34
usertum

Цитата:
как можно вывести определенное значение например только Значение 2 или 3

SUBSTRING_INDEX() + SUBSTRING()
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html
Автор: usertum
Дата сообщения: 11.12.2009 20:33
Cheery а примера случайно нет запроса? Просто в первые встретился с этим...
Автор: Cheery
Дата сообщения: 11.12.2009 21:14
usertum

Цитата:
а примера случайно нет запроса? Просто в первые встретился с этим...

с чем? думайте как бы сделали на php, к примеру. почти аналогично.
но лучше бы разбивать именно скриптом, а не с помощью запроса
substring(column, substring_index(column, '|',2),substring_index(column, '|',3)-substring_index(column, '|',2))
могут быть проблемы с крайними значениями, если не закрыто с помощью | и тд и тп
я лишь показываю направление куда копать
Автор: usertum
Дата сообщения: 19.01.2010 20:00


Выше пример БД, нужно вывести сколько раз содержится поле admin в таблице, если поля нет то вывести "нет информации" каким запросов в mysql можно это сделать?
Автор: APTEM
Дата сообщения: 19.01.2010 20:47
select count(*) from table1 group by username

select case when count(*)=0 then 'No data' else cast(count(*) as varchar(10)) end as cnt from table1 where name='admin'
Автор: Dimon1119
Дата сообщения: 19.01.2010 21:31
если в базе пароли хранятся в md5, то перед проверкой правильности нужно введенный пользователем пароль зашифровать в md5, а потом сравнить с базой

http://php.su/functions/?md5 - функция md5

Извените, не заметил что уже ответили
Автор: usertum
Дата сообщения: 19.01.2010 22:53
Это таблица offline сообщений, нужно вывести у вас 8 сообщений или у вас нет сообщений, на каждое новое сообщение создается запись, пример на картинке выше.
Автор: usertum
Дата сообщения: 20.01.2010 08:18
Кто может подсказать?
Автор: usertum
Дата сообщения: 02.02.2010 00:31
Делаю запрос, ($user = test;) DELETE FROM vrem WHERE user='$user'" он удаляет только одну строку из таблицы, как сделать что бы удалял все строки где в поле user есть имя пользователя test? Заранее спасибо.
Автор: zerkms
Дата сообщения: 02.02.2010 00:37
"где есть" это не оператор "=", а "LIKE", но подход к хранению коллекции элементов через разделитель в поле - очень глупый.
Автор: usertum
Дата сообщения: 02.02.2010 00:55
zerkms извините а можете подсказать как это реализовать в запросе выше (использование выражения like).
Автор: Cheery
Дата сообщения: 02.02.2010 02:56
usertum
ну посмотрели бы мануал..
WHERE user LIKE '%$user%'
но удалит все строчки, где есть кусок имени.. если же через разделитель, то
WHERE user LIKE '%|$user|%'
где | - ваш разделитель. проблемы будут если строка не открывается им и не закрывается, а имя стоит в начале или конце.
Автор: usertum
Дата сообщения: 28.03.2010 11:37
Добрый день есть еше один вопрос, каким запросом можно вывести все строчки из БД где есть значение admin в БД?



Добавлено:
SELECT * FROM ms WHERE user='admin'
$data=mysql_fetch_assoc($res);
echo $data['mess'];

Выводит самое последнее сообщение (4) из базы а нужно вывести все через <br>

1
2
3
4
итд
Автор: andead
Дата сообщения: 28.03.2010 12:16
usertum
http://ru2.php.net/manual/en/function.mysql-fetch-assoc.php первый пример
Автор: usertum
Дата сообщения: 28.03.2010 13:00
Дак у меня вро ди так же но выводит только 1 значение а не все.
Автор: andead
Дата сообщения: 28.03.2010 13:06
если бы вы были внимательны и организовали цикл, вывелись бы все

http://ru2.php.net/manual/en/function.mysql-fetch-assoc.php

Код: // While a row of data exists, put that row in $row as an associative array
// Note: If you're expecting just one row, no need to use a loop
// Note: If you put extract($row); inside the following loop, you'll
// then create $userid, $fullname, and $userstatus
while ($row = mysql_fetch_assoc($result)) {
echo $row["userid"];
echo $row["fullname"];
echo $row["userstatus"];
}
Автор: usertum
Дата сообщения: 28.03.2010 13:14
Это то я понял, в таблице идут записи типа

ник пользователя - сообщение и все записи идентичны.

admin text1
admin text2 итд

Страницы: 123

Предыдущая тема: Новости из мира вебпрограмминга


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.