需要php和mysqli帮助吗
这可能很简单,但我想知道如何用公司名称获得我的身份证。 我得到了所有的名字,但没有ID。我只得到列表中最后一个ID 我能做什么需要php和mysqli帮助吗,php,mysql,sorting,mysqli,Php,Mysql,Sorting,Mysqli,这可能很简单,但我想知道如何用公司名称获得我的身份证。 我得到了所有的名字,但没有ID。我只得到列表中最后一个ID 我能做什么 <?php error_reporting(E_ALL); ini_set('display_errors', 1); $con=mysqli_connect("localhost","root","root","****"); // Check connection if (mysqli_connect_errno()) { echo "Failed
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$con=mysqli_connect("localhost","root","root","****");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// hent fra db: SELECT ... FROM tabell ORDER BY sted, brukernavn
$sql="SELECT * FROM fotograf ORDER BY sted, firma ";
$data = mysqli_query($con,$sql);
$sortedData = [];
// organiser
foreach ($data as $d)
{
$place = $d['sted'];
$id = $d['id'];
$sortedData[$place][] = $d['firma'];
}
// output
foreach ($sortedData as $place => $userNames)
{
echo '<h3>' . $place . '</h3>';
foreach ($userNames as $userName)
{
echo '<div><p><a href="fotograf.php?id='. $id .'"><strong>' . $userName . ' </strong></a></div>';
}
}
?>
问题在于,您要返回多行,并将id存储在一个变量中,该变量在每个循环中都会被覆盖 我建议您创建一个类(如果您采用面向对象的方式),并将其添加到列表中
$sortedData = [];
class Fotograf {
public $Id;
public $Firma;
}
// organiser
foreach ($data as $d)
{
$obj = new Fotograf();
$obj->Id = $d['id'];
$obj->Firma = $d['firma'];
$sortedData[$d['sted']][] = $obj;
}
从那里,您可以访问对象本身,现在将Id变量与Place变量放在一起。现在按如下方式访问它:
// output
foreach ($sortedData as $place => $userNames)
{
echo '<h3>' . $place . '</h3>';
foreach ($userNames as $userName)
{
echo '<div><p><a href="fotograf.php?id='. $userName->Id .'"><strong>' . $userName->Firma . ' </strong></a></div>';
}
}
//输出
foreach($sortedData作为$place=>$userNames)
{
回声“.$place.”;
foreach($userName作为$userName)
{
回声“”;
}
}
更新您的代码:
foreach ($data as $d)
{
$place = $d['sted'];
//$id = $d['id']; this is unused variable
$sortedData[$place] = array("username" => $d['firma'],"id"=>$d['id']);
}
// output
foreach ($sortedData as $place => $userNames)
{
echo '<h3>' . $place . '</h3>';
foreach ($userNames as $userName)
{
echo '<div><p><a href="fotograf.php?id='. $userName["id"] .'"><strong>' . $userName["username"] . ' </strong></a></div>';
}
}
foreach($d数据)
{
$place=$d['sted'];
//$id=$d['id'];这是未使用的变量
$sortedData[$place]=数组(“用户名”=>$d['firma',“id”=>$d['id']);
}
//输出
foreach($sortedData作为$place=>$userNames)
{
回声“.$place.”;
foreach($userName作为$userName)
{
回声“”;
}
}
那么$d['firma']
是用户名吗?是的,它是用户名,sted是位置注意:未定义变量:第38行/Applications/MAMP/htdocs/2017/mrfl/test.php中的id可捕获致命错误:第38行/Applications/MAMP/htdocs/2017/mrfl/test.php中的类对象无法转换为字符串是,以后不能将该对象用作字符串。您需要访问objects变量。更新了我的答案,以反映如何访问变量。我在第32行的/Applications/MAMP/htdocs/2017/mrfl/test.php中得到了以下错误警告:在第32行的/Applications/MAMP/htdocs/2017/mrfl/test.php中出现非法字符串偏移量“firma”`