PDA

Просмотр полной версии : Вопрос к профи в php


diler
05.04.2004, 17:46
Ребята и девчата, подскажите мне пожалуйсто как сделать такую вещь.
Принципа такой: генерируется случайное число в диапазоне от 1 до 6 и добавляется в Базу данных (или если можно сделать это без базы данных, о в фаил). В другой раз если пользователь нажимает на кнопку, для генераци случайного числа в том же диапазано и ему выпадает выпавшее ранее число, то ему говорят, что данное число уже было, и вам не повезло, если такова число не было в базе данных, то выводиться сообщение, что все прошло хорошо, а число потом добавляется в базу данных, и дальше повторяется дальше, только в базе данных уже два числа, и так далее пока там не будет все шесть чисел. Мне нужны любые советы по этой проблеме, потому, что я вообще не знаю как это сделать, даже как таблицу постоить (всмысле название строк и столбцов). Если кого интересует зачем мне это нужно, то вот зачем.
Я делаю игру, текстовую. Там будет сообщение: хотите проверить свою удачу, нажмите эту кнопку. при нажатии выпадает число, если оно ранее было в БД, то не удача, а если его не было, то удача, но оно идет в БД (на бумаге оно зачеркивается). Может кто подскажет, на чем это вообще лучше реализовать.

nagash
05.04.2004, 22:03
SELECT COUNT(*) FROM `table` WHERE `num` = '".$num."'"

если каунт > 0 значит число было...

_zhloba
06.04.2004, 17:49
<php

//генерировать число
$num=rand(10000,99999);
//задать диапазон 1-6 (присвоить остаток от деления на 6)
$num%=6; // получатся значения 0-5
$num+=1;

//флаг, отмечающий, есть ли такое число
$is_num=false;

//полагаем, что таблица в базе данных уже есть и присоединяемся к ней
//все используемые для этого переменные логично определить во внешнем файле
include("configuration.php");
mysql_connection($host,$user,$password);
mysql_select_db($databasename);

//посылаем запрос к базе данных
$reslut=mysql_query("select * from `num_table`");

//формируем массив из элементов первой строки в таблице
$arr_result=mysql_fetch_array($result);

//начинаем цикл для перебора строк таблицы
while($num_from_table=$arr_result["num"]){ // пока не
получим пустую строку

//сравниваем значения
if($num==$num_from_table){$is_num=true;}

//получаем следующую строку таблицы
$arr_result=mysql_fetch_array($result);

}

if($is_num){//если такое число есть

//выводим сообщение
echo "извините, вы не угадали<br>";

}
else{//если нет

//поздравляем
echo "Ура! Вы сделали это!<br>";

//записываем в базу данных
mysql_query("insert into `num_table` values('$num');
}

//закрываем базу данных
mysql_close();
?>
Внимание! - я код не тестировал

Для работы скрипта необходимы:
1. Сервер с интерпретатором PHP и
базой данных mySQL (для других баз данных используюся
другие функции)
2. База данных и таблица `num_table` в базе данных
(как их создать - это вопросы администрирования а не программирования - т.е. отдельная тема для разговора.
3. Знание PHP
4. Знание SQL

Вместо базы данных можно использовать запись в файл,
но приложение будет работать медленнее - больше нагрузка на сервер

nagash
06.04.2004, 23:59
_zhloba
ничего побольше написать не можешь?

diler
07.04.2004, 00:29
Спасибо, буду пробовать