我的代码遇到了一些问题。我确信这很简单,但我无法弄清楚!我参加了大量的论坛并阅读了几本书...但我所做的每一个答案都失败了。我几乎保证它是我使用我的语法的方式(是的,我知道...程序化的PHP不再使用了)但我真的有点新手,我只是想尝试在进入OOP和PDO连接之前,先了解基础知识。
你能帮帮我吗?目前我可以让用户从日期选择器中选择他们的日期,具体来自该日期的结果将仅返回...唯一的问题是事件显示的是event_id而不是与之相关的事件的名称以(1 = 5km跑)为例。不知何故,我需要访问事件表并拉出与该特定event_id相关的行。
我已对我的数据库进行了规范化,根据我的导师,它看起来还不错。让您了解它的样子 - 登录表(所有用户登录详细信息),结果表(已提交事件的历史记录)事件表(事件本身)。
在结果表中,外键是logins_id和event_id。主键是结果表中的results_id,此处存储的唯一数据是时间和数据(单个列)。
<?php // -----Stage 1. On submission of the form run the following -----//
if (isset($_POST['submit_d'])) {
$mydate = $_POST ['MyDate'];
$my = preg_replace('/[^a-zA-Z0-9]+/', ' ', $mydate);
if ($mydate) {
$result = mysql_query("SELECT * FROM logins WHERE username = '$username' LIMIT 1");
//This function will take the above query and create an array...
while($row = mysql_fetch_array($result))
{
//With the array created above, I can create variables (left) with the outputted array (right)
$logins_id3 = $row['logins_id'];
}
$sql = "SELECT * FROM results where $logins_id3 AND date = $mydate ";
/* ----- Here is the code that I want to use in conjunction with the above statement --->
$query = "SELECT logins.username,events.event,results.time,results.date,logins.age,logins.gender
FROM logins INNER JOIN results ON logins.logins_id=results.logins_id INNER JOIN events ON results.event_id=events.event_id
ORDER BY time ASC LIMIT 10";
*/
$resultz = mysql_query($sql);
if( mysql_num_rows($resultz) ) {
while ($row = mysql_fetch_array($resultz)) {
echo "<table><tr><th>Username</th><th>Event</th><th>Time (HH:MM:SS)</th><th>Date (YY/MM/DD)</th><th>Age</th><th>Gender</th>
</tr><tr><td>".$username."</td>"
."<td>".$row['event_id']."</td>"."<td>".$row['time']."</td>"." <td>".$row['date']."</td>"."<td>".$row['age']."</td>".
"<td>" $row['gender']."</td></tr></table>";
}
}
}
}
?>
我想做的另一件事......虽然这不是至关重要的,但是要从输入中删除特殊字符。基本上我使用jquery日历选择器,我希望用户能够选择2014-05-26格式的日期和php删除 - 在提交到数据库之前,这样就不会#39; t影响用户体验,但它可以使用我当前的代码。
无论如何不好意思,对这两方面的任何帮助都会非常感激!
您诚挚的:
彼得斯卡尔斯。答案 0 :(得分:0)
您可以使用联接来获取与事件ID相关的数据:
SELECT * FROM results r LEFT JOIN events e ON r.event_id = e.event_id WHERE ...
然后您可以选择“e.event_id = $ event_id”的位置;和其余的查询逻辑。
您还可以使用preg_replace:http://ar2.php.net/preg_replace
过滤掉任何不需要的字符