简体   繁体   中英

Getting Data From Multiple MySQL Tables Using PHP and mysqli

I am trying to draw data from multiple tables that have been indexed to relate to one another. I ran this query in MySQLWorkbench, and it ran successfully. However when I tried to run a PHP test, nothing showed up, not even for the first field. Here is my code:

<?php
$db = new mysqli('host', 'user', 'password', 'database');

if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}
$query = "
    SELECT 
        `Contact`.`firstName`,
        `Contact`.`lastName`,
        `ssn`.`ssn`,
        `Contact`.`country`,
        `Allergies`.`allergy`,
        `Allergies`.`allergyType`,
        `Allergies_Contact`.`allergyNotes`,
        `CurrentPrescriptions`.`prescriptionName`,
        `CurrentPrescriptions`.`prescribedDate`,
        `BloodType`.`bloodType`
    FROM
        `database`.`Contact`,
        `database`.`Allergies_Contact`,
        `database`.`Allergies`,
        `database`.`ssn`,
        `database`.`CurrentPrescriptions`,
        `database`.`BloodType`
    WHERE
        `Contact`.`contactKey` = `Allergies_Contact`.`contactKey`
            AND `Allergies`.`allergiesKey` = `Allergies_Contact`.`allergiesKey`
            AND `ssn`.`contactKey` = `Contact`.`contactKey`
            AND `CurrentPrescriptions`.`contactKey` = `Contact`.`contactKey`
            AND `BloodType`.`contactKey` = `Contact`.`contactKey`;
";

$result = $db->query($query) or die($db->error.__LINE__);
if ($result = mysqli_query($db, $query)) {
    while ($row = mysqli_fetch_row($result)) {
        print(row[0]);
    }
    mysqli_free_result($result);
}
mysqli_close($db);
?>

Please tell me what I am doing wrong here, because from what I can see its formatted correctly.

<?php
//conection:
$link = mysqli_connect("myhost","myuser","mypassw","mybd") or die("Error " . mysqli_error($link));

//consultation:

$query = "SELECT name FROM mytable" or die("Error in the consult.." . mysqli_error($link));

//execute the query.

$result = $link->query($query);

//display information:

while($row = mysqli_fetch_array($result)) {
  echo $row["name"] . "<br>";
}
?> 

http://php.net/manual/en/function.mysqli-connect.php

Several things:

1.- You have two query sentences, change:

$result = $db->query($query) or die($db->error.__LINE__);
if ($result = mysqli_query($db, $query)) {

With this

$result = $db->query($query) or die($db->error.__LINE__);
if ($result !== false) {

2.- Yo made a mistake when trying to print the variable, change:

while ($row = mysqli_fetch_row($result)) {
    print(row[0]);
}

With this

while ($row = mysqli_fetch_row($result)) {
    print($row[0]); // You missed a $
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM