2017-04-26 75 views
0

我想问我应该如何将我的foreach循环到一个PHP代码,每个回声表内容每个?PHP我应该怎么做,如果我想呼应表而不是foreach循环

这里是我的.PHP

<?php 
require_once 'init.php'; 

$articleQuery = $db->query(" 
SELECT 
articles.id, 
articles.title, 
COUNT(articles_likes.id) AS likes, 
GROUP_CONCAT(users.username SEPARATOR '|') AS liked_by 

FROM articles 

LEFT JOIN articles_likes 
ON articles.id = articles_likes.article 

LEFT JOIN users 
ON articles_likes.user = users.id 

GROUP BY articles.id 
"); 

while($row = $articleQuery->fetch_object()){ 
$row->liked_by = $row->liked_by ? explode('|', $row->liked_by) : []; 
$articles[] = $row; 

} 


$articleQuery = $db->query(" 
SELECT 
articles2.id, 
articles2.title, 
COUNT(articles_dislikes.id) AS dislikes, 
GROUP_CONCAT(users.username SEPARATOR '|') AS disliked_by 

FROM articles2 

LEFT JOIN articles_dislikes 
ON articles2.id = articles_dislikes.article 

LEFT JOIN users 
ON articles_dislikes.user = users.id 

GROUP BY articles2.id 
"); 

while($row = $articleQuery->fetch_object()){ 
$row->disliked_by = $row->disliked_by ? explode('|', $row->disliked_by) 

: []; 
$articles2[] = $row; 

} 

// echo '<pre>', print_r($articles, true), '</pre>'; 

?> 
<?php foreach($articles as $article): ?> 

<?php foreach($articles2 as $article1): ?> 

<div class="article"> 
<h3><?php echo $article->title; ?></h3> 
<a href="like.php?type=article&id=<?php echo $article->id; ? 
>">Like<?php echo $article->likes; ?></a> 


<div class="article1"> 
<a href="dislike.php?type=article&id=<?php echo $article1->id; 
?>">disLike<?php echo $article1->dislikes; ?></a>  



</div> 
<?php endforeach; ?> 

<?php endforeach; ?> 

我想呼应的特定表标题,ID,像每个HTML后,

这里是我的table.sql

-- Table structure for table `articles` 
-- 

CREATE TABLE IF NOT EXISTS `articles` (
`id` int(11) NOT NULL AUTO_INCREMENT, 
`title` varchar(200) DEFAULT NULL, 
PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ; 


-- Dumping data for table `articles` 
INSERT INTO `articles` (`id`, `title`) VALUES 
(1, 'Test article one'), 
(2, 'Test article two'), 
(3, 'Test article three'); 

-------------------------------------------------------- 


-- Table structure for table `articles_likes` 
-- 

CREATE TABLE IF NOT EXISTS `articles_likes` (
`id` int(11) NOT NULL AUTO_INCREMENT, 
`user` int(11) DEFAULT NULL, 
`article` int(11) DEFAULT NULL, 
PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ; 

-- 
-- Dumping data for table `articles_likes` 
-- 

INSERT INTO `articles_likes` (`id`, `user`, `article`) VALUES 
(1, 1, 1), 
(2, 1, 2), 
(4, 2, 2); 

-- 
-- Table structure for table `users` 
-- 

CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL AUTO_INCREMENT, 
`username` varchar(20) NOT NULL, 
PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ; 


-- Dumping data for table `users` 
-- 

INSERT INTO `users` (`id`, `username`) VALUES 
(1, 'ifah'), 
(2, 'alex'); 

这意味着当我在html中发文章后,我想回声让我们说在h3 html中的标题1谢谢..

+0

显示一些努力,尝试一些然后来寻求帮助。 – julekgwa

+1

你可以添加视觉效果,你希望你的输出效果如何。 – julekgwa

+0

当然可以,谢谢julekgwa。我只购买了HTML和CSS,从不尝试PHP,我会练习更多,这样有一天我可以帮助别人回来。 :) – HelloIMYOU

回答

0

当然可以,我想先谢谢你的回答。 sample

sample likes count

所以基本上,我希望计算后,作为一个喜欢点击按钮的数量,但是当我想呼应出来,我只知道使用循环来显示。

当我需要它们时,我想一个接一个地回显它们,比如使用按钮标签或div标签将它们回显出来。我是一名具有科学背景的大学生,我努力学习编码,但不熟悉PHP。所以告诉我你的想法。谢谢!! 我table.sql

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; 
SET time_zone = "+00:00"; 


/*!40101 SET @[email protected]@CHARACTER_SET_CLIENT */; 
/*!40101 SET @[email protected]@CHARACTER_SET_RESULTS */; 
/*!40101 SET @[email protected]@COLLATION_CONNECTION */; 
/*!40101 SET NAMES utf8 */; 

-- 
-- Database: `likebutton` 
-- -------------------------------------------------------- 

-- 
-- Table structure for table `articles` 
-- 

CREATE TABLE IF NOT EXISTS `articles` (
`id` int(11) NOT NULL AUTO_INCREMENT, 
`title` varchar(200) DEFAULT NULL, 
PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ; 

-- 
-- Dumping data for table `articles` 
-- 

INSERT INTO `articles` (`id`, `title`) VALUES 
(1, 'Test article one'), 
(2, 'Test article two'), 
(3, 'Test article three'); 

-- -------------------------------------------------------- 

-- Table structure for table `articles_likes` 
-- 

CREATE TABLE IF NOT EXISTS `articles_likes` (
`id` int(11) NOT NULL AUTO_INCREMENT, 
`user` int(11) DEFAULT NULL, 
`article` int(11) DEFAULT NULL, 
PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ; 

-- 
-- Dumping data for table `articles_likes` 
-- 

INSERT INTO `articles_likes` (`id`, `user`, `article`) VALUES 
(1, 1, 1), 
(2, 1, 2), 
(4, 2, 2); 

-- -------------------------------------------------------- 

-- 
-- Table structure for table `users` 
-- 

CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL AUTO_INCREMENT, 
`username` varchar(20) NOT NULL, 
PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ; 

-- 
-- Dumping data for table `users` 
-- 

INSERT INTO `users` (`id`, `username`) VALUES 
(1, 'Anns'), 
(2, 'Bob'); 

另外,我想每个ID只能点击一次,就可以恢复到不同的按钮。谢谢

相关问题