0
這是我的表likes
堅持更新列值
id type parent country votes
1 1 0 US 0 # This value need to be 9
2 2 1 US 6
19 3 1 US 3
3 3 2 US 3
7 3 2 US 3
4 10 3 US 1
5 10 3 US 1
6 10 3 US 1
10 10 7 US 1
9 10 7 US 1
8 10 7 US 1
20 10 19 US 1
21 10 19 US 1
22 10 19 US 1
我做了一個腳本,在表中更新的總票數。
這裏,type 10 updates type 3
,type 3 updates 2 and 1
,type 2 updates 1
你會看到它是如何工作當u運行我的腳本。
這裏,id 1
需要爲9,並且每次腳本運行時都不應刷新。其他人不。但我無法找到一種方法來更新1而不會使其價值翻倍。
你能幫我找個辦法嗎?
繼承人的腳本。
$conn = connect();
$what = 10;
$pathType = 15;
while ($pathType >=2)
{
$stmt = $conn->prepare("select max(type) as type from likes where type < :type and country = 'US'");
$stmt->bindParam(':type', $pathType);
$stmt->execute();
$pathData = $stmt->fetch();
$pathType = $pathData['type'];
echo 'Path Type is '.$pathType.'<br>';
$stmt = $conn->prepare("select sum(votes) as votes, parent as parent from likes where type=:type group by parent");
$stmt->bindParam(':type', $pathData['type']);
$stmt->execute();
$rows = $stmt->rowCount();
while($row = $stmt->fetch()) {
echo $row['parent']." ".$row['votes'];
echo "<br>";
if($row['parent'] == 1){
echo 'Passed Level 1<br>';
$wtf = $conn->prepare("update likes set votes=votes+:votes where id=:parent");
}else{
$wtf = $conn->prepare("update likes set votes=:votes where id=:parent");
}
$wtf->bindParam(':votes', $row['votes']);
$wtf->bindParam(':parent', $row['parent']);
$wtf->execute();
}
echo "-----------------------------------------------<br>";
}
這裏,r的產生的情況下,你需要他們:
-- --------------------------------------------------------
-- Host: 127.0.0.1
-- Server version: 5.5.25 - MySQL Community Server (GPL)
-- Server OS: Win64
-- HeidiSQL version: 7.0.0.4053
-- Date/time: 2013-05-17 14:41:11
-- --------------------------------------------------------
/*!40101 SET @[email protected]@CHARACTER_SET_CLIENT */;
/*!40101 SET NAMES utf8 */;
/*!40014 SET FOREIGN_KEY_CHECKS=0 */;
-- Dumping database structure for wwp-db
DROP DATABASE IF EXISTS `wwp-db`;
CREATE DATABASE IF NOT EXISTS `wwp-db` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `wwp-db`;
-- Dumping structure for table wwp-db.likes
DROP TABLE IF EXISTS `likes`;
CREATE TABLE IF NOT EXISTS `likes` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`type` tinyint(1) DEFAULT '0',
`parent` int(10) DEFAULT '0',
`country` varchar(2) DEFAULT NULL,
`votes` int(10) DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4176 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
-- Dumping data for table wwp-db.likes: 14 rows
/*!40000 ALTER TABLE `likes` DISABLE KEYS */;
INSERT IGNORE INTO `likes` (`id`, `type`, `parent`, `country`, `votes`) VALUES
(1, 1, 0, 'US', 9),
(2, 2, 1, 'US', 6),
(3, 3, 2, 'US', 3),
(4, 10, 3, 'US', 1),
(5, 10, 3, 'US', 1),
(6, 10, 3, 'US', 1),
(7, 3, 2, 'US', 3),
(8, 10, 7, 'US', 1),
(9, 10, 7, 'US', 1),
(10, 10, 7, 'US', 1),
(19, 3, 1, 'US', 3),
(20, 10, 19, 'US', 1),
(21, 10, 19, 'US', 1),
(22, 10, 19, 'US', 1);
/*!40000 ALTER TABLE `likes` ENABLE KEYS */;
/*!40014 SET FOREIGN_KEY_CHECKS=1 */;
/*!40101 SET [email protected]_CHARACTER_SET_CLIENT */;
它會更新值9. P這裏的問題是,如果你刷新頁面,它將會是15甚至更多。 – Norman
任何想法如何做到這一點?我已經用完了想法。 – Norman
如果我改變它,它會給我6而不是9。 – Norman