2010-03-25 100 views
0

我需要得到一個字段的值;我認爲我沿着正確的路線,但不太清楚這是否是正確的代碼。 「刪除電影」按鈕是我試圖獲得該行的值,如下所示:如何獲取PHP中字段的值?

value="'.$row['id'].'" 

你能幫忙嗎?

<?php 
//connect to database 
mysql_connect($mysql_hostname,$mysql_user,$mysql_password); 
@mysql_select_db($mysql_database) or die("<b>Unable to connect to specified database</b>"); 
//query databae 
$query = "select * from movielist"; 
$result=mysql_query($query) or die('Error, insert query failed'); 
$row=0; 
$numrows=mysql_num_rows($result); 
echo "<table border=1>"; 
echo "<tr> 
    <td>ID</td> 
    <td>Type</td> 
    <td>Title</td> 
    <td>Description</td> 
    <td>Imdb URL</td> 
    <td>Year</td> 
    <td>Genre</td> 
    <td>Actions</td> 
    </tr>"; 
while($row<$numrows) 
{ 
$id=mysql_result($result,$row,"id"); 
$type=mysql_result($result,$row,"type"); 
$title=mysql_result($result,$row,"title"); 
$description=mysql_result($result,$row,"description"); 
$imdburl=mysql_result($result,$row,"imdburl"); 
$year=mysql_result($result,$row,"year"); 
$genre=mysql_result($result,$row,"genre"); ?> 

    <tr> 
    <td><?php echo $id; ?></td> 
    <td><?php echo $type; ?></td> 
    <td><?php echo $title; ?></td> 
    <td><?php echo $description; ?></td> 
    <td><?php echo $imdburl; ?></td> 
    <td><?php echo $year; ?></td> 
    <td><?php echo $genre; ?></td> 
    <td> 


<!-- Delete Movie Button --> 
<form style="display: inline;" action="delete/" method="post" onsubmit="return movie_delete()"> 

<input type="hidden" name="moviedeleteid" value="'.$row['id'].'"> 

<button type="submit" class="tooltip table-button ui-state-default ui-corner-all" title="Delete trunk"><span class="ui-icon ui-icon-trash"></span></button> 
</form> 


    </td> 
    </tr> 
<?php 

$row++; 
} 
echo "</table>"; 
?> 

回答

0

嘗試使用內聯回聲標籤:

<?=$id;?> 

這速記風格是默認關閉的,所以如果它不工作,而是使用這樣的:

<?php echo $id; ?> 
0

你已經提取了$ id,直接使用它。

<input type="hidden" name="moviedeleteid" value="<?php echo $id>"> 

如果沒有首先指定帶有標記的新代碼的開始,您不能在HTML標記之間使用PHP代碼。

$ row只是一個整數,但您正在嘗試像數組一樣使用它。您沒有將一行內容分配給$行,而只是將當前行號分配給$行。

或者

while ($row = mysql_fetch_assoc($result) 
{ 
    echo $row['id']; 
} 
0

嗯...我會改變一點點......

<?php 
//connect to database 
mysql_connect($mysql_hostname,$mysql_user,$mysql_password); 
@mysql_select_db($mysql_database) or die("<b>Unable to connect to specified database</b>"); 
//query databae 
$query = "select * from movielist"; 
$result = mysql_query($query) or die('Error, insert query failed'); 
$row=0; // ??? 
$numrows=mysql_num_rows($result); 
echo "<table border=1>"; 
echo "<tr> 
    <td>ID</td> 
    <td>Type</td> 
    <td>Title</td> 
    <td>Description</td> 
    <td>Imdb URL</td> 
    <td>Year</td> 
    <td>Genre</td> 
    <td>Actions</td> 
    </tr>"; 
while($row = mysql_fetch_assoc($result)) 
{ 
    $id = $row["id"]; 
    //... and so on ?> 

    <tr> 
    <td><?= $id; ?></td> 
    <!-- and so on --> 
    <td> 


<!-- Delete Movie Button --> 
<form style="display: inline;" action="delete/" method="post" onsubmit="return movie_delete()"> 

<input type="hidden" name="moviedeleteid" value="<?= $id ?>"> 

<button type="submit" class="tooltip table-button ui-state-default ui-corner-all" title="Delete trunk"><span class="ui-icon ui-icon-trash"></span></button> 
</form> 


    </td> 
    </tr> 
<?php 

$row++; 
} 
echo "</table>"; 
?> 

我改變:

  1. 您通過while()行迭代的方式
  2. 您使用關聯獲取字段值的方式略去陣列
  3. 您使用
1

您正在使用它像

<input type="hidden" name="moviedeleteid" value="'.$row['id'].'"> 

但這裏的問題是,PHP值標籤插入呈現的HTML標識方式:怎樣才能PHP知道你是指一個變量而不是純HTML? PHP爲您提供了一個非常方便的工具,使其明確表示您要在HTML中執行PHP代碼(實際上純PHP代碼不存在,因爲任何.php文件也可以包含HTML):<?php?>標記。

我很確定你知道我在說什麼,因爲你已經正確地使用了它們。因此,只要改變上述行:

<input type="hidden" name="moviedeleteid" value="<?php echo $row['id']; ?>"> 
//            ^^^^^ ^^^^   ^^^ 

你使用什麼字符串連接其工作原理完全一樣(有.連接字符串),但在你的情況都裝在一個HTML內容。