2012-06-27 100 views
0

我想知道是否有人能夠幫助我。會話變量不再工作

我覺得我需要一雙新鮮的眼睛來看看我有一個我看不到解決方案的問題。

下面的表格用於列出保留在MySQL數據庫中的Location records

<form name="locationsconsole" id="locationsconsole" method="post" action="locationsaction.php"> 

            <?php 

             $query = "SELECT * FROM `table` WHERE `userid` = '$idnum' ORDER BY locationname"; 
             $result = mysql_query($query) or die('error'); 
             $num = mysql_numrows($result); 
             mysql_close($connect);     
             $i=0; 
             while ($i < $num) { 
             $lid=mysql_result($result,$i,"locationid"); 
             $lname=mysql_result($result,$i,"locationname"); 
             $laddress=mysql_result($result,$i,"returnedaddress"); 

          <tr> 
           <td><input type="text" id="lid" name="lid" value="<?=$lid?>"/></td> 
           <td><div align="center"><?php echo $lname;?></div></td> 
           <td><div align="left"><?php echo $laddress;?></div></td> 
           <td><div align="center"><?php echo $findscount?></div></td> 
           <td><div align="center"><input name="type" type="submit" value="View Details"/></div></td> 
           <td><div align="center"><input name="type" type="submit" value="Add Finds"/></div></td> 
           <td><div align="center"><input name="type" type="submit" value="Add Images"/></div></td> 
           <td><div align="left"><input name="type" type="submit" value="View Location Finds"/></div></td> 
          </tr> 

    </form> 

用下面的代碼,在我的形式結束時的四個按鈕將用戶帶到四個獨立的屏幕,經由$lid variable所有鏈接回Location record。因此

<?php session_start(); 
$_SESSION['lid'] = $_POST['lid']; 
if (isset($_POST['type'])) { 
    $urls = array(
     'View Details' => 'viewlocation.php', 
     'Add Finds' => 'addfinds.php', 
     'Add Images' => 'addimages.php', 
     'View Location Finds' => 'locationfinds.php' 
    ); 
    $url = $urls[$_POST['type']]; 
    header("Location: " . $url); 
} 
?> 

所有的四個接收形式具有此$lid = $_SESSION['lid'];在每一頁的頂部,以捕捉該變量。

這個架構在幾天前完美運行,現在它全部出錯,我不知道爲什麼。我知道我的表單中的這個字段<input type="text" id="lid" name="lid" value="<?=$lid?>"/>保持了正確的值。

但是,無論有多少個Locations records,如果我點擊任何按鈕,我都會將其帶到正確的接收屏幕,但始終是列表中的最後一個「位置」記錄。

我只是似乎無法找到我在這裏做錯了什麼,或者明白爲什麼它現在開始導致我的問題。我已經在Chrome中檢查了JavaScript控制檯,這也沒有顯示任何錯誤。

我只是想知道是否有人可以看看這個請讓我知道我要去哪裏錯了。

非常感謝和親切的問候

+2

'$ num = mysql_numrows($ result);'???該函數被稱爲'mysql_num_rows()' –

+1

另外,您正在通過'mysql_close()'關閉連接,然後檢索任何行。 –

+0

嗨@邁克爾,謝謝你幫助我。我已經對代碼進行了修改,以瞭解會發生什麼,並且不幸的是問題仍然在發生。非常感謝和問候 – IRHM

回答

1

您所有的 「蓋子」 的投入是相同的形式。當你提交你的表單時,所有的值都被髮送,只有最後一個進入你的$ _POST數組。將表單標籤移動到你的循環內部(這意味着生成很多表單),它應該可以正常工作。

<?php 

$query = "SELECT * FROM `table` WHERE `userid` = '$idnum' ORDER BY locationname"; 
$result = mysql_query($query) or die('error'); 
$num = mysql_num_rows($result); 
mysql_close($connect); 
$i = 0; 
while ($i < $num) { 
    $lid=mysql_result($result,$i,"locationid"); 
    $lname=mysql_result($result,$i,"locationname"); 
    $laddress=mysql_result($result,$i,"returnedaddress"); 

    ?><form name="locationsconsole" id="locationsconsole" method="post" action="locationsaction.php"> 
     <table> 
      <tr> 
       <td><input type="text" id="lid" name="lid" value="<?=$lid?>"/></td> 
       <td><div align="center"><?php echo $lname;?></div></td> 
       <td><div align="left"><?php echo $laddress;?></div></td> 
       <td><div align="center"><?php echo $findscount?></div></td> 
       <td><div align="center"><input name="type" type="submit" value="View Details"/></div></td> 
       <td><div align="center"><input name="type" type="submit" value="Add Finds"/></div></td> 
       <td><div align="center"><input name="type" type="submit" value="Add Images"/></div></td> 
       <td><div align="left"><input name="type" type="submit" value="View Location Finds"/></div></td> 
      </tr> 
     </table> 
    </form><?php 
} 
+0

嗨@DonatasOlsevičius,我很抱歉有點慢,在這裏,但我相對較新。你能否詳細說明一下更多的答案,告訴我需要移動表單標籤的位置?非常感謝和親切的問候 – IRHM

+0

用您需要的代碼更新了我的文章。 –

+0

嗨@DonatasOlsevičius,非常感謝你。我已經修改了我的代碼,根據你的建議,不幸的是,不是所列的位置,而是一個屏幕上的錯誤,它只是說'錯誤'。非常感謝和親切的問候 – IRHM

1

你有一個錯字:

'mysql_numrows'

應該是:

'mysql_num_rows'

+0

Hi @ maxhud。感謝您幫助我。我已經做出了改變,但不幸的是我仍然有同樣的問題。親切的問候和感謝。 – IRHM