PHP::关于如何在mysql选择数组中引用特定行的问题。。。?
我只是没有在这里建立联系,我也没有得到帮助我启发自己的搜索结果 我将数据从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->
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事务。使用行号访问数据的第一个选项是有用的,但是行号不能以适当的方式排序,以使行号可以预测。这正是我想要的!非常感谢您的快速响应和完善的代码文档!这正是我要找的!非常感谢您的快速响应和完善的代码文档!