php - 在 echo 中使用 php 代码

标签 php mysql pdo

我的问题是如何让下面的代码回显其全部内容?我有多个需要使用 whileecho 的东西,我已经尝试过了,但还没有弄清楚该怎么做。我见过的答案,我已经尝试过,但它们对我的代码不起作用。我需要将所有这些代码集中在一起,但我在插入“喜欢按钮”部分时遇到问题。问题开始于

$likes = (empty($_POST['like'])) ? : $_POST['like'] ;

这是完整的代码

while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
  echo ' 
<div class="wrapper">
<div class="submissions">
<div class="logo-logo"><h2>Questions.</h2>
<div class="checkboxes">'.$row['formtype'].'
</div>

</div>
<div class="top-submit">
&#8220'. $row["actual_quote"] . '&#8221;
</div>
<div class="poster">- '. $row["poster"].'
 <div class = "like">- '.
  $likes = (empty($_POST['like'])) ? : $_POST['like'] ;
  $dislikes = (empty($_POST['dislike'])) ? : $_POST['dislike'] ;
  $ip = $_SERVER['REMOTE_ADDR'];

  if(isset($_POST['like'])){
    $likes1 = $likes+1;
    $voted1 = $voted+1;
    $query2 = $db->prepare("INSERT INTO voters (voted, ip) VALUES ( :voted, :ip)");
    $query2->bindParam(':voted', $voted1, PDO::PARAM_STR);
    $query2->bindParam(':ip', $ip, PDO::PARAM_STR);  
    $query2->execute();
    header("Location: like.php?");
    $update1 = $db->prepare("INSERT INTO votes (likes) VALUES ( :likes)");
    $update1->bindParam(':likes', $likes1, PDO::PARAM_STR);
    $update1->execute();
  }

  if(isset($_POST['dislike'])){
    $dislikes1 = $dislikes+1;
    $voted1 = $voted+1;
    $query2 = $db->prepare("INSERT INTO voters (voted, ip) VALUES ( :voted, :ip)");
    $query2->bindParam(':voted', $voted1, PDO::PARAM_STR);
    $query2->bindParam(':ip', $ip, PDO::PARAM_STR);  
    $query2->execute();
    header("Location: like.php?");
    $update1 = $db->prepare("INSERT INTO votes (dislikes) VALUES ( :dislikes)");
    $update1->bindParam(':dislikes', $dislikes1, PDO::PARAM_STR);
    $update1->execute();
  }
  $stmt = $db->query("SELECT * FROM voters");
  $stmt->setFetchMode(PDO::FETCH_ASSOC);
  $row3 = $stmt->fetch();

  echo "Likes: $likes <br /> Dislikes: $dislikes<br />";

  if(isset($row3['voted'])){
    if(isset($row3['ip'])){
      echo "You have already voted for this.";
    }
  } else {

    echo "<form action = '' method = 'post'> <input type = 'submit' name = 'like' value  = 'like'> <input type = 'submit' name = 'dislike' value = 'dislike'></form>";

  }'
</div>
<!-- use select to get the items to stay on the page-->

</div>
</div>
</div>
';
}

可能有一个非常简单的解决方案,但我到处都在寻找它。我尝试在最后使用 . 但它不喜欢那样。有什么建议吗?

编辑我更改了一部分,整个代码从 $likes 开始,到 else{} 之后结束,如下所示:

  <div class = "like">';
  include("like.php");
  echo'</div>

最佳答案

你不知道。您停止回显,执行其他代码,然后再次开始回显。

echo 'foo';
bar();
echo 'baz';

关于php - 在 echo 中使用 php 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24522936/

相关文章:

php - 跨网页布局的多个 MySQL 查询 - 最好的方法是什么?

mysql - 如何将对象(从 MySQL 临时表)返回到 Coldfusion 存储过程中?

mysql - 需要 MySQL 加入类似

php - 尝试在 php 中对 mysql 表中的数据表进行排序

php - 如何使用准备好的PDO语句设置ORDER BY参数?

php - 如何获取按列名索引的数组?

php - 聊天验证密码和用户名获取IP和端口

php - codeigniter 中 undefined variable 查询

PHP + MYSQL 页面 - OOP 和 PDO

php - 无法显示查询结果