我无法显示数据库中的数据到页面 并获得
注意:未定义的变量:id
这是我的代码
<?php
if (isset( $_GET[ 'id' ] ) ) {
$id = $_GET[ 'id' ];
}
$query2 ="select * from video where vid='$id'";
$sql2 = mysqli_query( $con, $query2 );
$row2 = mysqli_fetch_assoc( $sql2 );
?>
<iframe src="https://www.youtube.com/embed/<?php echo $row2['link'];?>" height="300" width="400" scrolling="no" frameborder="0"></iframe>
<h1>
<?php echo $row2['title'];?>
</h1>
<p>
<?php echo $row2['description'];?>
</p>
0){
while($ row4 = mysqli_fetch_array($ sql)){
?>
<div class="comment">
<p>
<?php echo $row4['comment'];?>
</p>
<p>
<?php echo "From ". $row4['uid'];?>
</p>
</div>
<?php
}
}
if ( isset( $_POST[ 'submit' ] ) ) {
if ( empty( $_POST[ 'email' ] ) || empty( $_POST[ 'comment' ] ) ) {
$erro = "<p class='text-danger'> Fill the Required Fields</p>";
} else {
$Commentquery = "insert into comments (vid,uid,status,comments,datetime) values ('$id','$_POST[email]', 'pending','$_POST[comment]',now())";
if ( mysqli_query( $con, $Commentquery ) ) {
$sucess = "<p class='text-sucess'> Thankyou</p>";
}
}
}
?>
<div class="comment_form">
<h2> Comment on post</h2>
<?php
if ( isset( $err ) ) {
echo $err;
}
if ( isset( $sucess ) ) {
echo $sucess;
}
?>
<form method="post" action="">
<div class="form-group">
<lable> Email Address</lable>
<input type="email" name="email" class="form-control"/>
</div>
<div class="form-group">
<lable> Comment</lable>
<textarea name="comment" class="form-control" cols="40" rows="4"></textarea>
</div>
<div class="form-group">
<input type="submit" name="submit" class="btn btn-default"/>
</div>
</form>
</div>
有人可以告诉我我在做什么错事吗?
我已经更新了代码并添加了$ id = -1;正如您告诉我的那样,错误已消失,但开始出现此错误
警告:mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\wamp64\www\site\admin\post.php on line 41
这是-
if ( mysqli_num_rows( $sql ) > 0 ) {
while ( $row4 = mysqli_fetch_array( $sql ) ) {
?>
您也可以在代码中看到它,也请让我知道为什么ID造成了问题
答案 0 :(得分:6)
您在if{}
下的所有代码都与$id
内的if{}
有关,并且在任何情况下都将执行,因此请将}
放在结尾的方括号内,以便if{}
下面的代码将位于if{}
下,并且只有在您设置了$id
的情况下才会执行
if (isset( $_GET[ 'id' ] ) ) {
$id = $_GET[ 'id' ];
//removing bracket from here
$query2 ="select * from video where vid='$id'";
$sql2 = mysqli_query( $con, $query2 );
$row2 = mysqli_fetch_assoc( $sql2 );
?>
<iframe src="https://www.youtube.com/embed/<?php echo $row2['link'];?>" height="300" width="400" scrolling="no" frameborder="0"></iframe>
<h1>
<?php echo $row2['title'];?>
</h1>
<p>
<?php echo $row2['description'];?>
</p>
<?php } //adding bracket here
else
{
echo 'id is not set';
}
?>
答案 1 :(得分:1)
好吧,给id一个初始值。它将涵盖没有传递ID的情况,这将防止发生未定义的变量错误
$id = -1;
if (isset( $_GET[ 'id' ] ) ) {
$id = $_GET[ 'id' ];
}
此外,您还应确保仅在有记录时才使用$ row,因此请按以下方式更改其余代码
$query2 ="select * from video where vid='$id'";
$sql2 = mysqli_query( $con, $query2 );
if($row2 = mysqli_fetch_assoc( $sql2 )){
?>
<iframe src="https://www.youtube.com/embed/<?php echo $row2['link'];?>" height="300" width="400" scrolling="no" frameborder="0"></iframe>
<h1>
<?php echo $row2['title'];?>
</h1>
<p>
<?php echo $row2['description'];?>
</p>
<?php } ?>