Avatar billede Vinnidis Praktikant
04. august 2017 - 20:26 Der er 1 kommentar

Problemer med at kalde de rette dataer ud i et sql kald der inkluder 2 identiske mysql databaser

Hej alle Jeg prøver at skrive et script som kalder data ud fra 2 identiske databaser.

efter mit kald prøver jeg at lave en while og ud skrive de samlede datere i en række. det lykkedes også sådan ok problemet er bare at når jeg så skal hente de yderlige meta_data i min while går der noget galt, den dublikker navne og de passer slet ikke til orderen med det id!

Håber en her inde fra kan kan hjælpe mig på rette kurs igen.

Jeg har skrevet hvad jeg gør ned i gennem den viste kode for at give jer en forklaring på hvad jeg forsøger.

    <?php
$servername = "xxx";
$username = "xxx";
$password = "xxx";


$v1 = "_wp282"
$v2 = "_wp111";
$v3 = "_wp72";
$v4 = "_wp193";
$v5 = "_wp555";
$v6 = "_wp366";
$v7 = "_wp74";
$v8 = "_wp721";
$v9 = "_wp924";
$v10 = "_wp253";


// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";

//Here I connect to both databases
$query103 = mysqli_query($conn, "SELECT * FROM `$v1`.`wpd2_posts`
  where post_status='wc-processing' or post_status='wc-completed'
    or post_status='wc-failed' UNION
SELECT * FROM `$v2`.`wpd2_posts`
  where post_status='wc-processing' or post_status='wc-completed'
    or post_status='wc-failed' order by post_date DESC ") or die(mysqli_error($conn));



?>

<br>
<h2>Database 3</h2>

    <table style="width: 100%">
                <tr>
                <td>ID</td>
                <td>??</td>
                <td>??</td>
                <td>??</td>
                <td>??</td>
                <td>??</td>


                </tr>
        <?php
            while($row = mysqli_fetch_array($query103))         
            {
               
               
                // Here I try to find what database the customer is on
                    $id2 = $row['ID'];
                   
                    if($row['ID'] == ''){
                       
                        echo "intet id";
                    }else {
                       
                        $query = mysqli_query($conn, "SELECT * FROM  `$v1`.`wpd2_posts` where ID = '$id2' ORDER BY id") or die(mysqli_error($conn));   

                                if(mysqli_num_rows($query) == '') {
                                   
                                    $query = mysqli_query($conn, "SELECT * FROM  `$v2`.`wpd2_posts` where ID = '$id2' ORDER BY id") or die(mysqli_error($conn));   

                                if(mysqli_num_rows($query) == '') {
                                   
                            }else{
                                    $version = "coalsmil_wp111";
   
                                }
                                   
                            }else{
                                    $version = "coalsmil_wp282";
   
                                }
                       
                   
                    }
                                     
                    echo "<tr>";
                    echo "<td>". $row['ID']."</td>";
                    echo "<td>". $row['post_date']."</td>";
                    echo "<td>". $row['post_status']."</td>";
                   
                                //And here I try to get the data out
                               
                               
                                          $querynavn = mysqli_query($conn, "SELECT meta_value FROM  `$version`.`wpd2_postmeta` where meta_key='_shipping_first_name' and post_id='$id2' ") or die(mysqli_error($conn));
                      while($row2 = mysqli_fetch_array($querynavn))         
                      {
                  $fornavn = urldecode($row2['meta_value']);
                    }
                echo "<td>". $fornavn."</td>";
                    echo "<td>".$version."</td>";
                    echo "<td>6</td>";
                    echo "</tr>";

            }
           
           
            ?>
    </table>
Avatar billede acore Ekspert
07. august 2017 - 13:24 #1
Du laver rigtig mange forespørgsler. Du kan nøjes med én, hvis du bruger LEFT JOIN fra starten til at koble hovedtabellerne med metatabellerne. Så ville du også få løst dit andet problem.

Der er også fejl i koden. Der mangler fx et semikolon efter

$v1 = "_wp282"
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester