2013-11-04 57 views
0

問題:如何解決我在處理會話時遇到的問題,因爲它返回的值不正確。 情況:我在表中有這個會話變量的問題。我使用while循環將數據從數據庫添加到表中。這裏是我的代碼:PHP會話得到正確的值

    <form action="edit2.php" method="get"> 
          <?php 

        $link = mysql_connect("localhost", "root", "root"); 
        mysql_select_db("ispot", $link); 

        $result4 = mysql_query("SELECT * FROM user_ispot", $link); 
        $num_rows = mysql_num_rows($result4); 


       $result = mysqli_query($con,"SELECT * FROM complaints"); 

        echo "<table border='1'> 
        <tr> 
        <th>Id Number</th> 
        <th>Category</th> 
        <th>Problem</th> 
        <th>Date Reported</th> 
        <th>Complaint ID </th> 
        <th>Action</th> 
        </tr>"; 

      while($row = mysqli_fetch_array($result)) 
      { 

       echo "<tr>"; 


       echo "<td name=id_num>" . $row['id_number'] . "</td>"; 
       $_SESSION['favcolor'] = "$row[id_number]"; 
       echo "<td name=remarks>" . $row['remarks'] . "</td>"; 
       echo "<td name=status>" . $row['status'] . "</td>"; 
       echo "<td name=date>" . $row['date_reported'] . "</td>"; 
       echo "<td>" . "<INPUT TYPE = text Name = cid VALUE = " . $row['complaint_id'] . ">" . "</td>"; 
       echo "<td>" . "<INPUT TYPE = Submit Name = Submit1 VALUE =Edit>" . "</td>"; 
       echo "</tr>"; 

      } 
        echo "</table>" ;?> 

它看起來是這樣的: enter image description here

正如你所看到的,有編輯按鈕,在那裏我可以編輯表中的特定行。 當我按下編輯按鈕,這將顯示:

enter image description here

注意,用戶ID是錯誤的,我能做些什麼來解決這個問題?因爲這裏發佈的用戶標識是插入表中的最後一個user_id。

這裏是我的第二圖像代碼:

<b>Date:</b> <input type='text' name='today' placeholder='<?php echo $today ?>' disabled='disabled'> <br><br> 
    <b>User ID:</b> <input type='text' disabled='disables' name='userid' placeholder='<?php 

       //$comid = $_GET["cid"]; 
       //echo $userid; 
       echo $_SESSION['userid']; 

       //$result = mysqli_query($con,"SELECT * FROM complaints WHERE id = XXX"); 
       //$row = mysqli_fetch_assoc($result); 
       //print_r($row); 


        //$result2 = mysql_query("SELECT * FROM complaints WHERE complaint_id = '$comid'", $link); 
        //$result2 = mysql_query("SELECT * FROM complaints", $link); 
        //while($row = mysql_fetch_assoc($result2)) 
        //{ 
        //echo $row['id_number']; 

        //} 


      ?>'></br><br> 

任何幫助,將不勝感激。謝謝。

+1

不要使用會話,這對你想做的事完全不恰當的。將單擊編輯按鈕的行的相應ID發送到服務器。 –

+0

您正在循環的每次迭代中設置SESSION變量。所以當循環結束時,該值被設置爲最終迭代的值。 – andrewsi

+0

@AnthonyGrist先生,我也試過不使用會話,但仍然是同樣的問題。 。 – ms061210

回答

0

我取代了按鈕,鏈接,用它來傳遞值單擊編輯時,趕上與獲得的價值,它爲我工作。

在edit.php

echo "<td> <a href = 'edit2.php?id=$num_id'>Edit</a></td>"; 

在edit2.php

$id = $_GET['id']; 

<b>User ID:</b> <input type='text' disabled='disables' name='userid' value = '<?php echo $id;?>'></input type> 
0
$result2 = mysql_query("SELECT * FROM complaints WHERE complaint_id = '$comid'", $link); 
$result2 = mysql_query("SELECT * FROM complaints", $link); 

必須使用只是其中之一這一行。我認爲問題是第二排。該查詢不選擇「comid」的「id」。

第一個查詢行就夠了:

$result2 = mysql_query("SELECT * FROM complaints WHERE complaint_id = '$comid'", $link); 
+0

嗨,先生,所以...我將我的代碼更改爲我之前的代碼,但仍然給出了相同的結果。'$ comid = $ _GET [「cid」]; $ result2 = mysql_query(「SELECT * FROM complaints WHERE complaint_id ='$ comid'」,$ link); \t \t \t \t \t \t // $ result2 = mysql_query(「SELECT * FROM complaints」,$ link); \t \t \t \t \t \t而($行= mysql_fetch_assoc($ RESULT2)) \t \t \t \t \t \t { \t \t \t \t \t \t回波$行[ 'ID_NUMBER']; \t \t \t \t \t \t \t \t \t \t \t \t}' – ms061210

+0

嗯......請嘗試'mysql_fetch_array',而不是'mysql_fetch_assoc' –