1

I am updating all my code to Mysqli, before I did I had this code and it worked:

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

This is my SELECT statement:

$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";
}

The SELECT statement ends up echoing all of the correct information, but I want to make an array of only the Id's so that I can pick one at random each time a button is clicked.

I have tried multiple different copies and pastes of code to try and get what I want, but nothing seems to come out right.

Can someone point me in the right direction or explain what I'm doing wrong?

2
  • Juust use your previous code for the array I don'see why it shouldn't work Commented Oct 5, 2017 at 21:40
  • @VelimirTchatchevsky Neither do I. Thats why I am lost. When I try and echo $RandomHorse I get nothing, when I do an if statement to see what's wrong apparently $row does not = mysqli_fetch_assoc($result) because it always gives me the "else" when I test to see if it is true Commented Oct 5, 2017 at 21:50

1 Answer 1

1

In your while loop you can simply do this :-

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

And then you can create a random number by "rand()" between the length of 0-$i and can get the job done.

Sign up to request clarification or add additional context in comments.

4 Comments

Is there a specific order all of that should go because when adding that in I still don't see anything. I'm trying to echo the random Id in the array.
Try echoing your array, are you getting each ID on each index?
When I echo any of it, none of it works, apparently $row does not = mysqli_fetch_assoc($result)
"a live example from my small similar mysql-php project, it all worked fine" $sql = "SELECT * FROM MOVIES"; $result = mysqli_query($conn, $sql); $moviesarr=array(); $i=0; if (mysqli_num_rows($result) > 0) { // output data of each row // echo "<b>","Welcome to data!!" ,"</b>"; while($row = mysqli_fetch_assoc($result)) { $moviesarr[$i]=$row["Name"]; $i++; } } else { echo "0 results"; $x=false; }

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.