1

我一直在尝试开发一个房地产页面,人们可以在其中添加列表。我是 php mysql 世界的新手。我已经解决了这个问题超过一天,无法弄清楚问题出在哪里。我有一个表格,人们可以在其中添加数据。这很好而且工作。现在我开始有一个人们可以添加/删除/更新他们的信息的地方。我正在尝试逐步构建这个。

这是用户可以提取信息的地方。我的问题是这段代码:

edit_form.php?idBAR=$row[id]. 

完整代码如下。

<table>
  <tr>
    <td align="center">EDIT DATA</td>
  </tr>
  <tr>
    <td>
      <table border="1">
      <?php
      include"configS_OH.php";//database connection
      $order = "SELECT * FROM braaasil_brokerstour.property";
      $result = mysql_query($order);
      while ($row=mysql_fetch_array($result)){
          echo ("<tr><td>$row[id]</td>");
        echo ("<td>$row[address]</td>");
        echo ("<td>$row[day]</td>");
        echo ("<td>$row[hours]</td>");
        echo ("<td><a href=\"edit_form.php?idBAR=$row[id]\">Edit</a></td></tr>");
      }
      ?>
      </table>
    </td>
   </tr>
</table>

然后本教程尝试通过地址栏传递id(我对php了解不多实际说的不多)

它尝试将数据上传到人们可以编辑信息的新表单中。但我无法将数据加载到新表单中。如果我使用 where id=7,我会在表单中获取信息。但是这种在地址栏中传递信息(如 ?idBAR=8...)然后尝试在其他代码(其中 id=$idBAR)中捕获它的方法不起作用。这是代码:

<table border=1>
  <tr>
    <td align=center>Form Edit Employees Data</td>
  </tr>
  <tr>
    <td>
      <table>
      <?php
      include "configS_OH.php";//database connection
      print $database;
      $order = "SELECT * FROM braaasil_brokerstour.property 
WHERE id='$idBAR'";
print $idBAR;
      $result = mysql_query($order)  or die( mysql_error() );
      $row = mysql_fetch_array($result);

      ?>
      <form method="post" action="edit_data.php">
      <input type="hidden" name="idBAR" value="<?php echo "$row[id]"?>">
        <tr>        
          <td>Address</td>
          <td>
            <input type="text" name="address" 
        size="20" value="<?php echo "$row[address]"?>">
          </td>
        </tr>
        <tr>
          <td>Date</td>
          <td>
            <input type="text" name="day" size="40" 
          value="<?php echo "$row[day]"?>">
          </td>
        </tr>
        <tr>
          <td>Time</td>
          <td>
            <input type="text" name="time" size="40" 
          value="<?php echo "$row[hours]"?>">
          </td>
        </tr>
        <tr>
          <td align="right">
            <input type="submit" 
          name="submit value" value="Edit">
          </td>
        </tr>
      </form>
      </table>
    </td>
  </tr>
</table>

我尝试了一次又一次尝试.. 提前感谢您的时间。

4

4 回答 4

1
WHERE id='$idBAR'

你还没有分配$idBAR任何价值。您需要先从 $_GET 数组中读取它:

$idBAR = $_GET['idBAR'];

当然,您应该首先检查该值是否存在,并且是否可以接受。

于 2013-08-25T02:41:55.707 回答
1

我没有看到您实际使用过 GET 数据的任何地方,只有在 GET 中使用的参考名称。

如果您的第一个查询正常工作并且获得的$row['id']值正常 - 您可以在转到 edit_form.php 时验证这一点,在顶部的浏览器 URL 栏中,它是否显示:

edit_form.php?idBAR=7

(或任何应该有的数字)

如果是这样,那么您只需要使用 PHP GET。您的数据存储在 中$_GET[],在这种情况下,参考名称是 idBAR。因此,您来自上一页查询的 id 通过链接发送到您的 URL,在您的 edit_form.php 页面上,您将使用该数据:

$_GET['idBAR']

您可以使用它,但我个人将数据分配给一个变量,例如:

$strGetId = $_GET['idBAR'];

然后您可以$strGetId在整个代码中使用。另外,检查诸如等之类的东西isset()empty()这样您就知道您正在使用A)确实存在某些东西,并且B)它不是空的等

于 2013-08-25T02:46:23.670 回答
1

如果您将变量直接放入字符串中而不进行连接,则它不能是数组变量;你必须连接那些你也需要surr。所以这

echo ("<td><a href=\"edit_form.php?idBAR=$row[id]\">Edit</a></td></tr>");

应该是这个

echo ("<td><a href=\"edit_form.php?idBAR=".$row['id']."\">Edit</a></td></tr>");

此外,您的表单似乎正在使用 POST 发送数据。当您在问号后的 url 字符串中传递表单数据时,即使用 get 传递。

所以...在您要使用该变量的表单中,您可以像这样设置它

$idBAR=$_GET['idBAR']; //to get the variable if it was part of the URL

$idBAR=$_POST['idBAR']; //if it was sent with post, as is the case with your form

另外,request 包含 get 和 post,所以

$idBAR=$_REQUEST['idBAR'];

在任何一种情况下都可以使用。

于 2013-08-25T02:48:04.063 回答
0

问题是 $row[id] 就像其他所有内容一样被视为文本。你想要 $row[id] 的值。代替

echo ("<td><a href=\"edit_form.php?idBAR=$row[id]\">Edit</a></td></tr>");

尝试

echo ("<td><a href=\"edit_form.php?idBAR=" . $row[id] . "\">Edit</a></td></tr>");
于 2013-08-25T02:45:41.283 回答