【问题标题】:mysql_fetch_array not working for 1 row query resultmysql_fetch_array 不适用于 1 行查询结果
【发布时间】:2013-02-26 06:23:09
【问题描述】:

我的查询工作正常。但是试图从表 mysql fetch 数组中获取唯一值不起作用。

这是我的 sql A-2815 是车辆的项目代码。这个领域是独一无二的。预期结果是 item_code A-2815 的车辆详细信息。

$sql  = "SELECT vehicle.id, item_code, make, model, vehicle_type, color, showroom_id, "; 
$sql .= "adding_user_Id, approved, image_1 ";
$sql .= "FROM  images,  vehicle ";
$sql .= "WHERE vehicle.id=images.item_id ";
$sql .= "AND (item_code LIKE '%A-2815%' ";
$sql .= "OR  make LIKE '%A-2815%' ";
$sql .= "OR model LIKE '%A-2815%' ";
$sql .= "OR vehicle_type LIKE '%A-2815%' ";
$sql .= "OR color LIKE '%A-2815%' ";
$sql .= "OR showroom_id LIKE '%A-2815%') "; 
$sql .= "AND activate=1 ";
$sql .= "AND type_of_image=1 ";

这是我的 php 代码。

<?php
      $query = mysql_query($sql);
      while($result = mysql_fetch_array($query)){
           echo $result['item_code'];
           echo $result['make'];
           echo $result['model'];
           echo $result['vehicle_type'];
           echo $result['color'];
           echo $result['showroom_id'];
      }
 ?>

当结果超过 1 行时,这可以正常工作。但问题是当结果是 1 行时它不起作用。

【问题讨论】:

  • 能否提供单条记录不显示的结果
  • 从 5.5.0 开始,“mysql”扩展名已被弃用?有关详细信息,请参阅PHP.net Manual Page。
  • 您也可以使用heredoc 来构建您的查询。它将删除重复步骤以继续向现有变量添加新字符串。
  • 使用 PDO 或 mysqli_*。咨询this.
  • 我想尽办法解决这个问题,但没有任何帮助。有没有人解决或知道为什么会发生这种情况?

标签: php mysql


【解决方案1】:
while ($result = mysql_fetch_array($query, MYSQL_ASSOC)) {

    // assoc
    echo $result['item_code'];
}

MySQLi 解决方案

$connect = mysqli_connect('localhost', 'root', 'pwd', 'dbname');

$sql = "select * from sometable";

$query = mysqli_query($connect, $sql);

while ($result = mysqli_fetch_array($query, MYSQLI_ASSOC)) {
    // assoc
    echo $result['item_code'];
}

【讨论】:

  • 'MYSQL_BOTH' 不是 mysql_fetch_array() 的默认值吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-08
  • 2011-06-23
  • 2016-07-19
  • 1970-01-01
相关资源
最近更新 更多