2017-03-01 38 views
0

如何查看合适的代码以便拿起和编辑文章?我试图做到这一点,但仍然得到mysqli_fetch_assoc()预计参数1被mysqli_result,在字符串中给出。试图获取并编辑文章

<?php 
$db = mysqli_connect("localhost", "root", "root", "maturita"); 
if(isset($_GET['edit_art'])) 
{ 
    $sql="SELECT * FROM articles WHERE id_art='{$_GET['id_edit']}'"; 
    $query=mysqli_query($db, $sql); 

    while($log = mysqli_fetch_assoc($sql)): 
     $subject = $log["subject"]; 
     $text = $log["text"]; 

?> 
<div class="content2"> 
<div class="content title1"> 
Edit Article 
</div> 
<div class="content backgrounded"> 
<form action="#" method="post">   
<table> 
    <tr> 
    <td>Subject: </td><td><input class="subject form form3" type="text" name="subject"><?php $subject; ?></input></td> 
    </tr> 
    <td>Text: </td><td><textarea name="text" rows="5" cols="51"><?php echo $text; ?></textarea></td> 
    </tr> 
    <tr> 
    <td><input type="submit" class="button button5" name="submit" value="Submit"/></td> 
    </tr> 
    </table> 
</form> 
</div> 
</div> 
<?php endwhile;}?> 

回答

1

您只需要使用mysqli_fetch_assoc($query),而不是mysqli_fetch_assoc($sql)

不会从$_GET$_POST$_REQUEST直接将SQL语句插入内容,请使用占位符代替准备语句。

Btw。代码部分"SELECT * FROM articles WHERE id_art='{$_GET['id_edit']}'"是正确的,只有在GET参数中提交时才会添加单个qoutes。这也会发生在WHERE id_art='" . $_GET['id_edit'] . "'";。欲了解更多信息,请阅读PHP手册:http://php.net/manual/en/language.types.string.php#language.types.string.syntax.double