нужна помощь с MySQL
можно так:
$r=rand();
SELECT * FROM table LIMIT $r,1
ну лучше всего иметь уникальные ID и выбирать так:
SELECT * FROM table WHERE id>$r
SELECT * FROM table ORDER by RAND() LIMIT 1.
Помоему лучше уж вот так
SELECT * FROM table ORDER by RAND() LIMIT 1.
RAND в MYSQL вроде бы от 0 до 1 генерирует числа. Надо там что-то перемножать и переводить.
RAND в MYSQL вроде бы от 0 до 1 генерирует числа. Надо там что-то перемножать и переводить.
Вот че в мане написано про RAND
Оператор RAND() не следует воспринимать как полноценный генератор случайных чисел: это просто быстрый способ динамической генерации случайных чисел, переносимых между платформами для одной и той же версии MySQL.
В качестве альтернативы можно, если заранее знаешь кол-во строк в таблице, генерировать случайное число в скрипте, а потом подставлять его в LIMIT N, 1
так что если знаеш количество строк то юзай что нить подобное (Вариант Майка)
$rnd=rand(0,$total);
select * from table limit $rnd,1
При вводе формы в случае ошибки данные в базу не заносятся, а на той же странице выдается сообщение об ошибке. Если вернуться на предыдущую страницу -она пустая, информация потеряна и надо заново вводить.
Попробовала в форме указать target blank, тогда в случае нормального завершения остается страница с данными, как дурная...
Вот такая беда и спросить не у кого...
Помогите пожалуйста сильвупле!!! :)
А главное по теме :)
Надо было хоть топик новый создать.
и для начало указать текст ошибки, и уточнить
с каким языком работаеш.
и привести строки где ошибка.
Хотя я не совсем понял, ошибка эта из за того что ты что-то неправильно делаеш, или это какое то самописное сообщение юзверю об ошибке которое ты сам выводиш ?
Постеснялась новую тему заводить скромная потомушта.
Наверное, я плохо объяснила.
Я набираю данные в форму. Ок. Обращение к базе. Выясняется, например, что такое имя в базе уже есть, оно должно быть уникальным. Выдается об этом сообщение. Имя надо изменить. А заодно придется ввести опять всю ту же самую информацию сначала!!! Потому что все корова языком слизала...
Вот.:D
Я бы хотела поставить ссылочку "Вернуться" и чтобы на этой страничке сохранились все набранные данные.
Ну теперь вроде объяснила.:)
я теперь тоже твой пост внимательно прочитал :)
А насчет вопроса.
Если ты юзаеш пхп:
Ты когда нажимаеш кнопку submit загружается страница которой передаются переменные $_POST[]
или $_GET[] взависимости от метода формы.
Вотсс...
и когда тебе что то не нравится, к примеру идентичная запись. Ты в нужном месте вставляеш проверку что то типа
echo '<input type='text' name='name' value='$_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. Вот на этой странице и выдается это сообщение.
Если делать переход на другую страницу, то на первой остаются все введенные данные, сообщение выдается на второй, но в этом случае присутствие первой страницы не имеет смысла, если все прошло нормально. Глупо как-то... Человек будет на нее смотреть и думать, что данные не прошли, раз они у него перед глазами.
И что делать?
Если делать переход на другую страницу, то на первой остаются все введенные данные, сообщение выдается на второй, но в этом случае присутствие первой страницы не имеет смысла, если все прошло нормально. Глупо как-то... Человек будет на нее смотреть и думать, что данные не прошли, раз они у него перед глазами.
И что делать?
С точки зрения клиента нефиг возвращаться куда ни попадя, если все идет пучком. Но если тебя это действительно волнует, повесь на онсабмит скрипт, переводящий все видимые данные в скрытые поля формы и обнуляющий видимые. Надеюсь я правильно понял вопрос.
Я же вроде попытался тебе обьяснить как я себе это представляю :)
Вообщем попытаюсь еще раз.
Если юзверь допускает ошибку, ты это проверяеш в своем коде (том что ты постила)и вот там где ты проверяеш,выводиш свое сообщение, и определяеш переменную какую нить например $error
вотсс..
а после вывода сообщения ты выводиш опять форму
но только при условии что что-то неправильно то есть определенна переменная $error
и вставляеш в значения формы значение переданных переменных.
примерно как это выглядит я написал в том коде что запостил.
Если же ошибки нет, то ты не выводиш форму а делаеш то что тебе надо. Например редиректиш куда нить с помощью header().
Вотс....
Вроде старался понятно обьяснить :)
Я попробую.:)