Problemi con query su due tabelle

  • Creatore Discussione Creatore Discussione Max61
  • Data di inizio Data di inizio

Max61

Utente Attivo
2 Mar 2014
760
4
18
Buongiorno ho la necessità di fare una query su 2 tabelle, ho provato a farla ma non mi da il risultato che voglio.
Le tabelle sono: tblverbali e tblsinistri
Allego query che utilizzo:
PHP:
<?php
require 'Connessione.php';

$NumVerbale = $_POST['NumVerbale'];

if(! $myconn )
{
  die('Could not connect: ' . mysql_error());
}

$sql = "SELECT tblverbali.*, tblsinistri.NumPratica
FROM tblverbali, tblsinistri
WHERE tblverbali.tblanagrafica_id=tblsinistri.tblanagrafica_id AND `NumVerbale` = '$NumVerbale'";


mysql_select_db('gestionesinistri');
$retval = mysql_query( $sql, $myconn );
if(! $retval )
{
  die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_NUM))
{
    echo "tblanagrafica_id: {$row[1]} <br> ".
		 "Verbale numero: {$row[4]} <br> ".
		 "Richiedente : {$row[2]} <br> ".
         "Data verbale : {$row[5]} <br> ".
		 "Decisione GIL : {$row[6]} <br> ".
		 "Legale esterno: {$row[12]} <br> ".
		 "Resp. Comp. Assicurativa : {$row[18]} <br> ".
		 "Resp. Tecnico : {$row[17]} <br> ".
		 "Resp. P.M. : {$row[11]} <br> ".
		 "Resp. Verde Urbano : {$row[10]} <br> ".		 		
		 "Uff. Att. assicurative : {$row[13]} <br> ".		 
		 "Uff. att. assicurative : {$row[14]} <br> ".
		 "Resp. Economato : {$row[16]} <br> ".
         "--------------------------------<br><br>";
}

mysql_close($myconn);
?>

Con questa query mi estrae soltanto i dati della tabella tblverbali, e nulla dalla tabella tblsinistri, come posso fare?

Grazie per l'aiuto
Max61
 
ciao max, non è facile impostare la query che ti serve, non conoscendo le gerarchie all'interno del db (non i link tra tabelle) ed il risultato che vuoi ottenere, quindi pubblico una tabella visuale di quanto puoi ottenere con le relative query per ciascun caso,
spero ti sia sufficiente a risolvere il tuo problema, altrimenti posta ancora ma indicando quale situazione ti interessa
ciao
Marino
Visual_SQL_JOINS_orig.jpg
 
