user2042111
user2042111

Reputation: 33

mysqli query only returns one row from each table

I have finally managed to get my code to return the first column from each one of two tables, but how do i change the code to return all the various column data from both tables and in order by an ID number. Here is my code

<?php
$mysqli = mysqli_connect("localhost", "name", "pass", "db");
// check connection
    if (mysqli_connect_errno()) {
      echo "Connect failed: " . mysqli_connect_errno(); exit();
    }

$query = "SELECT * FROM custrec;"; "SELECT * FROM contidr;";

$result = array();


/* execute multi query */
if ($mysqli->multi_query($query))
{
    do 
  {
      //store first result set
      if($result = $mysqli->store_result()) 
     {
         while( $rows = $result->fetch_row())
         {
               printf("<br/>%s<br/>", $rows[0]);
         }
             $result->free();
     }
        /* print divider */

        if($mysqli->more_results())
        {
            printf("-----------------<br/>");
        }
        else
        {
            echo '<br/>';
        }
} while($mysqli->more_results() && $mysqli->next_result());
}

/* close connection */
$mysqli->close();
?>

Upvotes: 0

Views: 57

Answers (1)

mickmackusa
mickmackusa

Reputation: 48071

There is nothing wrong with the multi_query portion.

You have an error in the way you have assigned your two queries to $query.

Your:

$query = "SELECT * FROM custrec;"; "SELECT * FROM contidr;";

is like saying:

$query = "SELECT * FROM custrec;";
"SELECT * FROM contidr;";

The second intended query is not appended to $query.

Solutions are: One string (preferred):

$query = "SELECT * FROM custrec;SELECT * FROM contidr";

or two strings with concatenation:

$query = "SELECT * FROM custrec;"."SELECT * FROM contidr";

Upvotes: 1

Related Questions