php – 我可以从一个表中随机选择一行并使用静态标识符来选择另一个表中的相应数据吗?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 我可以从一个表中随机选择一行并使用静态标识符来选择另一个表中的相应数据吗?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2334字,纯文字阅读大概需要4分钟。
内容图文
![php – 我可以从一个表中随机选择一行并使用静态标识符来选择另一个表中的相应数据吗?](/upload/InfoBanner/zyjiaocheng/778/6618bcc7222b4c8881fb477492ead4db.jpg)
下面的脚本最初是为了随机选择一行,它可以做得很好,但是,我无法弄清楚如何修改它以使用名为“nid”的列ID从第二个表中选择数据,这是相同的在两个表中:
$conn = mysqli_connect($host,$username,$password, $database) or die(mysql_error ());
$total_rows = 5;
$selected_row = mt_rand(0, $total_rows);
$query="SELECT * FROM `node` LIMIT $selected_row, 1;";
$result=$conn->query($query);
while($row = $result->fetch_assoc()) {
$node=$row["nid"];
echo $row["title"];
$query2="SELECT * FROM `field_data_body` LIMIT $node, 1;";
$result2=$conn->query($query2);
while($row = $result->fetch_assoc()) {
echo $row["body_value"];
}
不可否认,上述内容并非真正接近工作,但我很擅长找到我所追求的一个例子.
这些表位于Drupal站点的数据库中,因此title字段和body_value字段位于两个不同的表中;最后,我想回应一个结果,它是随机选择的节点的一组匹配的标题和body_value.
说到这个脚本,我想使用nid来查找第二个表的相应行.
这可能吗?
有效的位,从单个表中选择我想要的数据的格式如下:
$total_rows = 5;
$selected_row = mt_rand(0, $total_rows);
$query="SELECT * FROM `field_data_body` LIMIT $selected_row, 1;";
$result=$conn->query($query);
while($row = $result->fetch_assoc()) {
echo $row["body_value"];
}
?>
更新:
根据评论者的建议,我使用了一个联接,结果是:
$conn = mysqli_connect($host,$username,$password, $database) or die(mysql_error ());
$total_rows = 5;
$selected_row = mt_rand(0, $total_rows);
//Use the result in your limit.
$query="SELECT a.nid, a.title, b.entity_id, b.body_value
FROM node a, field_data_body b
WHERE a.nid = b.entity_id LIMIT $selected_row, 1;";
$result=$conn->query($query);
while($row = $result->fetch_assoc()) {
echo $row["title"];
echo " | ";
echo $row["body_value"];
}
这很完美.
解决方法:
为了将来参考,因为您已经解决了问题,您需要在开始新连接之前关闭先前的连接,或者释放结果
$conn = mysqli_connect($host,$username,$password, $database) or die(mysql_error ());
$total_rows = 5;
$selected_row = mt_rand(0, $total_rows);
$query="SELECT * FROM `node` LIMIT $selected_row, 1;";
$result=$conn->query($query);
while($row = $result->fetch_assoc()) {
$node=$row["nid"];
echo $row["title"];
$result->close(); // close $result
$query2="SELECT * FROM `field_data_body` LIMIT $node, 1;";
$result2=$conn->query($query2);
while($row = $result->fetch_assoc()) {
echo $row["body_value"];
}
$result2->close(); // close $result2
我还注意到你没有关闭你发布的UPDATE上的连接,这将导致你以后再次遇到同样的问题.
内容总结
以上是互联网集市为您收集整理的php – 我可以从一个表中随机选择一行并使用静态标识符来选择另一个表中的相应数据吗?全部内容,希望文章能够帮你解决php – 我可以从一个表中随机选择一行并使用静态标识符来选择另一个表中的相应数据吗?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。