Buon giorno a tutti devo incrociare 2 tabelle, ma non riesco a capire come sia possibile farlo , ho provato in vari modi , ma nn riesco , a volte mi da "nessun risultato" e a volte invece mi da un risultato non coerente con la richiesta.
Ecco il codice html della pagina di query:
codice:
<body>
<table height="261" border="1">
<tr>
<td width="800" height="106" align="center"><header>Seleziona i dati Per la ricerca</header></td>
</tr>
<tr>
<td height="147">
<table width="183">
<form method="post" action="RicercaMultipla.php">
<label for="societa">Seleziona una Societa:</label>
<select name="societa" >
<option value="1">Cariplo</option>
<option value="4">State Street Bank</option>
<option value="5">Banca Intesa SPA</option>
<option value="7" selected="selected">Intesa San Paolo</option>
<option value="9">Banco di Napoli</option>
</select><br />
<label for="ufficio">Seleziona un Ufficio:</label>
<select name="ufficio" >
<option value="4" selected="selected">Contabilita Sistemi Centrali e di Rete</option>
<option value="1">Sistemi Contabili di Sintesi</option>
<option value="5">Contabilita Sistemi Centrali e di Rete Personale</option>
</select>
<section>Inserite qui il contenuto del nuovo tag section</section>
<label for="codice">Seleziona un Codice</label>
<select name="codice" >
<option value="10" selected="selected">Prima Nota Contabile</option>
<option value="11">Corrispondenza</option>
<option value="12">Recuperi Imposta Sostitutiva</option>
<option value="13">Ritenute Diverse</option>
<option value="14">Microfiches</option>
<option value="15">Iras-Irap</option>
<option value="17">Quietanze</option>
<option value="18">Stipendi</option>
<option value="19">Personale</option>
<option value="20">Fatture/Distacchi</option>
</select>
<hr>
<input type="submit" size="7" align="right">
</form>
</table>
</td>
</tr>
</table>
</body>
</html>
ed ecco il codice php per lo svilupo della query:
Codice PHP:
<!DOCTYPE html>
<html>
<head>
<style>
table, th, td
{
border: 1px solid black;
}
</style>
</head>
<body>
<?php
$hostname = "localhost";
$usrname = "luca63";
$passwd = "";
$dtbase = "my_luca63";
//connessione al database
$connessione = new mysqli($hostname, $usrname, $passwd, $dtbase);
//controllo connessione<form method="post">
if ($connessione -> mysqli_error){
die("Errore connessione al database" . $connessione->connect_error);
}
$societa = $_POST['societa'];
$codice = $_POST['codice'];
$ufficio = $_POST['ufficio'];
//interrogazione database
$sql ="SELECT Archivio.* , Societa.* FROM Archivio INNER JOIN Societa ON Societa.Societa=Archivio.Societa WHERE Archivio.Societa=($societa)";
//$sql = "SELECT * FROM Archivio, Societa WHERE Societa=($societa) AND Codice=($codice)";
//$sql = "SELECT ID, Societa, Codice, Ufficio, Dal, Al, Descrizione, Numero_Scatola FROM Archivio WHERE Societa=($societa) AND Codice=($codice)";
//$sql = "SELECT ID, Societa, Ufficio, Dal, Al, Descrizione, Numero_Scatola FROM Archivio WHERE Archivio.Societa=7";
$result = $connessione->query($sql);
if ($result->num_rows > 0)
{
//costruzione tabella in html
echo "<centre><h3>Societa".$row[Societa]."test</centre></h3>";
echo "<centre><H4>Ricerca per societa:".$societa."</centre></H4>";
echo "<table><tr><th>Societa</th><th>Codice</th><th>Ufficio</th><th>Dal</th><th>Al</th><th>Descrizione</th><th>Numero_Scatola</th></tr>";
// presa risultato per ogni cella
while($row = $result->fetch_assoc()){
echo "<tr><td>".$row[Societa]."</td><td>".$row[Codice]."</td><td>".$row[Ufficio]."</td><td>".$row[Dal]."</td><td>".$row[Al]."</td><td>".$row[Descrizione]."</td><td>".$row[Numero_Scatola]."</td</tr>";
}
} else {
echo "</P>Nessun risultato";
}
$connessione->close();
?>
Se nella riga della query gli ometto il "WHERE ...... " mi da un risultato inesatto , sempre solita ricerca , legata ad una sola società la numero 1
mentre la terza sql da risultato esatto , ma con la cifra al posto della societa