我正在尝试获取表1(stellingen)中的特定行。我想存储这些行以指定对第二张表感兴趣的行(stelling)。因此,可以说表1有5行,其中Stelling ID与REGIOID = 5匹配。我要使用来自Stelling ID的IDS从第二张表中获取数据。查看代码,看看我尝试了什么。我也没有设法找到一种方法来实现这一目标。
所以也许太清晰了,因为人们总是说我不清楚: 有两个表。它们都有匹配的列。我试图告诉第二张表我想要数据,但前提是它与第一张表的数据匹配。像一棵树的树枝。然后,我要输出第二张表中的一些数据。
我以前尝试过类似的方法:
SELECT
*
FROM
table2
LEFT JOIN
table1 ON
table1.ID = table2.table1_id
我试图创建一个while循环以获取之前的数据(在第一个if语句和最后一个+ =之后是用于$ amountofstellinge变量):
$amountOfStellinge = 0;
while ($amountOfStellinge<5){
mysqli_data_seek($result, $amountOfStellinge);
这是现在的代码,它是错误的,我一直在搞乱,但是也许它向您展示了我正在努力实现的目标。
if($result = mysqli_query($con, "SELECT * FROM stellingen WHERE REGIOID=1;")) {
$row = mysqli_fetch_assoc($result);
$stellingid= $row["Stelling_ID"];
//checking.. and the output is obviously not what I want in my next query
printf($stellingid);
//defining the variable
$Timer=0;
$sql1="SELECT * FROM stelling WHERE stelling_iD=$stellingid ORDER BY Timer DESC;";
$records2 = mysqli_query($con, $sql1);
$recordscheck = mysqli_num_rows($records2);
//max 5 data
if ($recordscheck < 5){
while ($stelling = mysqli_fetch_assoc($records2)){
//At the end, i would like to only have the data that is most recent
$Timer = date('d F', strtotime($stelling['Timer']));
echo "<p><div style='color:#ED0887'>".$Timer.":</div><a target = '_blank' style='text-decoration:none' href='".$stelling['Source']."'>".$stelling['Title']."</a></p>";
}}
$recordscheck+=1; } // this is totally wrong
编辑: 我已经尝试过了,@noobjs
$Timer=0;
$sql1="SELECT
*
FROM
stelling
LEFT JOIN
stellingen
ON
stelling.ID = stellingen.stelling_id
WHERE
stellingen.REGIOID=1
ORDER BY stelling.Timer LIMIT 5 DESC ;";
$records2 = mysqli_query($con, $sql1);
printf($records2);
while ($stelling = mysqli_fetch_assoc($records2)){
$Timer = date('d F', strtotime($stelling['Timer']));
echo "<p><div style='color:#ED0887'>".$Timer.":</div><a target = '_blank' style='text-decoration:none' href='".$stelling['Source']."'>".$stelling['Title']."</a></p>";
}
出现此错误:
警告:mysqli_fetch_assoc()期望参数1为mysqli_result,布尔值在
中给出
预期结果是: 每个页面都使用来自不同REGIOID的数据。我希望页面显示表stelling(表1)中的数据。根据REGIOID(表2)
答案 0 :(得分:1)
如果我理解正确:
SELECT
*
FROM
stelling
LEFT JOIN
stellingen
ON
stelling.stellingID = stellingen.stelling_id
WHERE
stellingen.REGIOID=1
ORDER BY stelling.Timer DESC LIMIT 5 ;