Php 是否将行数组中的值传递给另一个变量名?

Php 是否将行数组中的值传递给另一个变量名?,php,mysqli,Php,Mysqli,如何将行数组中的值传递给另一个变量,因为行数组的结果我需要在另一个表中执行另一个查询以进行选择。在echo$row['Plate']和$plateID中,都可以显示值,但对于另一个查询,不会显示结果。这是我的代码: <?php $connection=mysqli_connect("localhost","root",""); $db=mysqli_select_db($connection,'db_car_identification'); $q="SELECT Plate FROM

如何将行数组中的值传递给另一个变量,因为行数组的结果我需要在另一个表中执行另一个查询以进行选择。在echo
$row['Plate']
$plateID
中,都可以显示值,但对于另一个查询,不会显示结果。这是我的代码:

<?php

$connection=mysqli_connect("localhost","root","");
$db=mysqli_select_db($connection,'db_car_identification');

$q="SELECT Plate FROM addplate ORDER BY ID DESC LIMIT 1 ";

$result=mysqli_query($connection,$q);

while($row = mysqli_fetch_array($result)) {
    echo $row['Plate'];

    $plateID = $row['Plate'];

    echo $plateID;

    $query="SELECT StuName FROM student_detail WHERE plateID=$plateID";

    $query_run=mysqli_query($connection,$query);

    while($row1=mysqli_fetch_array($query_run)) {
        echo $row1['StuName'];      
    }
}
?>

请检查一些步骤

  • 对于第一个查询结果,它是哪种数据类型
  • 如果是整数或任何数字数据类型,则回显$query变量,并通过简单地将其复制并粘贴到数据库查询生成器(phpmyadmin)中来检查任何查询是否正确
  • 如果它是字符串数据类型,那么只需在查询中向$plateID变量添加'例如:“从学生详细信息中选择StuName,其中plateID=“$plateID””(如果不工作,则再次回显并检查您的查询问题)

  • 如果有帮助,请告诉我。

    您真的应该使用

    然而,在您的示例中,您可以简单地使用SQL子查询。这将使您的代码更简单

    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    $connection = new mysqli("localhost", "root", "", 'db_car_identification');
    $connection->set_charset('utf8mb4');
    
    $result = $connection->query('SELECT StuName, Plate 
        FROM student_detail 
        WHERE plateID = (SELECT Plate FROM addplate ORDER BY ID DESC LIMIT 1)');
    
    foreach($result as $row1){
        echo $row1['StuName']; 
    }
    

    尝试打印
    $row1
    并查看其中是否有任何内容。当我打印它时,它显示mysqli_fetch_array()期望参数1是mysqli_result。听起来您需要了解MySQL连接,您可以通过一个查询而不是许多小查询来执行所需的操作。实际上有3张桌子我需要加入。如果我把所有的表都连接在一起,它将有4个表需要连接。这就是为什么我先把单个选择放在一起,然后根据第一个选择的结果连接其他3个表。谢谢你的主意。我会看一看。所以现在我需要首先为这个想法进行配置。
    echo$query=“从学生详细信息中选择StuName,其中plateID=$plateID”并直接在数据库上执行该查询,然后检查其是否有效。第三步有效。谢谢老板。。但是为什么我需要添加“”,因为数据类型设置为varchar而不是日期?因为您需要在查询中为每个非数字数据类型(如varchar、string、date等)添加引号。