2014-10-06 165 views
-4

獲得mysql_fetch_array的每一行的變量的值我最近一直在尋找很多,但不能想出解決這個循環的問題的解決方案...
我目前在一個頁面上工作,顯示來自數據庫的交易,並讓您使用按鈕付款。

我做了一個表,並使用while($ row = mysql_fetch_array($ query))在每一行的最後一列放置一個按鈕。
我使用isset,每次按鈕被點擊時,一些會話將存儲對應的行的值...但問題是無論按鈕,我點擊,無論它在第一,第二或第三行的價值,我來自最後一行。

有沒有辦法獲得每行變量的值?這裏是代碼:爲my_reqsubmit.php有沒有辦法使用按鈕

$qry1=mysql_query("SELECT * FROM request WHERE client_id ='".$_SESSION['client_id']."'"); 
       $check = mysql_num_rows($qry1); 
if ($check == 0) { echo "There are no recent transactions to display."; } 
else{ 


       $table = "<table align= 'center' border='1' bordercolor='#ccc' cellpadding='20'>"; 
       $table .= "<tr><th>REQUEST #</th><th>DATE</th><th>TIME</th><th>EVENT</th><th>PRICE</th><th>STATUS</th><th></th></tr>"; 

       while($row = mysql_fetch_array($query)){ 
           print_r($row); 
       $rid = $row['request_id']; 
       $reid = $row['event_id']; 
       $raid = $row['addons_id']; 
       $reprice = $row['request_price']; 
       $redate = $row['event_date']; 
       $retime = $row['event_time']; 
       $restatus = $row['event_status']; 


       if($reid==1 || $reid==2 || $reid==3){ 
       $debut="Standard Debut"; 

       } 
       else { $debut="Kids Party"; 
       } 

      $table .= "<tr><td align = center># ".$rid."</td><td>".$redate."</td><td>".$retime."</td><td align= center>".$debut."</td><td align=center>P".$reprice.".00</td><td align=center>".$restatus."</td>"; 
       if($restatus=='PENDING') 
       { 
       $table .= "<td align=center>"; 
       $table .= "<form method='post'>"; 

       $table .= "<input type='submit' name='btnSubmit' id='btnSubmit' value='Pay' tabindex='0' />   
       </form> 
       </td>"; 
       include "../pages/my_reqsubmit.php"; 
       } 
       else 
       { 
        $table .= "<td align=center>--</td>"; 
       } 

    $table .= "</tr>"; 



    } 

      $table .= "</table>";     




       echo $table; 

代碼:

if(isset($_POST["btnSubmit"])) 
{ 
include("../pages/config.php");  
$URL= "../request/view.php"; 
$_SESSION['RequestUser']="asd"; 
$_SESSION['dtRequest'] = $redate; 
$_SESSION['tmRequest'] = $retime; 
$_SESSION['etype'] = $debut; 
$_SESSION['addons_id'] = $raid; 


if($reid==1){ 
$_SESSION['epack']= "Package A"; 
} 
else if($reid==2){ 
$_SESSION['epack']= "Package B"; 
} 
else if($reid==3){ 
$_SESSION['epack']= "Package C"; 
} 
else if($reid==4){ 
$_SESSION['epack']= "Package A"; 
} 
else if($reid==5){ 
$_SESSION['epack']= "Package B"; 
} 
else if($reid==6){ 
$_SESSION['epack']= "Package C"; 
} 


       $qrry2 = mysql_query("SELECT * FROM addons WHERE addons_id =$raid"); 
       while($row = mysql_fetch_array($qrry2)){ 
$_SESSION['pservice'] = $row['addons_ps']; 
$_SESSION['pbooth'] = $row['addons_pb']; 
$_SESSION['mbar'] = $row['addons_mb']; 
$_SESSION['phprice'] = 3500; 
$_SESSION['pbprice'] = 5000; 
$_SESSION['mbprice'] = 11000; 
} 
    $qrry3 = mysql_query("SELECT * FROM event WHERE event_id =$reid"); 
    while($row = mysql_fetch_array($qrry3)){ 
$_SESSION['eprice'] = $row['event_price']; 
      } 

$_SESSION['price'] = $reprice; 

header ("Location: $URL"); 
    } 
     ?> 

請幫我... ID真的很感激!

+2

請,或不使用'mysql_ *'功能(http://stackoverflow.com/questions/12859942/爲什麼 - 不應該,我使用MySQL的函數功能於PHP)。 *他們不再維護,並[已正式棄用](https://wiki.php.net/rfc/mysql_deprecation)*。看到[紅色框](http://uk.php.net/manual/en/function.mysql-connect.php)?學習[準備的語句](http://en.wikipedia.org/wiki/Prepared_statement),並使用[PDO](http://us1.php.net/pdo)或[MySQLi](http:// us1.php.net/mysqli)。 [這篇文章](http://php.net/manual/en/mysqlinfo.api.choosing.php)將幫助你決定哪些。 – 2014-10-06 13:40:33

+0

我們的按鈕似乎沒有發佈任何對它所在的行的引用。您的後端應該如何知道要更改哪個事務? – ToBe 2014-10-06 13:42:14

+0

@你是對的!原諒我,我完全是一個初學者,編程可以推薦任何我可以使用的方法嗎? – rbyrby 2014-10-06 13:50:03

回答

0

您需要在您的按鈕中包含SOMETHING以將該行的按鈕與匹配的數據庫記錄鏈接起來。我將使用<a>標籤來代替,但完全相同的概念用於按鈕:

<a href="viewrecord.php?id=1">Click here for record #1</a> 
          ^---the ID of the record that this button/link would use 
<a href="viewrecord.php?id=2">Click here for record #2</a> 
<a href="viewrecord.php?id=3">Click here for record #3</a> 
相關問題