我不知道我做错了什么......
我的代码是:
<?php
if ( isset($_GET['uredi'])) {
$id = $_GET['uredi'];
$sql = mysqli_query($link, "SELECT * FROM changelog");
$row = mysqli_fetch_array($sql);
}
?>
<div class="container main">
<div class="row">
<div class="page-header">
<h1>Changelog <small><a href="dodaj" title="dodaj"><div class="btn btn-danger btn-xs">Dodaj</div></a></small></h1>
</div>
<form role="form" action="includes/dodaj-changelog.php" method="post" accept-charset="utf-8">
<textarea name="vsebina"><?php echo $row['vsebina']; ?></textarea>
<input type="hidden" name="id" value="<?php echo $row['id']; ?>">
<button type="submit" style="margin-top: 20px" class="btn btn-primary">Dodaj</button>
</form>
</div>
</div>
它总是给我错误:注意:未定义的变量:第19行的C:\ wamp \ www \ ocene \ uredi.php中的行调用堆栈#TimeMemoryFunctionLocation 10.0000142728 {main}().. \ uredi.php:0 “&GT;
但是定义了$ row ......
答案 0 :(得分:1)
注意,您只在if块中定义$row
,只有在您访问“uredi.php?uredi=SOMETHING
”或以其他方式将uredi作为GET参数传递时才会执行。{ / p>
为什么需要if块,uredi参数代表什么?
答案 1 :(得分:1)
您的问题是,如果$ _GET ['uredi'] isset ,您只定义$row
- 在这种情况下,请将第19行更改为:
<input type="hidden" name="id" value="<?php echo (isset($row['id'])) ? $row['id'] : ''; ?>">
...和其他变量一样。如果您想要字段的默认值,请将它们放在该代码的''
部分。
答案 2 :(得分:0)
如果你改变了怎么办:
<form ... action="includes/dodaj-changelog.php" ... >
要
<form ... action="includes/dodaj-changelog.php?uredi=<?php echo $row['id'];?>" ... >
,其余的保持不变。
当您提交表单时,不知怎的,它会忘记&#34;它正在处理的sql表中的哪一行,以及使用$_GET['uredi'];
这样的方式获得的数据我确保再次获得uredi(表中的id - 唯一值,用于标识您需要的特定行并在执行SELECT时保留它。
试一试。它对我来说是一个UPDATE查询场景。