【问题标题】:How to get the value of a field in PHP?如何在 PHP 中获取字段的值?
【发布时间】:2017-05-27 20:42:26
【问题描述】:

我需要获取一个字段的值;我认为我的思路是正确的,但不太确定这是正确的代码。 “删除电影”按钮是我试图获取该行的值的地方,如下所示:

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

【问题讨论】:

    标签: php mysql html-table


    【解决方案1】:

    你正在使用它

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

    但这里的问题是:PHP 怎么知道您指的是变量而不是纯 HTML? PHP 为您提供了一个非常方便的工具,可以明确表明您希望在 HTML 中执行 PHP 代码(实际上 纯 PHP 代码不存在,因为任何.php 文件也可以包含 HTML): &lt;?php?&gt; 标签。

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

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

    您使用的是 string concatenation,它的工作原理与此完全相同(使用 . 连接字符串),但在您的情况下是放在 HTML 上下文中。

    【讨论】:

      【解决方案2】:

      你已经提取了$id,直接使用就行了。

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

      您不能在 HTML 标记之间使用 PHP 代码,除非先用标记指定一段新 PHP 代码的开始。

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

      或者

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

      【讨论】:

        【解决方案3】:

        尝试使用内联 echo 标签:

        <?=$id;?>
        

        这种速记样式默认是关闭的,所以如果它不起作用,请改用它:

        <?php echo $id; ?>
        

        【讨论】:

          【解决方案4】:

          嗯...我会稍微改变一下...

          <?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. 使用 PHP 值标签在呈现的 HTML 中插入 id 的方式

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-11-07
            • 1970-01-01
            • 2018-04-03
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多