2017-06-02 16 views
0

私はデータベースにデータを送信するためにPHPスクリプトを使用しています。スクリプトが正常に動作しているユーザーをページに移動

<?php 
    session_start(); 
    $correct = true; 

    $_SESSION['user_id']; 
    $firstname = $_POST['firstname'] ; 
    $lastname = $_POST['lastname'] ; 

    if($correct){ 
    $db = new PDO('mysql:host=localhost;dbname=database', 'root', ''); 

    $query = "INSERT INTO names(user_id, firstname, lastname) VALUES (?, ?, ?)"; 
    $stmt = $db->prepare($query); 
    $stmt->execute(array($_SESSION['user_id'], $firstname, $lastname)); 

    header('Location: ../names.php'); 
    } 
    else 
    { 
    echo "<p>Error</p>"; 
    } 
?> 

が、SQL文が実行された後、私は、ユーザーが自分が入力したデータを見ることができるページにユーザーを送信したい:

は、ここに私のスクリプトです。

現在の状態では、スクリプトはユーザをnames.phpに送信しています。ユーザーをnames.php?id=8に送信したいと思います。

idの列は自動インクリメントです。

誰かが実行文のidにどのようにユーザを送信できるか知っていますか?あなたのexcecute後

答えて

2

あなたが最後に取得し、このことにより、IDを挿入し、

$id = $db->lastInsertId(); 

をして、あなたがheaderメソッドに渡すことができます。以下のように、

header('Location: ../names.php?id='.$id); 
+0

文字列連結のための '.'を忘れました。... :) – Catalyst

+0

はい!ありがとう、私は編集しました。 –

3

は行います

header('Location: ../names.php?id='.$db->lastInsertId); 

PDO::lastInsertId

+0

私はあなたが 'ヘッダ( '場所:../names.php?id=' の意味を推測する?します$ db- > lastInsertId); ' – Catalyst

+1

編集しました。ありがとうございました – itay

0

INSERT文の後にテーブルのuser_id = $ _ SESSION [ 'user_idの']から選択IDの別のクエリを実行しようとすることができます。

次に、あなたのリンクNames.phpに上の結果を使用することができ、ID = [選択からの結果]

関連する問題