php mysql 未正确提取数据

标签 php mysql

所以我试图制作一个表格来显示骑自行车的人骑行过的山丘(为 MS150 做好准备)。我的问题是,当一个人点击按钮说他们已经爬过山时......它只在某些时候起作用。当他们说他们已经爬了一座山时,按钮就会禁用,并且不允许他们再次按下它。但是,某些记录未正确显示。这是我的代码:

html:

$get_hills = "SELECT * FROM hills ORDER BY hill_region ASC, hill_id ASC"; 
$run_hills = mysqli_query($con, $get_hills); 
while($row_hills = mysqli_fetch_array($run_hills)) {

$hill_id = $row_hills['hill_id'];

$get_user = "SELECT * FROM users WHERE user_id = '".$_SESSION['user_id']."'";
$run_user = mysqli_query($con, $get_user); 
$row_user = mysqli_fetch_array($run_user); 

$get_ridden = "SELECT * FROM hills_ridden WHERE hill_id = '".$hill_id."'";
$run_ridden = mysqli_query($con, $get_ridden);
$row_ridden = mysqli_fetch_array($run_ridden); 
echo "
<tr>
<td>".$row_hills['hill_name']."</td>
<td>".$row_hills['hill_region']."</td>
<td>".$row_hills['hill_rise']."</td>
<td>".$row_hills['hill_length']."</td>
<td>".$row_hills['hill_avg_grade']."</td>
<td>".$row_hills['hill_total_points']."</td>
<td><a href='".$row_hills['hill_link']."' target='_blank'><button class='btn btn-inverse btn-xs'>Link</button></a></td>
<td>";
if($row_user['user_id'] == $row_ridden['user_id']) {
echo "<button class='btn btn-default btn-xs' disabled>You Rode This</button>";
} else {
echo"
<form method='post' action=''>
<input type='hidden' name='hill_id' value='".$row_hills['hill_id']."'>
<input type='hidden' name='points_gained' value='".$row_hills['hill_total_points']."'>
<input type='hidden' name='user_id' value='".$row_user['user_id']."'>
<button type='submit' name='hill_sub' class='btn btn-inverse btn-xs'>I Rode This</button>
</form>";
} echo"</td>
</tr>";
}

PHP:

if(isset($_POST['hill_sub'])) {

$get_user = "SELECT * FROM users WHERE user_id = '".$_SESSION['user_id']."'";
$run_user = mysqli_query($con, $get_user); 
$row_user = mysqli_fetch_array($run_user);

$insert_points = "INSERT INTO points (user_id, hill_id, points_gained, points_date) VALUES ('".$row_user['user_id']."', '".$_POST['hill_id']."', '".$_POST['points_gained']."', now())"; 

$insert_activity = "INSERT INTO activity (user_id, hill_id, activity_date) VALUES ('".$row_user['user_id']."', '".$_POST['hill_id']."', now())"; 

$insert_hill = "INSERT INTO hills_ridden (user_id, hill_id) VALUES ('".$row_user['user_id']."', '".$_POST['hill_id']."')"; 

$run_points = mysqli_query($con, $insert_points); 
$run_activity = mysqli_query($con, $insert_activity); 
$run_hills = mysqli_query($con, $insert_hill); 

if($run_hills) {
    echo "<script>window.open('record-hill.php?user_id=".$row_user['user_id']."', '_self')</script>"; 
} else {
    echo $run_hills->error; 
}
}

这是 sql 数据库文件:

-- Table structure for table `hills_ridden`
--

CREATE TABLE IF NOT EXISTS `hills_ridden` (
`ridden_id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` varchar(5) NOT NULL,
`hill_id` varchar(5) NOT NULL,
PRIMARY KEY (`ridden_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=33 ;

任何帮助将不胜感激......我一直在尝试不同的查询来使其工作,但在过去的两天里一直不成功:/拜托!!

最佳答案

@maarten,谢谢你的想法...我尝试/修改了它,它给了我一些我需要的东西...但意识到最好的计划是最简单的,因此我得到了这个:

$get_ridden = "SELECT * FROM hills_ridden WHERE hill_id = '".$hill_id."' AND user_id = '".$row_user['user_id']."'";
$run_ridden = mysqli_query($con, $get_ridden);
$row_ridden = mysqli_fetch_array($run_ridden); 
$num_ridden = mysqli_num_rows($run_ridden);

if($num_ridden >= 1) {
echo "<button class='btn btn-default btn-xs' disabled>You Rode This</button>";
} else {

这给了我我正在寻找的东西......需要稍微远离它,然后用新的眼光来看待它!

关于php mysql 未正确提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35662576/

相关文章:

php - 如果菜单位于不同的文件夹中,如何创建网站的 BASE URL?

php - 插入新更新时将以前的状态更新为“死亡”

PHP - 连接失败 : Access denied for user 'username' @'localhost' (using password: YES)

php - 检查结果是否为整数/varchar/等。 SQL执行期间?

php - 使用PHP从JSON获取数据

php - 减少数组和 SplFixedArray 的内存使用

php - 如何编写此查询?

php - 计算数组中连续值的数量

mysql - Google App Engine 中的 Datastore 与 Cloud SQL

php - 从数据库中获取所有月份的记录