2016-06-28 3 views
0

私はlocalhost:8888/documents/index.phpというウェブサイトを持っています。PHP/MySQL - フォームのないアドレスバーのURLにMySQLデータを追加する方法

このファイルには、ランダムローがMySQLテーブルからロードされます。私は約1000の行を持っていて、それはランダムに1つの行を選択し、その行からいくつかのデータをページに返します。それはで467行を選択した場合たとえば、:hello, George (23 years old)

name = George 
age = 23 
key = fe4v6 

それは私のようなindex.php何かに表示されます。キーは、各行のランダムな一意の変数です。私は欲しい

:私は、アドレスバーに私のURLがキー属性でリフレッシュに自動的を更新したいです。だから私は欲しい:localhost:8888/documents/index.php?key=fe4v6。ページをリフレッシュすると、MySQLデータベース内の対応する行の新しいキー値でURLを更新する必要があります。

私はフォームでは動作しません。私は自分のデータベースとの接続を確立し、ランダムな行にクエリとfetch_assoc()を使用します。多分はるかに簡単に解決策があり、

<?php echo $row['name'] ?> 

私がいかに簡単か、難しいこれは知りません。私のindex.phpで私はこのような名前が表示されます。ありがとうございました!

+1

"refresh"はCURRENT URLをリロードするだけです。ユーザーがアドレスバーに表示するURLを変更できない場合は、リダイレクトする必要があります。 'header( '場所:http://example.com/foo.php?id='。$ newid)' –

答えて

3

迅速な解決策は、それが無限にリダイレクトしないようUNIQUEKEYが、設定されている場合、コードはチェックを初

if(!isset($_GET['UniqueKey'] { 
    header('location: localhost:8888/documents/index.php?UniqueKey='.$row['name']); 
} 

をリダイレクトヘッダを使用することであろう。

+0

ありがとうございますが、まだ動作しません。私はこのコードをどこに置いていますか?私はヘッダーを試して、私はデータベース接続の直後に私のPHPファイルで試した、私は行のデータが結論された後にそれを試してみました。私はまだ 'localhost:8888/documents/index.php'です。私は手動で 'localhost:8888/documents/index.php?key ='に変更しようとしましたが、URLに何も追加しません。それは同じままです。また、私が 'exit;を使うと、私のウェブサイトは完全に空白になります。前もって感謝します! – JuliusSecret

+0

ヘッダーのリダイレクトは出力前にする必要があります。そのため、コードの先頭に配置することをおすすめします。私は私の答えを編集しました、それが今働いているかどうか確認してください。私はそれをローカルでテストすると完全に動作します。 –

+0

クイック返信をありがとう。動作しません。私は何が欠けているのか分からない。私は$ _SESSIONで何も使っていません。多分それが必要なのでしょうか? 私はindex.phpので完全に一番上に呼び出そうとしました。体の中で;データベース接続の直後。接続の前に$ row変数がフェッチされた後に呼び出さなければならないと思いますか?沢山のドラマ.. – JuliusSecret

1

headerは次のように使用できます。行の値をクエリ文字列パラメータとして渡した後に、このスニペットを追加します。

<?php header('Location: localhost:8888/documents/index.php?key='.$row['key']); ?> 
+0

ありがとうございますが、動作しません(まだ)。私はこのコードをどこに置いていますか?私はヘッダーを試して、私はデータベース接続の直後に私のPHPファイルで試した、私は行のデータが結論された後にそれを試してみました。私はまだlocalhost:8888/documents/index.phpです。私もlocalhost:8888/documents/index.php?key =に手動で変更しようとしましたが、URLに何も追加しません。それは同じままです。また、私がexitを使うと、私のウェブサイトは完全に空白です。前もって感謝します! – JuliusSecret

1

公式にrecent browsersをサポートする必要がある場合は、履歴APIを使用できます。

<script> 
    var path = "<?php echo "localhost:8888/documents/index.php?key=".$row['key']; ?>"; 
    var page_title = "Custom Title"; 
    history.pushState({}, page_title, path); 
    document.title = page_title; 
</script> 

これは、このコードがブラウザで実行されると(つまり、ページの読み込み中)、キーを追加するパスを更新します。リロードは必要ありませんので、新しいランダムな行が割り当てられないようにロジックをプログラムする必要はありません。

関連する問題