Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> регистрация users с паролем, ??? 
V
    Опции темы
grider
Дата 14.5.2008, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 13.3.2008

Репутация: нет
Всего: нет



есть таблицы USER и PinCODE

`user `
   id
   login
   pass
   
`PinCODE`
    code
    user_id

Код

require_once ("сonectDB.php");
$query = "INSERT INTO `user` VALUES  (NULL,'$_POST[login]',
                                                                 '".md5($_POST['pass'])."'
                                  )"; 

  if(mysql_query($query))
    {
    echo("Пользователь успешно зарегистрирован в системе</font>");
    }
  else
  {
   echo ">Ошибка при добавлении пользователя в базу данных</font></p>";
  }

$number=4;
function generate_password($number)  
  {  
    $arr = array('1','2','3','4','5','6','7','8','9','0');  
    $pass = "";  
    for($i = 0; $i < $number; $i++)  
    {  
      $index = rand(0, count($arr) - 1);  
      $pass .= $arr[$index];  
    }  
    return $pass;  
  }  

как при добаление пользователя пользователя в табл. `user ` сгенерировать для него 10 пин кодов длиной 4 символа и добавить их в табл. `PinCODE`

вроде этого

user

`id `   `login`   `pass`
   1        user        user

PinCODE

   `code`   `user_id`
     3242          1
     4532          1
     2345          1
     7012          1
     1054          1
и тд
PM MAIL   Вверх
MoLeX
Дата 14.5.2008, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 7
Всего: 140



обычный скул запрос в цикле повторяющийся 4 раза. 
в чем именно трудность у тебя?


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
grider
Дата 14.5.2008, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 13.3.2008

Репутация: нет
Всего: нет



Я только не давно стал изучать php/mysql вроде в mysql  нету внешних ключей, связей. Трудность в том что при добавление данных в табл. user я не знаю как добавить в табл.  PinCODE  по внешнему ключу user_id
PM MAIL   Вверх
MoLeX
Дата 14.5.2008, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 7
Всего: 140



кажется понял. т.е. после записи в БД нового юзера ты не знаешь его id и от сюда не можешь записать в другую таблицу его пины так как они имеют связь с id пользователя.

Добавлено через 43 секунды
т.е. твоя задача сводится узнать этот id


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
grider
Дата 14.5.2008, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 13.3.2008

Репутация: нет
Всего: нет



когда я добавил в табл юзера
user

`id `   `login`   `pass`
   1        user1       user1
   2        user2       user2

то и в таб PinCODE должно добавиться 10 пин кодов где `user_id` будет соответствовать id юзера из табл user

PinCODE

   `code`   `user_id`
     3242          1
     4532          1
     2345          1
     7012          1
     1054          1
     3242          1
     4532          1
     2345          1
     7012          1
     1054          1

     2345          2
     3412          2
     7654          2
     3432          2
     2345          2
     3412          2
     7654          2
     3432          2
     2345          2
     3412          2
   
PM MAIL   Вверх
Feldmarschall
Дата 14.5.2008, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 1
Всего: 32



mysql_insert_id()
PM   Вверх
MoLeX
Дата 14.5.2008, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 7
Всего: 140



grider, поробуй вот это
Код

<?php
require_once "сonectDB.php";

$number = 4;
function generate_password($number)  
{  
    $arr = array("1", "2", "3", "4", "5", "6", "7", "8", "9", "0");  
    for($i = 0; $i < $number; $i++)  
    {  
        $index = rand(0, count($arr) - 1);  
        $pass .= $arr[$index];  
    }  
    return $pass;  

  
$query = "INSERT INTO `user` (`id`, `login`, `pass`) VALUES ('','".mysql_escape_string($_POST["login"])."', '".md5($_POST["pass"])."')"; 

if(mysql_query($query))
{
    echo "Пользователь успешно зарегистрирован в системе</font>";
    $res = mysql_query("SELECT MAX(id) FROM `user`");
    while($row = mysql_fetch_array($res))
    {
        $ID_user = $row["MAX(id)"];
    }
    
    for($i=0; $i<9; $i++)
    {
        mysql_query("INSERT INTO `PinCODE` (`code`, `user_id`) VALUES ('".generate_password(4)."','".$ID_user."')");
    }
}
else
{
    echo ">Ошибка при добавлении пользователя в базу данных</font></p>";
}
?>


Это сообщение отредактировал(а) MoLeX - 14.5.2008, 14:06


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
grider
Дата 14.5.2008, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 13.3.2008

Репутация: нет
Всего: нет



MoLeX вроде это. Спасибо за помощь  smile 
PM MAIL   Вверх
MoLeX
Дата 14.5.2008, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 7
Всего: 140



ну ты сначала проверь если то что доктор прописал - тему отмечай, если нет дальше делаем)


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Feldmarschall
Дата 14.5.2008, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 1
Всего: 32



Это не то

Добавлено через 2 минуты и 14 секунд
MoLeX, какой смысл получать единственное значение в цикле?
PM   Вверх
patt
Дата 29.5.2008, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 9.11.2004
Где: Николаев

Репутация: нет
Всего: 2



Код

$res = mysql_query("SELECT MAX(id) FROM `user`");
 - это не есть правильно, иногда новое значение автоинкремента не максимальное, незнаю с чем это связано (может какая то оптимизация), но встречался с таким пару раз.

Добавлено через 3 минуты и 23 секунды
к тому же ты можешь регистрироваться паралельно с кем то и его инсерт выполнится после твоего инсерта, но до твоего селекта, в результате тебе недобавится ничего, а ему 20 вместо 10-и
PM MAIL ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.1282 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.