我正在尝试完成我的日期脚本问题。我有一个随机数生成器(外部),每天插入一个表。我拿这个号码从另一张表中提取相应的问题。
// Query 1
$query1 = "SELECT $field1 FROM $table1 WHERE id=1";
$result1 = mysqli_query($con1, $query1);
// Query 2
$query2 = "SELECT $field2 FROM $table2 WHERE QNum = $result1";
$result2 = mysqli_query($con2, $query2);
// Display question
while($row = mysqli_fetch_array($result2)) {
echo $row['question'];
}
$result1
正在提取一个随机数,让我们说它是9.当使用$result1
来提问时,它不起作用,但当我用数字9替换$result1
时,有用。我试验了语法并最终认为它可能是一个字符串副整数的问题。
我尝试将其转换为整数,但它会将$result1
的值分配为1.我不知所措。我不明白字符串是否为9,如何将其转换为整数将改变其值。
我觉得在经过几天的实验后我已经尝试了所有的东西,但我确信它非常简单。请帮忙。
答案 0 :(得分:2)
你是对的,它非常简单。您需要获取行以获取值:
$row = mysqli_fetch_assoc($result1);
$qnum = $row[$field1];
$query2 = "SELECT $field2 FROM $table2 WHERE QNum = $qnum";
您似乎通常理解这一点,因为您调用mysql_fetch_array
来获取第二个查询的结果。为什么第一个查询应该有所不同?
但是,您可以在一个查询中完成所有这些操作:
$query2 = "SELECT t2.$field2
FROM $table1 t1
JOIN $table2 t2 ON t1.$field1 = t2.QNum
WHERE t1.id = 1";
答案 1 :(得分:0)
您是否检查了$ result1中返回的内容?
它应该是一个不能在第二个mysql查询中使用的对象。首先,您必须通过获取查询来获取该查询的值。
$result1 = mysqli_query($con1, $query1);
$row = mysqli_fetch_array($result1, MYSQLI_NUM);
$random_number = $row[0];
然后可以在第二个查询中使用此$ random_number。希望这能解决你的错误。