2013-03-12 3 views
4

У меня есть путаница в отношении логики. Это форма, которую я сначала хочу проверить, а затем хочу сохранить в базе данных, а затем я хочу отобразить ее на другой странице.Сохранение базы данных и извлечение последнего сохраненного значения

Я проверил его (перенос (т. Е. Действие формы) на ту же страницу), я сохранил его в базе данных, и теперь я пытаюсь отобразить данные на другой странице.

Что я думал, что я сохраню данные в db и передам какое-то уникальное значение на другую страницу, возможно, какое-то число автоматически генерируется базой данных, связанной с той же формой.

сейчас у меня проблема, как это сделать? Любые идеи парней?

Поскольку это логика, следовательно, я мечения PHP, MySQL и JS

+0

Вы пробовали mysql_insert_id или mysqli_insert_id.? –

ответ

2

вызов mysql_insert_id() раз вы выполняете INSERT операции что-то вроде этого,

$lastInsertedId = mysql_insert_id(); # Assuming you have an auto increment column in your table. 
header('Location: view.php?id='.$lastInsertedId); 

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

$id = $_GET['id']; 

Примечание: Please, don't use mysql_* functions in new code. Они больше не поддерживаются and are officially deprecated. См. red box? Узнайте о prepared statements вместо этого, и используйте PDO или MySQLi - this article поможет вам решить, какой. Если вы выберете PDO, here is a good tutorial.

+0

Возможно, вам следует включить то, что должно выглядеть таблицей базы данных, чтобы это работало.Похоже, автор об этом не знает. –

+0

@rikesh, но предположим, что есть много пользователей, которые обращаются к этой форме одновременно, от разных ПК и разных ip и говорят, что все они сохраняют значения в db в одно и то же время. Моя цель здесь заключается в том, что человек, который сохранил значение в db, будет видеть свои данные на второй странице. доступ к последнему сохраненному значению даст желаемый результат? – aks

+0

@aks - Да, он может. Прочитайте http://stackoverflow.com/questions/12467111/what-happens-if-mysql-insert-id-called-form-different-places-and-different-brows – Rikesh

1

После ввода запроса, используйте

$lastID = mysql_insert_id(); 

После то вы можете перенаправить на другую страницу, как,

header("location:view_page.php?id=$lastID"); 

чем в view_page.php странице, используйте

$ lastID = $ _GET ['Я бы'];

после этого извлекать запись из базы данных для отображения данных.

ПРИМЕЧАНИЕ. Он будет работать только в том случае, если в вашей таблице базы данных есть автоинкрементное поле в качестве ключа индекса.

1

Использование mysql_insert_id() - это способ. Но если вы не хотите запрашивать свою базу данных и все еще имеете это, тогда вы можете это сделать. Ниже идет пример

<form name="frm" method="POST" action="display.php"> 
<input type="text" name="your_name" value="" /> 
<input type="text" name="age" value="" /> 
<input type="submit" name="save" value="Save" /> 
</form> 

Теперь в вашем display.php страница

<?php 
// DO YOUR DATABASE CONNECTIVITY 
$name = $_POST['your_name']; 
$age = $_POST['age']; 

$query = "insert into table_name values('$name','$age')"; 
if(mysql_query($insert)) { 

?> 
<table> 
<tr> 
    <td>Name</td> 
    <td>Age</td> 
</tr> 
<tr> 
    <td><?php echo $name;?></td> 
    <td><?php echo $age;?></td> 
</tr> 
</table> 
<?php } else { echo "No Insertion"; } ?> 

Запомнить mysql_ * Функция амортизируются. Поэтому избегайте этого. Также проверьте для SQL-инъекции

+0

это показывает такой url ... http: //localhost/test/page1.php? Id = 9 Я вытаскиваю значения из db, используя это значение ... и если пользователь пытается изменить id = 9 на id = 12 или 7 или 5 или 7 в адресной строке, то что произойдет? – aks

+0

@aks: Не показывать такой тип URL. Поскольку это форма отправки типа POST. URL-адрес, который вы показали выше, передает параметр через URL-адрес. Используйте метод POST в методе формы, чтобы избежать такой ситуации. – Roger

+0

извините .. Я отправил вам неправильный вопрос .. Я не могу использовать ваш метод, поскольку я не могу передать значения непосредственно на эту страницу. Мне приходится возвращать ценности на одну страницу из-за проблем с проверками ... поэтому мне нужно передать значения только через метод url ... – aks

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