2010-03-25 102 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内容。