Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

нужна помощь с MySQL

365
08 ноября 2004 года
MasterSID
230 / / 23.02.2003
Подскажите плиз можно ли одним запросом получить рэндомную запись из базы?
4
08 ноября 2004 года
mike
3.7K / / 01.10.2002
Не совсем одиним, но да.

можно так:

$r=rand();
SELECT * FROM table LIMIT $r,1

ну лучше всего иметь уникальные ID и выбирать так:

SELECT * FROM table WHERE id>$r
365
09 ноября 2004 года
MasterSID
230 / / 23.02.2003
Но ведь rand может ляпнуть число вне диапазона числа записей в бд. Поучается сначала нужно получить их количество и ограничить область случайных чисел, так?
6.1K
09 ноября 2004 года
Sava
5 / / 15.12.2003
Помоему лучше уж вот так
SELECT * FROM table ORDER by RAND() LIMIT 1.
365
10 ноября 2004 года
MasterSID
230 / / 23.02.2003
Цитата:
Originally posted by Sava
Помоему лучше уж вот так
SELECT * FROM table ORDER by RAND() LIMIT 1.


RAND в MYSQL вроде бы от 0 до 1 генерирует числа. Надо там что-то перемножать и переводить.

4.3K
10 ноября 2004 года
Slastik
34 / / 03.04.2004
Цитата:
Originally posted by MasterSID

RAND в MYSQL вроде бы от 0 до 1 генерирует числа. Надо там что-то перемножать и переводить.



Вот че в мане написано про RAND
Оператор RAND() не следует воспринимать как полноценный генератор случайных чисел: это просто быстрый способ динамической генерации случайных чисел, переносимых между платформами для одной и той же версии MySQL.
В качестве альтернативы можно, если заранее знаешь кол-во строк в таблице, генерировать случайное число в скрипте, а потом подставлять его в LIMIT N, 1


так что если знаеш количество строк то юзай что нить подобное (Вариант Майка)

 
Код:
select count(*) from table
$rnd=rand(0,$total);
select * from table limit $rnd,1
9.1K
11 ноября 2004 года
Papillon
6 / / 11.11.2004
Очень нужна помощь!!!
При вводе формы в случае ошибки данные в базу не заносятся, а на той же странице выдается сообщение об ошибке. Если вернуться на предыдущую страницу -она пустая, информация потеряна и надо заново вводить.
Попробовала в форме указать target blank, тогда в случае нормального завершения остается страница с данными, как дурная...
Вот такая беда и спросить не у кого...
Помогите пожалуйста сильвупле!!! :)
4.3K
11 ноября 2004 года
Slastik
34 / / 03.04.2004
Хорошо сказал :)
А главное по теме :)
Надо было хоть топик новый создать.

и для начало указать текст ошибки, и уточнить
с каким языком работаеш.
и привести строки где ошибка.

Хотя я не совсем понял, ошибка эта из за того что ты что-то неправильно делаеш, или это какое то самописное сообщение юзверю об ошибке которое ты сам выводиш ?
9.1K
11 ноября 2004 года
Papillon
6 / / 11.11.2004
Стасик, я девочка. :D
Постеснялась новую тему заводить скромная потомушта.
Наверное, я плохо объяснила.
Я набираю данные в форму. Ок. Обращение к базе. Выясняется, например, что такое имя в базе уже есть, оно должно быть уникальным. Выдается об этом сообщение. Имя надо изменить. А заодно придется ввести опять всю ту же самую информацию сначала!!! Потому что все корова языком слизала...
Вот.:D
Я бы хотела поставить ссылочку "Вернуться" и чтобы на этой страничке сохранились все набранные данные.
Ну теперь вроде объяснила.:)
9.1K
11 ноября 2004 года
Papillon
6 / / 11.11.2004
Сластик, я только сейчас твое имя правильно прочитала, хотела его скорректировать в предыдущем сообщении - так не дозволили... Почему-то.
4.3K
11 ноября 2004 года
Slastik
34 / / 03.04.2004
Цитата:
Стасик, я девочка. :D



