0
$sql=mysql_query("SELECT * FROM feedback.subject WHERE branch='cse'");
$row = mysql_fetch_assoc($sql) or die("error : $sql" .mysql_error());
$data =array();
$n=mysql_num_rows($sql);
while($row = mysql_fetch_array($sql))
    {
$query_result_array[]=$row;
}

    for($i=0;$i<$n;$i++)
        {
            $subid=$query_result_array[$i]['subid'];
            $bt =$query_result_array[$i]['batch'];
            $y =$query_result_array[$i]['year'];
            $s = $query_result_array[$i]['semister'];
            $subname=$query_result_array[$i]['subname'];
            $tid = $query_result_array[$i]['tid'];
 $sql2=mysql_query("SELECT * FROM teacher WHERE teacher.tid='$tid'");
            $row2 =mysql_fetch_array($sql2);
            $tname= $row2['tname'];
echo "<table id='table'>";
echo "<tr>";
echo "<td>".$bt."</td>";
echo "<td>CSE</td>";
echo "<td>".$y."</td>";
echo "<td>".$s."</td>";
echo "<td style='width:150px'>".$subname."</td>";
echo "<td style='width:150px'>".$row2['tname']."</td>";
echo '<form methode="get">
      <input type="hidden" name="report">
      <input type="submit" value="report">
      </form>';
echo "</tr>";
echo "</table>";


}


function handler($x,$y){
            session_regenerate_id();
            $_SESSION['SUBID']=$x;
            $_SESSION['TID']=$y;
            echo '<a href="report.php" target="_blank">report</a>';
}
      if(isset($_GET["report'$i'"]))
       {
      handler($query_result_array[$i]['subid'], $query_result_array[$i]['tid']);
      unset ($_GET["report"]);
        }

}





this results a table like
BATCH | BRANCH | YEAR | SEMISTER | SUBJECT NAME | TEACHER NAME |     ACTION    |
-------------------------------------------------------------------------------
 9      CSE      4       1           DBMS         ABC           REPORT
 9      CSE      4       1           WT           XYZ           REPORT
-------------------------------------------------------------------------------

行のレポートをクリックすると ('ABC' 先生)、詳細 ('ABC' と 'DBMS') を実行してさらに処理したいとします。ただし、ループ内の最後の人物の詳細を常に保持しています (ここでは「XYZ」と「WT」)。それを取得する方法は?特定の行の詳細を運ぶ特定の行のハンドラー関数を呼び出すことができる代替プロセスはありますか。

4

1 に答える 1

0

クエリ結果配列をループするだけで、その中に、名前が探しているものであることを検出する if を配置します。ループ。

テーブル内の位置でフェッチしている場合は、ループする必要さえありません。 $specific_person_data = $query_result_array[$i]...

これで、データ テーブルの位置 $i にいる人物に関するすべてのデータが含まれます。

リンクの更新:

各人のデータは、次のようなリンクを介して別のページに渡すことができます:

linkadress.php* ?var1=X&var2=Y&var3=Z... *

$_POST['var1']、$_POST['var2'] などを使用して、もう一方の端で取得します。

データを直接エコーしたり返したりしないように注意してください。

また、機密データの処理と基本的なセキュリティに関する私の記事は次のとおりです。

http://metaphorical-lab.com/blog/?p=443

于 2013-03-03T14:07:28.207 に答える