私はコーディングの初心者です。以下のコードを理解して調整して、データベースから繰り返しないでユニークな値だけを返そうとしています。私はunique_array()のさまざまなバリエーションを試しましたが、残念ながら成功しませんでした。データベースから返される値を一意のものだけに制限するにはどうすればよいですか?ユニークな値のみを持つPHP配列
<?php
$sql ="SELECT COUNT(status) AS total_building FROM add_bulding WHERE status=1";
$query = $this->db->query($sql);
$total_building = $query->row_array();
?>
<div class="b-list-section">
<?php
if(!empty($building_info))
{
foreach ($building_info as $value)
{
$id = $value['id'];
$sql = "SELECT COUNT(DISTINCT building_id) AS total_list FROM add_listing WHERE building_id='$id'";
$query = $this->db->query($sql);
$total_list = $query->row_array();
?>
<a class="blink" target="_blank" href="<?php echo base_url() . 'details_building/' . $value['id'] ?>">
<div class="bilding-wrap">
<h3 class="buildingtitle"><?php echo $value['title']; ?></h3>
<?php if(!empty($value['image'])):?>
<img class="bimage" src="<?php echo base_url("uploads/thumb/" . $value['image']); ?>" alt="no image yet">
<?php else:?>
<?php $qry12=mysql_query("SELECT * FROM add_bulding_image WHERE add_building_id=$id");
$sqr1=mysql_fetch_array($qry12); ?>
<img class="bimage" src="<?php echo base_url("uploads/thumb/" . $sqr1['image']); ?>" alt="no image yet">
<?php endif;?>
</div>
</a>
上記のコードは、ユーザーが検索しているものと一致するリストを返します。 2つのリスティングが同じ建物内にある可能性があるため、コードは同じ建物を2回返します。
'mysql_ *'関数を使用しないでください。それらはv5.5(2013年6月)から廃止され、v7.0(2015年12月)以降削除されました。代わりに[** mysqli _ ***](https://secure.php.net/manual/en/book.mysqli.php)または[** PDO **](https://secure.php.net/** ** prepared statements **](https://secure.php.net/manual/en/pdo.prepare.php)と[**バインドされたパラメータ** ](https://secure.php.net/manual/en/pdostatement.bindparam.php)。 –
ユニークな結果が必要な場合は、「SELECT DISTINCT」を使用してください。 – tadman
@tadman私は 'SELECT DISTINCT'を試みたが、うまくいかなかった - コードは繰り返しの結果を返す。 – 1dxb