я теперь тоже твой пост внимательно прочитал :)

А насчет вопроса.
Если ты юзаеш пхп:
Ты когда нажимаеш кнопку submit загружается страница которой передаются переменные $_POST[]
или $_GET[] взависимости от метода формы.

Вотсс...
и когда тебе что то не нравится, к примеру идентичная запись. Ты в нужном месте вставляеш проверку что то типа

 
Код:
if (isset($error) and isset($_POST['name']))
echo '<input type='text' name='name' value='$_POST['name']'>



Вот.. Надеюсь понятно обьяснил.
Только в этом случаеш у тебя получиться страничка на которой будет сообщение об ошибке и сама форма с введеными данными.

Если же ты хочеш что бы сообщение об ошибке было на отдельной странице и там была ссылка "вернутся", то тебе каждый раз прийдется таскать с собой значения переменных. Тоесть ты их либо через адресную строку будеш передавать, либо через скрытые поля формы, ли бо еще как нить через сессии к примеру.
9.1K
11 ноября 2004 года
Papillon
6 / / 11.11.2004
Цитата:
Originally posted by Slastik

и когда тебе что то не нравится, к примеру идентичная запись. Ты в нужном месте вставляеш проверку что то типа
 
Код:
if (isset($error) and isset($_POST['name']))
echo '<input type='text' name='name' value='$_POST['name']'>




После нажатия Submit управление передается на ту же страницу php, где стоит проверка:
if (C_UNICM) {
$result = mysql_query('SELECT count(id) as count FROM '.C_MYSQL_MEMBERS.' WHERE email = \''.$email.'\'');
$trows = mysql_fetch_array($result);
$count = $trows['count'];
if ($count != '0') printm(template($w[2],$tm));}

printm - это просто функция выдачи сообщения с номером 2. Вот на этой странице и выдается это сообщение.
Если делать переход на другую страницу, то на первой остаются все введенные данные, сообщение выдается на второй, но в этом случае присутствие первой страницы не имеет смысла, если все прошло нормально. Глупо как-то... Человек будет на нее смотреть и думать, что данные не прошли, раз они у него перед глазами.
И что делать?

338
11 ноября 2004 года
chigevara
529 / / 29.09.2003
Цитата:
Originally posted by Papillon


Если делать переход на другую страницу, то на первой остаются все введенные данные, сообщение выдается на второй, но в этом случае присутствие первой страницы не имеет смысла, если все прошло нормально. Глупо как-то... Человек будет на нее смотреть и думать, что данные не прошли, раз они у него перед глазами.
И что делать?


С точки зрения клиента нефиг возвращаться куда ни попадя, если все идет пучком. Но если тебя это действительно волнует, повесь на онсабмит скрипт, переводящий все видимые данные в скрытые поля формы и обнуляющий видимые. Надеюсь я правильно понял вопрос.

4.3K
12 ноября 2004 года
Slastik
34 / / 03.04.2004
Papillon

Я же вроде попытался тебе обьяснить как я себе это представляю :)

Вообщем попытаюсь еще раз.

Если юзверь допускает ошибку, ты это проверяеш в своем коде (том что ты постила)и вот там где ты проверяеш,выводиш свое сообщение, и определяеш переменную какую нить например $error

вотсс..

а после вывода сообщения ты выводиш опять форму
но только при условии что что-то неправильно то есть определенна переменная $error
и вставляеш в значения формы значение переданных переменных.
примерно как это выглядит я написал в том коде что запостил.

Если же ошибки нет, то ты не выводиш форму а делаеш то что тебе надо. Например редиректиш куда нить с помощью header().

Вотс....


Вроде старался понятно обьяснить :)
9.1K
12 ноября 2004 года
Papillon
6 / / 11.11.2004
Спасибо, это самое лучшее решение - вывести ошибку, и вслед за ней форму с уже введенными данными.
Я попробую.:)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог