需要php和mysqli帮助吗

需要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

这可能很简单,但我想知道如何用公司名称获得我的身份证。 我得到了所有的名字,但没有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 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”`