2013-11-24 2 views
0

У меня есть форма, которая представляет супер базовую информацию, просто новое имя (имя получает уникальный идентификатор). То, что я пытаюсь сделать, - это когда пользователь отправляет имя, которое он отправляет в базу данных, и перенаправляется на новую страницу card.php, где они могут добавлять более конкретную информацию. Однако уникальный идентификатор, связанный со строкой, которая была только информация о компании должна следовать в URL (ID = $ ID)Получите уникальный идентификатор строки, только что вставленной в базу данных

$query = "INSERT INTO name VALUES(NULL, '$name')"; 

mysqli_query($conn, $query); 

$query2 = "SELECT * FROM name ORDER BY id DESC LIMIT 1"; 
$result = mysqli_query($conn, $query2); 

while($row = mysqli_fetch_array($result)) { 
    $id = $row['id']; 
} 

header("Location: http://localhost/card.php?id=$id"); 

Процесс

addName.php -> пользователь отправляет новое имя -> добавить в базу данных -> перенаправление на card.php С уникальным идентификатором только что введенного имени

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

+2

http://us2.php.net/manual/en/ mysq li.insert-id.php Вы даже потрудились читать руководства? –

+0

иногда мы не знаем, какую точную функцию мы ищем бутон, вы не знаете, что еще пытался ive, и что еще искали ive. Простое сообщение ссылки было достаточно достаточно – user934902

ответ

1

Попробуйте использовать mysqli_insert_id, который возвращает AUTO_INCREMENT ID, сгенерированный из предыдущей операции INSERT.

$query = "INSERT INTO name VALUES(NULL, '$name')"; 

mysqli_query($conn, $query); 

$id = mysqli_insert_id(); 

header("Location: http://localhost/card.php?id=$id"); 

Ссылка:http://us1.php.net/manual/en/function.mysql-insert-id.php

+1

он использует MYSQLI не mysql, поэтому ему нужна функция 'mysqli_insert_id' –

+0

. Я понимаю эту функцию на основе быстрого чтения, которое я сделал, это то, что он вытягивает уникальное значение id последней строки вставлен (совершенен). Есть ли причина, по которой она вернет значение NULL, даже если вставка работает нормально и автоматически увеличивается? – user934902

+0

не передавал правильные параметры, получил его сейчас – user934902

1

Вы можете использовать Mysqli функцию, чтобы получить последний вставленный идентификатор (проверьте mysqli_insert_id как предложено в комментариях), но я бы не рекомендовал вам, используя идентификатор пользователя в URL-адрес, люди могут попытаться войти, используя другие идентификаторы

также вы можете использовать функцию PHP для создания обычая проверить: uniqid

Смежные вопросы