Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP::关于如何在mysql选择数组中引用特定行的问题。。。?_Php_Mysql_Arrays - Fatal编程技术网

PHP::关于如何在mysql选择数组中引用特定行的问题。。。?

PHP::关于如何在mysql选择数组中引用特定行的问题。。。?,php,mysql,arrays,Php,Mysql,Arrays,我只是没有在这里建立联系,我也没有得到帮助我启发自己的搜索结果 我将数据从mysql拉入一个数组。但我完全不知道以后如何引用某一行 try { $conn = new PDO('mysql:host=localhost;dbname=FermentorDB', $username, $password); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $chamberstate = $conn->

我只是没有在这里建立联系,我也没有得到帮助我启发自己的搜索结果

我将数据从mysql拉入一个数组。但我完全不知道以后如何引用某一行

try {
$conn = new PDO('mysql:host=localhost;dbname=FermentorDB', $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);



$chamberstate = $conn->query('SELECT * FROM ChamberState' . $conn->quote($mac));


foreach($chamberstate as $row) {
    $chamber = $row['Chamber'];
    $schedule = $row['Schedule'];
    $runningnow = $row['RunningNow'];
    $temp = $row['ChangingTemp'];
    $array = array($chamber,$schedule,$runningnow,$temp); 


    }


} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
好的,所有数据都在数组中。但是,如果$chamber==1,我该如何打印$schedule呢


我为没有得到这个而感到很傻….

您的原始代码已经很接近了,但是
$array
变量在循环中每次都被覆盖。如果您需要在整个页面中访问这些值,您应该能够使用这样的方法来访问这些值

<?php
    try {
        $conn = new PDO('mysql:host=localhost;dbname=FermentorDB', $username, $password);
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

        $chamberstate = $conn->query('SELECT * FROM ChamberState' . $conn->quote($mac));

        /* Populate this array for later use */
        $chambers=array();

        foreach( $chamberstate as $row ) {
            $chamber = $row['Chamber'];
            $schedule = $row['Schedule'];
            $runningnow = $row['RunningNow'];
            $temp = $row['ChangingTemp'];

            /* This will overwrite any values in the $array variable with each iteration through the loop */
            /*
                $array = array( $chamber, $schedule, $runningnow, $temp ); 
            */

            $chambers[]=array( 'chamber'=>$chamber, 'schedule'=>$schedule, 'running'=>$runningnow, 'temp'=>$temp );
        }


        /* later, when you need to access the various values, you can reference via the index */
        echo $chambers[ 1 ]['chamber'];

        /* or */
        echo $chambers[ 23 ]['schedule'];


    } catch(PDOException $e) {
        echo 'ERROR: ' . $e->getMessage();
    }
?>

您与原始代码非常接近,但是
$array
变量在循环中每次都被覆盖。如果您需要在整个页面中访问这些值,您应该能够使用这样的方法来访问这些值

<?php
    try {
        $conn = new PDO('mysql:host=localhost;dbname=FermentorDB', $username, $password);
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

        $chamberstate = $conn->query('SELECT * FROM ChamberState' . $conn->quote($mac));

        /* Populate this array for later use */
        $chambers=array();

        foreach( $chamberstate as $row ) {
            $chamber = $row['Chamber'];
            $schedule = $row['Schedule'];
            $runningnow = $row['RunningNow'];
            $temp = $row['ChangingTemp'];

            /* This will overwrite any values in the $array variable with each iteration through the loop */
            /*
                $array = array( $chamber, $schedule, $runningnow, $temp ); 
            */

            $chambers[]=array( 'chamber'=>$chamber, 'schedule'=>$schedule, 'running'=>$runningnow, 'temp'=>$temp );
        }


        /* later, when you need to access the various values, you can reference via the index */
        echo $chambers[ 1 ]['chamber'];

        /* or */
        echo $chambers[ 23 ]['schedule'];


    } catch(PDOException $e) {
        echo 'ERROR: ' . $e->getMessage();
    }
?>




这不是一个真正的mysql问题,只是一个数组问题。尝试“回声”;变量转储($数组);回声';这将向您显示数组,然后您可以通过$array[0]$array[1]etcSELECT*从ChamberState访问密钥,其中schedule=1感谢回复。我的目标是只使用sql数据库创建一个事务。更改sql语句以包括WHERE仍需要许多sql事务。使用行号访问数据的第一个选项是有用的,但是行号不能以适当的方式排序以使行号可以预测。这不是一个mysql问题,只是一个数组问题。尝试“回声”;变量转储($数组);回声';这将向您显示数组,然后您可以通过$array[0]$array[1]etcSELECT*从ChamberState访问密钥,其中schedule=1感谢回复。我的目标是只使用sql数据库创建一个事务。更改sql语句以包括WHERE仍需要许多sql事务。使用行号访问数据的第一个选项是有用的,但是行号不能以适当的方式排序,以使行号可以预测。这正是我想要的!非常感谢您的快速响应和完善的代码文档!这正是我要找的!非常感谢您的快速响应和完善的代码文档!