PROBLEMA Script PHP con MySQL (query)

FrancescoZoino0

Nuovo Utente
10
2
(tradotto da StackOverflow)
Ho un semplice script che prende e mostra le righe di un MySQL in una tabella. Vorrei eseguire un confronto con ae variabili della mia tabella.

Ho la colonna "tipologia_cliente" nel primo database. In questa colonna puoi vedere "id" di un cliente.

Ma ho due diversi tipi di clienti, i primi sono "Privati" e il secondo sono "Aziende", vorrei vedere il nome completo "nome" e "cognome" (chiamato nelle colonne del database) e per cliente bsuiness vorrei vedere "ragione_sociale" (il nome della ragione sociale di una società nel mio paese).

Il problema è che le righe sono in tre diversi database:

  1. il primo database è "documenti_trasporto", che contiene alcune informazioni sulla bolla di consegna;
  2. il secondo database è "clienti_privati", che contiene alcune informazioni sul mio cliente privato (gente semplice);
  3. il terzo database è "clienti_aziende", che contiene alcune informazioni sul mio cliente aziendale;
Come posso vedere nella mia tabella HTML, CSS, PHP e MySQL il nome ("nome"), il cognome ("cognome") e (solo per i clienti commerciali) il nome legale dell'azienda ("ragione_sociale") ?

Questo è il mio codice PHP:


PHP:
<?php
$conn = mysqli_connect("localhost", "marostic_dwa", "paswd", "marostic_dwa");
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT id, tipologia_cliente, id_cliente, data_creazione,  imponibile_netto
        FROM documenti_trasporto LIMIT 15";
$id_cliente = $row["id_cliente"];
if ($row["tipologia_cliente"] == "Privato") {
    $sql1 = "SELECT id, nome, cognome
             FROM clienti_privati
             WHERE id = $id_cliente";
    $mostra_cliente = $row["nome"] . $row["cognome"];
} else {
    $sql1 = "SELECT id, ragione_sociale
             FROM clienti_aziende
             WHERE id = $id_cliente";
    $mostra_cliente = $row["ragione_sociale"];
}
$result = $conn->query($sql);
if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo "<tr><th><span>" . $row["id"]
            . "</span></th></td><td><span>"
            . $mostra_cliente . "</span></td><td><span>"
            . $row["data_creazione"]. "</span></td><td><span>"
            . $row["imponibile_netto"]. "</span></td></tr>";
    }
    echo "</table>";
} else {
    echo "0 Risultati";
}
$conn->close();
?>

Questo è il codice completo che include la tabella HTML:


HTML:
<div class="table-responsive">
    <!-- Projects table -->
    <table class="table align-items-center table-flush">
        <thead class="thead-light">
        <tr>
            <th scope="col">Numero</th>
            <th scope="col">Cliente</th>
            <th scope="col">Data</th>
            <th scope="col">Imponibile Netto</th>
        </tr>
    </thead>
    <tbody>
<?php
$conn = mysqli_connect("localhost", "marostic_dwa", "paswd", "marostic_dwa");
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT id, tipologia_cliente, id_cliente, data_creazione, imponibile_netto
        FROM documenti_trasporto LIMIT 15";
$id_cliente = $row["id_cliente"];
if ($row["tipologia_cliente"] == "Privato") {
    $sql1 = "SELECT id, nome, cognome
             FROM clienti_privati WHERE id = $id_cliente";
    $mostra_cliente = $row["nome"] . $row["cognome"];
} else {
    $sql1 = "SELECT id, ragione_sociale
             FROM clienti_aziende WHERE id = $id_cliente";
    $mostra_cliente = $row["ragione_sociale"];
}
$result = $conn->query($sql);
if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo "<tr><th><span>" . $row["id"] .  "</span></th></td><td><span>"
            . $mostra_cliente . "</span></td><td><span>"
            . $row["data_creazione"]. "</span></td><td><span>"
            . $row["imponibile_netto"]. "</span></td></tr>";
    }
    echo "</table>";
} else {
    echo "0 Risultati";
}
$conn->close();
?>
                </tbody>
              </table>
            </div>
          </div>
        </div>
      </div>
Post unito automaticamente:

Grazie
 

Dumah Brazorf

Utente cAttivo
Utente Èlite
7,613
3,543
Mmm, allora riguardo meglio.
Hai una lista di bolle e per ogni bolla vuoi tirare fuori nomecognome da una tabella o ragionesociale dall'altra giusto?
Allora più che UNION fai 2 LEFT JOIN dalla tabella delle bolle alle 2 tabelle con gli utenti. Poi nel select avrai un IF(tipologia_cliente='Privato', prendonomeecognome, prendoragionesociale) AS nomecliente
 
  • Mi piace
Reazioni: FrancescoZoino0

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!