【问题标题】:Creating An Array from MYSQLI query从 MYSQLI 查询创建一个数组
【发布时间】:2018-03-17 15:14:02
【问题描述】:

我正在将我所有的代码更新到 Mysqli,在我拥有这段代码之前,它已经工作了:

while($row = mysql_fetch_assoc($WildHorses)){
     $InWild[] = $row['id'];
   }
$RandomWild = array_rand($InWild);
$RandomHorse = $InWild[$RandomWild];

这是我的 SELECT 语句:

$sql = "SELECT Horse.id, Horse.Name, Horse.Age, Horse.Image_name, Horse.Owner, Horse.Barn, Images.Image_path, Images.Image_name FROM Horse, Images WHERE Horse.Owner = '$colname_WildHorseList' AND Images.Image_name = Horse.Image_name";

$result = mysqli_query($con,$sql);

if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
    echo "id: " . $row["id"]. " Name: " . $row["Name"]. " ImageName: " . $row["Image_name"]. "<br>";
}
} else {
echo "0 results";
}

SELECT 语句最终会回显所有正确信息,但我想创建一个仅包含 Id 的数组,以便每次单击按钮时都可以随机选择一个。

我尝试了多个不同的代码副本和粘贴来尝试获得我想要的,但似乎没有任何结果。

谁能指出我正确的方向或解释我做错了什么?

【问题讨论】:

  • 只需将您以前的代码用于数组我不明白为什么它不应该工作
  • @VelimirTchatchevsky 我也没有。这就是我迷路的原因。当我尝试回显 $RandomHorse 时,我什么也得不到,当我执行 if 语句来查看问题时,显然 $row does not = mysqli_fetch_assoc($result) 因为当我测试它是否为真时,它总是给我“else”

标签: php arrays select mysqli


【解决方案1】:

在您的 while 循环中,您可以简单地执行此操作:-

$i=0;
$animals=array();
$animals[$i]=$row["id"];    //puts id in array

然后你可以通过“rand()”创建一个长度在0-$i之间的随机数 并且可以完成工作。

【讨论】:

  • 是否有一个特定的顺序所有这些都应该去,因为在添加时我仍然看不到任何东西。我正在尝试回显数组中的随机 ID。
  • 尝试回显您的数组,您是否在每个索引上获取了每个 ID?
  • 当我回显其中任何一个时,它都不起作用,显然 $row 不 = mysqli_fetch_assoc($result)
  • "一个来自我的小型类似 mysql-php 项目的实例,一切正常" $sql = "SELECT * FROM MOVIES"; $result = mysqli_query($conn, $sql); $moviesarr=数组(); $i=0; if (mysqli_num_rows($result) > 0) { // 输出每一行的数据 // echo "","Welcome to data!!" ,""; while($row = mysqli_fetch_assoc($result)) { $moviesarr[$i]=$row["Name"]; $i++; } } else { echo "0 个结果"; $x=假; }
猜你喜欢
  • 2011-01-19
  • 1970-01-01
  • 2016-01-07
  • 2021-12-16
  • 2016-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多