2016-03-22 10 views
0

このオンラインの例を見てきましたが、コードが壊れているようです。セッション変数に以下のコードを使用して照会したフィールドを保存したいと考えています。<a>リンクに関連付けられた値をセッション変数として設定する方法

PHP:

<?php 

// Collect input 
// If an input has been given 
if(isset($_POST["aSearch"])) { 
    $searchq = $_POST["aSearch"]; 
    $searchq = preg_replace("#[^0-9a-z]#i","",$searchq); //Can only search words 

// Select records if name's match 
$sql = "SELECT * FROM birdt WHERE birdName LIKE '%$searchq%'"; 
} 

// Tests if connection is made to the db to query it 
if ($conn->query($sql)=== TRUE){ 
    echo "The rows you have searched for are:"; 
} else { 
    echo "Connection failed: "; 
    echo $conn->error; 
} 

// Show fields 
$result = $conn->query($sql); 

// Output data of each row 
if ($result-> num_rows> 0) { 
    readfile("ViewReturn.html"); 
    while($row = $result-> fetch_assoc()) { 
    // redirect the user to a new page 
    echo "<a href='sort.php'> Bird Name: ".$row["birdName"]. "</a><br><br>"; // Important row 
    } 
} else { 
    echo "0 results"; 
} 

?> 

このコードは、ユーザー入力に応じて、データベースから値を返すために使用することができます。それは "birdName"を返し、ユーザが照会結果をクリックして "sort.php"ページに行くことを可能にする。

戻ってきたフィールド "birdName"をセッション変数でクリックする前に一度保存すると、次のページにアクセスできますか?

P.S.私の質問は非常に具体的で、非道であると理解していますが、私は真剣にこれを動作させるのに苦労しています。あなたは、あなたがこのアレイ上にデータベースから各鳥の名前を押して、セッション変数にアレイ内のすべての鳥の名前を保存することができます

session_start(); 

を配置する必要があり、スクリプトの開始時に

+0

'session_start(); $ _SESSION ['var'] = $ x; ' –

+0

@ Fred-ii-助けてくれてありがとうございます。 session_start(); $ _SESSION ['var'] = $ birdName; 割り当てられている値がデータベースのフィールドの場合でもこれは機能しますか? – Bossman

+0

あなたの 'while'ループでは、行をセッション配列に割り当てます。だから、 '$ _SESSION ['var'] = $ row [" birdName "];'種類のものを実行すると 'echo $ var = $ _SESSION ['var']; –

答えて

0

$_SESSION['birdNames'] = array(); 

if ($result-> num_rows> 0) { 
    readfile("ViewReturn.html"); 
    while($row = $result-> fetch_assoc()) { 
    // redirect the user to a new page 
    $_SESSION['birdNames'][] = $row['birdName']; 
    echo "<a href='sort.php'> Bird Name: ".$row["birdName"]. "</a><br><br>"; // Important row 
    } 
} else { 
    echo "0 results"; 
} 

sort.php、すべての鳥の名前を取得するためにセッションを継続するためにsession_start();を使用して、アクセス$_SESSION['birdNames']ことができます。

しかし、これは本当にあなたが望むものではないと思われます。 sort.phpに、ユーザーがクリックした特定の鳥の名前を処理したい場合は、セッション変数を使用しないでください。URL変数にする必要があります。

echo "<a href='sort.php?id=" . $row["id"] . "'> Bird Name: ".$row["birdName"]. "</a><br><br>"; 

その後sort.phpは、ユーザーがクリックした鳥のIDを取得するために$_GET['id']を使用することができます。

+0

助けてくれてありがとう。 URLパラメータに関連して、「$ _GET ['id]」の値を使用して、次の「sort.php」ページでユーザーがクリックした特定のレコードを照会できますか? – Bossman

+0

はい、それは私の答えの最後の行で私が言ったことです。 – Barmar

+0

ありがとう、私はそれを働かせた – Bossman

関連する問題