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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.