Ciao Marino51 ti ringrazio per la risposta, ma mi sono accorto che il problema stava e sta tutt'ora nella visualizzazione in php dei dati della query.
La query che ho postato estrae i dati che voglio, l'ho provato sul sql di XAMPP e ho quindi modificato la query per prendere i dati di mio interesse che posto:
PHP:
<?php
$sql = "SELECT tblverbali.*, tblsinistri.NumPratica, tblsinistri.DataRichiesta, tblsinistri.OraSinistro,
tblsinistri.LocalitaSinistro, tblsinistri.ViaSinistro, tblsinistri.CitazioneGiudizio, tblsinistri.LegaleEsterno,
tblsinistri.StatoPratica
FROM tblverbali, tblsinistri
WHERE tblverbali.tblanagrafica_id=tblsinistri.tblanagrafica_id AND `NumVerbale` = '$NumVerbale'"; // query
$res = mysql_query($sql); // esegue la query
$row=mysql_fetch_array($res); // ottiene il resource-set
echo "<span style=\"color: red; font-size: 12pt\">";
echo "Verbale n. ";
//echo "<input type="text" name="textfield" style="width: 100px;">
echo "<input type=\"text\" name=\"pippo\" value=\"$row[NumVerbale]\">"; 
echo "Richiedente ";
echo "<input type=\"text\" name=\"pippo\" value=\"$row[Nominativo]\">";
echo "Data verbale ";
echo "<input type=\"text\" name=\"pippo\" value=\"$row[DataVerbale]\">"; 
echo "<br><br>Data sinistro ";
echo "<input type=\"text\" name=\"pippo\" value=\"$row[DataRichiesta]\">"; 
echo "Ora sinistro ";
echo "<input type=\"text\" name=\"pippo\" value=\"$row[OraSinistro]\">";
echo "<br><br>Localita sinistro ";
echo "<input type=\"text\" name=\"pippo\" value=\"$row[LocalitaSinistro]\">"; 
echo "Via sinistro ";
echo "<input type=\"text\" name=\"pippo\" value=\"$row[ViaSinistro]\">"; 
echo "<br><br>Decisione GIL ";
echo "<input type=\"text\" name=\"pippo\" value=\"$row[__________DecisioneGIL__________]\">";
echo "Stato pratica ";
echo "<input type=\"text\" name=\"pippo\" value=\"$row[StatoPratica]\">";
echo "<br><br>Legale esterno ";
echo "<input type=\"text\" name=\"pippo\" value=\"$row[LegaleEsterno]\">";
echo "Resp. verde Urbano ";
echo "<input type=\"text\" name=\"pippo\" value=\"$row[RespVerdeUrbano]\">";
echo "<br><br>Resp. PM ";
echo "<input type=\"text\" name=\"pippo\" value=\"$row[RespPM]\">";
echo "Legale esterno ";
echo "<input type=\"text\" name=\"pippo\" value=\"$row[Legale1]\">";
echo "<br><br>Uff. Attivita Assicurative ";
echo "<input type=\"text\" name=\"pippo\" value=\"$row[UfficioAttivitaAssicurative]\">";
echo "Comp. Assicurativa ";
echo "<input type=\"text\" name=\"pippo\" value=\"$row[CompagniaAssicurativa]\">";
echo "<br><br>Resp. Economato ";
echo "<input type=\"text\" name=\"pippo\" value=\"$row[RespEconomato]\">";
echo "Resp. tecnico ";
echo "<input type=\"text\" name=\"pippo\" value=\"$row[RespTecnico]\">";
echo "<br><br>Resp. Comp. assicurativa ";
echo "<input type=\"text\" name=\"pippo\" value=\"$row[RespComAssicurativa]\">";
echo "Resp. Terzi ";
echo "<input type=\"text\" name=\"pippo\" value=\"$row[RespTerzi]\">";
echo "<br><br>Citazione in giudizio ";
echo "<input type=\"text\" name=\"pippo\" value=\"$row[CitazioneGiudizio]\">";
echo "Rinviato ";
echo "<input type=\"text\" name=\"pippo\" value=\"$row[Rinviato]\">";
echo "<br><br>Trasmessa per Competenza ";
echo "<input type=\"text\" name=\"pippo\" value=\"$row[TrasmessaCompetenza]\">";
echo "Franchigia 10000 ";
echo "<input type=\"text\" name=\"pippo\" value=\"$row[Franchigia10000]\">";
echo "<br><br>Pratica conclusa ";
echo "<input type=\"text\" name=\"pippo\" value=\"$row[PraticaConclusa]\">";
echo "Parere ";
echo "<input type=\"text\" name=\"pippo\" value=\"$row[Parere]\">";
echo "Somma liquidata ";
echo "<input type=\"text\" name=\"pippo\" value=\"$row[SommaLiquidata]\">";
?>

In questo modo estraggo i dati che dovrei passare al file pdf per la stampa, il problema sta nel fatto che se ho più di un verbale con lo stesso numero mi estrae soltanto il primo, invece in questo modo l'estrazione è corretta, vedo a video tutti i record con lo stesso valore nel campo NumVerbale:
PHP:
<?php
require 'Connessione.php';

$NumVerbale = $_POST['NumVerbale'];

if(! $myconn )
{
  die('Could not connect: ' . mysql_error());
}

$sql = "SELECT tblverbali.*, tblsinistri.NumPratica
FROM tblverbali, tblsinistri
WHERE tblverbali.tblanagrafica_id=tblsinistri.tblanagrafica_id AND `NumVerbale` = '$NumVerbale'";


mysql_select_db('gestionesinistri');
$retval = mysql_query( $sql, $myconn );
if(! $retval )
{
  die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_NUM))
{
    echo "tblanagrafica_id: {$row[1]} <br> ".
		 "Verbale numero: {$row[4]} <br> ".
		 "Richiedente : {$row[2]} <br> ".
                 "Data verbale : {$row[5]} <br> ".
		 "Decisione GIL : {$row[6]} <br> ".
		 "Legale esterno: {$row[12]} <br> ".
		 "Resp. Comp. Assicurativa : {$row[18]} <br> ".
		 "Resp. Tecnico : {$row[17]} <br> ".
		 "Resp. P.M. : {$row[11]} <br> ".
		 "Resp. Verde Urbano : {$row[10]} <br> ".		 		
		 "Uff. Att. assicurative : {$row[13]} <br> ".		 
		 "Uff. att. assicurative : {$row[14]} <br> ".
		 "Resp. Economato : {$row[16]} <br> ".
         "--------------------------------<br><br>";
}

mysql_close($myconn);
?>
infatti mi estrae tutti i record dove il valore del campo NumVerbale è uguale.

Non so come fare
Hai un idea?
In breve vorrei estrarre tutti i record della tabella tblverbali e alcuni della tabella tblsinistri dove il campo NumVerbale della tabella tblverbali ha lo stesso valore.

Es.:
Pippo NumVerbale =1
Pluto NumVerbale =1
Minnie NumVerbale =2

Con questa qurey scegliendo il verbale n.1 vorrei mandare in stampa tutti i dati relativi a Pippo e Pluto, mentre se scelgo il verbale n.2 mando i stampa i dati di Minnie
Spero di essermi spiegato...
Grazie
Max61
 

Discussioni simili