帮助。
我在SQL中有两个表(注册人和合作伙伴),每个表都有几列,但是有两列具有唯一值(在表中),SequenceNo和Submission。我正在尝试使用其中任何一列来查找合作伙伴表中的匹配行。所有这些数据都通过网站上的表格放入表格中。
我的代码如下:
<?PHP
$r = "regsandbox";
$p = "regsandboxpart";
$db = JFactory::getDBO();
$sql = "SELECT * FROM `" .$r. "`ORDER BY `School` , `StudentLastName`";
$db->setQuery($sql);
$result = $db->query();
$schoolrows = $db->loadAssocList();
$plena = sizeof($schoolrows);
$sql = "SELECT * FROM `" .$p. "`";
$db->setQuery($sql);
$result = $db->query();
$partnerrows = $db->loadAssocList();
$plen = sizeof($partnerrows);
echo "<table>";
$school = null;
for ($i = 0; $i<sizeof($schoolrows); $i++) {
$row = $schoolrows[$i];
$group = $row ["Group"];
$submission = $row["Submission"];
$key = array_search($submission,$partnerrows);
$partners = $partnerrows [$key];
$lasta = $partners ["P1LastName"];
$lastb = $partners ["P2LastName"];
$firsta = $partners ["P1FirstName"];
其余代码无关紧要,因为$ submission返回正确的针,但在搜索haystack时,结果始终为null。
我是php的新手,所以我去学习,但我不明白为什么这不起作用。
谢谢, 标记
答案 0 :(得分:0)
你写道:
$submission = $row["Submission"];
$key = array_search($submission,$partnerrows);
$partnerrows
是一个多维数组,因此您的搜索失败。
要搜索多维数组中的键,您可以使用:
$key = array_search( $submission, array_column( $partnerrows, 'Submission' ) );
if( !function_exists( 'array_column' ) )
{
function array_column( array $input, $column_key, $index_key = null )
{
$result = array();
foreach( $input as $k => $v )
{
$result[ $index_key ? $v[ $index_key ] : $k ] = $v[ $column_key ];
}
return $result;
}
}
$key = array_search( $submission, array_column( $partnerrows, 'Submission' ) );