评级正确记录PHP SQL
我不知道如何将“正/负”评级设置为正确的记录,我尝试在while循环中执行此操作,该循环显示所有记录,但它只对第一个记录进行评级。如何查阅正确的记录?我是PHP的新手。这是我的密码:评级正确记录PHP SQL,php,mysql,pdo,Php,Mysql,Pdo,我不知道如何将“正/负”评级设置为正确的记录,我尝试在while循环中执行此操作,该循环显示所有记录,但它只对第一个记录进行评级。如何查阅正确的记录?我是PHP的新手。这是我的密码: if (isset($_GET['najstarsze'])) { $sql = "SELECT * FROM wpisy ORDER BY id"; } else { $sql = "SELECT * FROM wpisy ORDER BY id DESC"; } $stmt
if (isset($_GET['najstarsze']))
{
$sql = "SELECT * FROM wpisy ORDER BY id";
}
else
{
$sql = "SELECT * FROM wpisy ORDER BY id DESC";
}
$stmt = $db->query($sql);
$stmt->execute();
$stmt->setFetchMode(PDO::FETCH_ASSOC);
if($stmt->rowCount() > 0){
while($row = $stmt->fetch()){
echo "
<div class='data'>
".$row['data']."
</div><br>
<div class='daneautora'>
<b>Ocena: </b>".$row['ocena']."<br>
<b>Nr: </b>".$row['id']."<br>
<b>Nick: </b>".$row['nick']."<br>
<b>E-mail: </b>".$row['email']."<br>
<b>Wpis: </b><br></div>
<div class='suchar'>
<p>
".$row['tresc']."
</p>
</div>
<div class='ocena'>
<p><a href='index.php?plus=true'>+</a> <a href='index.php?minus=true'>-</a></p>
</div>
<hr>
";
if (isset($_GET['plus']))
{
$sql = "UPDATE wpisy SET ocena = ocena + 1 WHERE id = ".$row['id']."";
$stmt = $db->query($sql);
$stmt->execute();
}
else
{
if (isset($_GET['minus']))
{
$sql = "UPDATE wpisy SET ocena = ocena - 1 WHERE id = ".$row['id']."";
$stmt = $db->query($sql);
$stmt->execute();
}
}
}
}
if(isset($\u GET['najstarsze']))
{
$sql=“按id从wpisy订单中选择*”;
}
其他的
{
$sql=“按id描述从wpisy订单中选择*”;
}
$stmt=$db->query($sql);
$stmt->execute();
$stmt->setFetchMode(PDO::FETCH_ASSOC);
如果($stmt->rowCount()>0){
而($row=$stmt->fetch()){
回声“
“$row['data']”
Ocena:“.$行['Ocena']。”
编号:“.$row['id']”,
尼克:“.$row['Nick']”,
电子邮件:“.$row['email']”,
Wpis:
“$row['tresc']”
";
如果(isset($_GET['plus']))
{
$sql=“UPDATE wpisy SET ocena=ocena+1,其中id=“.$row['id']”;
$stmt=$db->query($sql);
$stmt->execute();
}
其他的
{
如果(isset($_GET['减号]))
{
$sql=“UPDATE wpisy SET ocena=ocena-1,其中id=“.$row['id']”;
$stmt=$db->query($sql);
$stmt->execute();
}
}
}
}
if(isset($\u GET['plus']))…
)外部而块
您需要更新链接,使其具有要更新的记录的引用。尝试:
index.php?plus=true&id=' . $row['id']
您可能还希望更新isset
,以包括此新参数
if (isset($_GET['plus'], $_GET['id']))
然后,您需要将准备好的语句与参数化查询一起使用,这样您就不会受到SQL注入的影响。下面是一个例子:
$sql = "UPDATE wpisy SET ocena = ocena + 1 WHERE id = ?";
$stmt = $db->prepare($sql);
$stmt->execute(array($_GET['id']));
另外,当使用query()
时,您不需要execute()
,它也会执行。execute
是执行一条准备好的语句
PDOStatement::execute-执行准备好的语句
-很有效,谢谢!