2012-03-26 2 views
1

私はここで問題は解決できません。私は、国、場所、価格などの実体を持つ家屋のデータベースを持っています。私はテーブル内の国だけを使って印刷します: while ($data = mysql_fetch_array($select)) ここで、$ selectはdbの特定のデータを選択するクエリです。選択したdbデータの完全な情報を、作成した別のページに表示したい。問題は、ユーザーが選択したデータの価格をどのように取るかわからないことです。私が$_SESSION['counter']の価格を得ると、dbの最後のエンティティの番号です。 。私はジャバスクリプトなどを使用したくないここではページのコードは次のとおりです。ユーザの選択に基づいてページに異なるmysqlデータを組み込みます

<?php 
require_once 'php/core.php'; // opens the database 
require_once 'php/openDB.php'; // starts the new session 


$select = mysql_query("SELECT ID, Country, City FROM Houses"); 
$counter = 1; 

echo "<form action='house_profile.php' method='get'> 
    <table width='400'> 
    <tr> 
    <td>No.</td> 
    <td>Country</td> 
    <td>City</td>"; 
    echo "<tr>"; 

while ($data = mysql_fetch_array($select)) 
{ 
    echo "<tr>"; 
    echo "<td>" . $counter . "</td>"; 
    echo "<td>" . $data['Country'] . "</td>"; 
// echo "<td>" . "<a href='house_profile.php' type='submit' value='$counter'>" . $data['City'] . "</a>" . "</td>"; 
    echo "<td>" . $data['City'] . "</td>"; 
    echo "<td><input type='submit' value='info' name='" . $counter . "'></td>"; 
    echo "</tr>"; 
    $_SESSION['counter'] = $counter; 
    $counter++; 
} 
echo "</table> 
    </form>"; 
    ?>` 

答えて

0

説明: house_profile.phpに値を渡すには?クエリーストリングを開始し、次に変数名と値を入力します。 idをhouse_profileに渡したい場合、リンクは次のようになります。

"<a href='house_profile.php?ID=" . $data['ID'] . "'>" 

その後、house_profile.phpで、彼らが利用できるようになりますクリックこの

$select = mysql_query("SELECT * FROM Houses where ID = " . $_GET['ID']); 

今だけのエンティティのようなクエリを更新します。

FYI $カウンタは単なるカウントであり、必ずしもエンティティのIDである必要はありません。例えばID 1を削除すると、レコードはID 2から開始されますが、カウンタは常に1から始まります。したがって、エンティティを正しく参照するには、データベースIDを使用します。

+0

同じ問題がまだ発生していることがわかります。私の問題は、ユーザーがエンティティを選択するたびに、このエンティティをhouse_profile.phpに表示することです。 – Eristikos

+0

あなたの最初の答えのコードに基づいて(私は第2をまだチェックしていませんでした)、私はその問題が解決したと言わなければなりません。 1つの質問は、私はPHPに新しいです。 $ _GET ['user_price']は、ユーザーが最初のページでクリックしたデータの名前を示します。 – Eristikos

+0

end link.php?variable1 = value1&variable2 = value2でこの形式のリンクにクエリ文字列を追加すると、$ _GET ['variable1']と$ _GET ['variable2']を使用して次のページでそれらの値を取得できます。したがって、IDをリンクに追加すると、表示されるすべてのリンクに問題の家の一意のIDが含まれ、結果をフィルタリングするのに使用できます。または、代わりに価格を渡して、希望の価格を持つすべての家を表示したり、市を通過したり、その都市のすべての家を表示したりすることができます。楽しむ! – user1289347

0

あなたのクエリは、データベースから各家のIDを取得しますが、(私はあなたのコードを理解していない限り)、この表示されません。ユーザーが家を選択すると、あなたは、このような

select price 
from houses 
where id = :ID 

として、IDを取得し、別のクエリでこれを使用する必要があり、家のIDとは対照的に、現在、あなたは、フォーム上のラインカウンタを表示している - これはなぜあなたが書くのかを説明します...

$ _SESSION ['counter']の価格は、そのデータベースの最後のエンティティの番号です。

行カウンタの値を家のIDではなく2番目のクエリに渡しています。

+0

はい私はそれを知っています。問題は、各エンティティの現在の番号または$カウンタを取得する方法です。たとえば、ユーザーが2番目のエンティティを選択する場合、$カウンタは2、5の場合は5になります。 – Eristikos

関連する問題