私はデータベースからすべてのメニュー名を取り出し、それらに近いボタンでsearchresult.phpファイルを用意しています。変数$ nameofmenuを使用してメニューの名前を指定します。 >ボタン(メニューを参照)
メニュー2 - - >ボタン(メニューを参照)
MENU3 -
メニュー1のようなもの>ボタン(メニューを参照)
<?PHP
while($myrow = pg_fetch_assoc($result)) {
$nameofmenu = $myrow[name];
echo $nameofmenu; //It prints correctly the name of the menu
echo '<form name"formname" method="post" action="resultsmenu.php">';
echo "<input type='hidden' name='menuname' value=' $nameofmenu ' />";
echo "<input type='submit' name='submit' value='See Menu' />";
}
?>
それから私は、いずれかのボタンをクリックすると開くresultsmenu.phpファイルがあります。
<?php
$nameofmenu = $_POST['menuname'];
$db = pg_connect('host=localhost dbname=test user=myuser password=mypass');
$query = "SELECT * FROM menu where name='$nameofmenu'";
$result = pg_query($query);
if (!$result) {
echo "Problem with query " . $query . "<br/>";
echo pg_last_error();
exit();
}
$myrow = pg_fetch_assoc($result);
$description = $myrow[description];
?>
私は2つの問題を持っている:
まず問題:searchresult.phpで、でもそれは私が、ボタン、すべてのボタンのいずれかをクリックすると、正しくすべての異なるメニュー名をプリントアウト同じメニューを返します(最後の例、例:$ name_menu = $ _POST ['menuname']; menu 3のresultmenu.phpファイル)。
2番目の問題:この問題は結果メニューに表示されます.phpファイル。メニュー3の場合でも、変数内の値を認識したことを示します。私はクエリから結果や値を返さない:$ query = "SELECT * FROM menu where name = '$ nameofmenu'"; しかし、私が手動で$ nameofmenu = "Menu3"のように値を設定した場合、それは動作します。 私はこのコードを使って、$ _POST ['menuname']から渡された値に異なる値があるかどうかを調べ、手動で入力した値と同じ値になるようにしました。 "両方の変数は同じです"
$nameofmenu2 = "Menu3"; $nameofmenu = $_POST['menuname']; //where the value in menuname is Menu3 if ($nameofmenu2 = $nameofmenu){echo "Both variables are the same";}
あなたは、再びその唯一の「最後の」上書きが利用可能/返された同じ入力フィールド(=名)を超えるとオーバーを上書きそんなに
等価比較は '='ではなく '='で行われます。代入演算は常に 'true'と評価されます。 – David
初心者の方には、フォームを閉じているようには見えません。 – Marcus
私はこの問題がhtmlであると思っています。あなたの入力はすべて同じ名前のプロパティを持っているので、データをPHPに送り返すときに問題を引き起こす可能性があります –