我有这个表:(megaoverzicht.php)(我省略了它连接到数据库的部分)
echo "<table border='1'><tr><th>Formulier Id</th><th>Domeinnaam</th><th>Bedrijfsnaam</th><th>Datum</th><th>Periode</th><th>Subtotaal</th><th>Dealernaam</th><th>Offerte Maken</th></tr>";
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['formuliernummer'] . "</td>";
echo "<td>" . $row['domeinnaam'] . "</td>";
echo "<td>" . $row['bedrijfsnaam'] . "</td>";
echo "<td>" . $row['datum'] . "</td>";
echo "<td>" . $row['periode'] . "</td>";
echo "<td> € " . $row['subtotaal'] . "</td>";
echo "<td>" . $row['dealercontactpersoon'] . "</td>";
echo "<td><a href='offertemaken.php?id=" . $row->id . "'>Offerte Maken </a></td>";
echo "</tr>";
}
echo "</table>";
mysqli_close($con);
?>
当用户单击 Offerte Maken 时,我想打开 offertemaken.php。它需要使用该行(id)中的数据打开表单。
这是来自(offteremaken.php)的代码(我省略了它连接到数据库的部分)
<?php
$id=$_POST['id'];
$data = 'SELECT * FROM cypg8_overzicht WHERE id="$id"';
$query = mysqli_query($con,$data) or die("Couldn't execute query. ". mysqli_error());
$data2 = mysqli_fetch_array($query);
?>
<form>
<div class="formcontainer" onmousemove="">
<input type="text" name="datum" id="datum" value="<?php echo $data2[datum]?>">
<input type="text" name="formuliernummer" id="formuliernummer" value="<?php echo $data2[formuliernummer]?>">
<input type="text" name="periode" id="periode" value="<?php echo $data2[periode]?>">
<input type="text" name="domeinnaam" id="domeinnaam" value="<?php echo $data2[domeinnaam]?>">
<input type="text" name="bedrijfsnaam" id="bedrijfsnaam" value="<?php echo $data2[bedrijfsnaam]?>">
<input type="text" name="dealercontactpersoon" id="dealercontactpersoon" value="<?php echo $data2[dealercontactpersoon]?>">
</div><!--/.formcontainer-->
</form>
我无法让它工作。我错过了一些我认为的东西!我在下面的代码中出错:
echo "<td><a href='offertemaken.php?id=" . $row->id . "'>Offerte Maken </a></td>";
$id=$_POST['id'];
$data = 'SELECT * FROM cypg8_overzicht WHERE id="$id"';
我一直在看很多教程,但无法理解我做错了什么。这是一个列表,表明我不仅在问,而且实际上一直在自己寻找解决方案。
http://www.daniweb.com/web-development/php/threads/341921/-php-mysqli-update-database-using-id-syntax-help-requested- http://www.codeofaninja.com/2012 /01/phpmysqli-update-record.html
我看了很多,但我不想用一长串的链接来打扰你们所有人。我不允许,因为我的代表不够大!请不要对我投反对票!
问题 当用户点击 Offerte Maken 时,我想打开 offertemaken.php。它需要使用该行(id)中的数据打开表单吗?
编辑 1 接近最终结果 我发现(感谢 Cuba32)megaoverzicht.php 中的链接什么也没做,所以我更改了以下内容
<a href='offertemaken.php?id=" . $row->id . "'>
至
<a href='offertemaken.php?id=" . $row['id'] . "'>
现在它正在创建这些类型的链接:
某事/formulieren/overzichten/offeremaken.php?id=24
这是一件好事(我认为),但打开的表格是空白的,所以 offertemaken.php 对 id 没有任何作用???
编辑 2(感谢 Cube32)
从昨天开始,代码发生了很大变化。我相信 megaoverzicht.php 已经完成,它会按照编辑 1 中的描述发送链接。唯一的问题是在 offertemaken.php 中知道。下面我将输入代码。
$con = mysqli_connect($server,$username,$password,$database);
if (!$con){
die('Could not connect: ' . mysqli_error($con));
}
mysqli_select_db($con,$database);
$id=$_GET['id'];
if($data = mysqli_prepare($con, 'SELECT * FROM cypg8_overzicht WHERE id="?"'))
{
/* bind parameters for markers */
mysqli_stmt_bind_param($data, "s", $id);
/* execute query */
mysqli_stmt_execute($data);
$data2 = mysqli_stmt_fetch($data);
但是这段代码给了我以下错误。
警告:mysqli_stmt_bind_param():变量数与第 31 行准备好的语句中的参数数不匹配。第 31 行:
mysqli_stmt_bind_param($data, "s", $id);
我不知道如何解决这部分。我当然会在互联网上寻找解决方案,但如果有人知道,请发布。提前致谢。
编辑 3 <= 没有更多错误(感谢您的常识)
通过更改WHERE id="?"'
为WHERE id=?'
i 不再有错误。但它仍然没有在输入字段中显示任何内容
编辑 4 <= 混淆并返回原始代码。
感谢所有让我到目前为止的人。但是我再也看不到森林了。我将回到原始代码并尝试解决该问题。所以现在的代码如下:
$id=$_GET['id'];
$data = 'SELECT * FROM cypg8_overzicht WHERE id="$id"';
$query = mysqli_query($con,$data) or die("Couldn't execute query. ". mysqli_error());
$data2 = mysqli_fetch_array($query);
error_reporting(E_ALL);
但这会在输入字段中出现以下错误:
注意:使用未定义的常量formuliernummer -在第37行的offertemaken.php中假定为“formuliernummer”
此错误适用于所有输入字段。
编辑 5
通过更改<?php echo $data2[formuliernummer]?>
为解决了这个问题,<?php echo $data2['formuliernummer']?>
但它仍然没有显示信息。
编辑 6 解决方案
我在下面的问题中添加了答案。只需寻找 HennySmafter 写的答案。
谢谢:
Cube32,SITDGNymall,你的常识。感谢大家帮助我找到解决方案。