如何在PHP中获取字段的值?

时间:2010-03-25 11:02:27

标签: php mysql html-table

我需要获得一个字段的值;我想我是在正确的路线,但不太确定这是正确的代码。 “删除电影”按钮是我试图获取该行的值的地方:

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>";
?>

4 个答案:

答案 0 :(得分:1)

您正在使用它

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

但问题是:PHP如何知道您指的是变量而不是纯HTML? PHP为您提供了一个非常方便的工具,使您明确表示要在HTML中执行PHP代码(实际上纯PHP 代码不存在,因为任何.php文件也可以包含HTML) :<?php?>代码。

我很确定你知道我在说什么,因为你已经正确地使用了它们。因此,只需更改以上行:

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

您使用的是字符串连接,其工作方式与(.连接字符串完全相同)但在您的情况下放在HTML上下文中。

答案 1 :(得分:0)

尝试使用内联回显标记:

<?=$id;?>

默认情况下,此速记样式已关闭,因此如果不起作用,请改用:

<?php echo $id; ?>

答案 2 :(得分:0)

您已经提取了$ id,只需直接使用它即可。

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

如果没有首先使用标记指定新的PHP代码的开头,则不能在HTML标记之间使用PHP代码。

$ row只是一个整数,但你试图像数组一样使用它。您没有将一行的内容分配给$ row,而只是当前的行号。

可选地

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

答案 3 :(得分: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. 使用关联数组获取字段值的方式
  4. 使用PHP值标记
  5. 在呈现的HTML中插入id的方式