- Home
- Categorie
- Coding e Sistemistica
- PHP
- problema relazioni con query php
-
Ah, non avevo capito.
Allora nella query inserisci:
....WHERE cognome='$tipo2' AND azienda='$nome_azienda'";
-
@Samyorn said:
Ah, non avevo capito.
Allora nella query inserisci:
....WHERE cognome='$tipo2' AND azienda='$nome_azienda'";ok, fino qui ci sono, pero' quale valore gli do' a $nome_azienda?
Cioè vorrei dare il valore della azienda che ho selezionato nella pagina prima..
-
Allora dovrai fare una subquery, solo che mi sfugge qualcosa credo, nella query ti tiri fuori il valore di id_azienda, ma se già lo sai che azienda è....:?
-
@Samyorn said:
Allora dovrai fare una subquery, solo che mi sfugge qualcosa credo, nella query ti tiri fuori il valore di id_azienda, ma se già lo sai che azienda è....:?
aspetta, provo a mostrarti brevemente i codici:
1° file) archivio_dip1.php
$query="SELECT * FROM tbl_users WHERE user_name='".$_SESSION['logged'][0]."'" ;
$result = mysql_query($query,$connessione);
$row = mysql_fetch_array($result);
$userid = $row[0];
print "<br>";
print "utente n° "."$userid"."<br>";$azie = "SELECT * FROM anag_ditta WHERE id_utenteee= $userid order by ragione_sociale";
$result = mysql_query($azie,$connessione);
while($row = mysql_fetch_array($result)) {
echo "<br>";echo "<a href="archivio_dip2.php?tipo=" . $row[2] . ""><b>".$row[2]."</b></a>";
//DA QUI SELEZIONO L'AZIENDA2° file) archivio_dip2.php
$tipo=$_GET['tipo'];
print "<br>";
print "ditta: "."$tipo"."<br>"; //stampa l'azienda//recupero i dati dell'archivio dipendenti dal database
$dipe = "SELECT * FROM anag_dip WHERE id_azienda= '$tipo' order by cognome";
$result3 = mysql_query($dipe,$connessione);
while($row3 = mysql_fetch_array($result3)) {
echo "<br>";
//$row3[3]= stampa tutti i dipendentiecho "dip: "."<a href="dettaglio_dipe.php? tipo2=" . $row3[3] . ""><b>".$row3[3]." ".$row3[4]."</b></a>";
3° file) dettaglio.dipe.php
$tipo2=$_GET['tipo2'];
$prova1="SELECT id_azienda FROM anag_dip WHERE cognome='$tipo2'" ;
$prova2 = mysql_query($prova1,$connessione);
$prova3 = mysql_fetch_array($prova2);
$userid4 = $prova3[0];
print "<br>";
print "azienda: "."$userid4"."<br>";//E' QUESTA VARIABILE CHE NON VA BENE$dipe = "SELECT * FROM anag_dip WHERE cognome = '$tipo2' and id_azienda = '$userid4'";
$result = mysql_query($dipe,$connessione);
while($row = mysql_fetch_array($result)) {print $row[4];
ecc . ecc...
Lo so, è tutto un po' incasinato, ma il problema è questa variabile $userid4.
In realtà vorrei che vedessi il nome dell'azienda e i dati dipendente il cui cognome fa parte di quella azienda.
Invece (come mi sta succedendo), nel caso di 2 cognomi uguali in aziende diverse, mi stampa la prima che trova e i relativi dati del dipendente a cui fa parte, e io voglio quelli dell'azienda selezionata...
Mi spiego?
-
Se le inserisci così per il futuro si capisce meglio
1° file) archivio_dip1.php
[php]$query="SELECT * FROM tbl_users WHERE user_name='".$_SESSION['logged'][0]."'" ;
$result = mysql_query($query,$connessione);
$row = mysql_fetch_array($result);
$userid = $row[0];
print "<br>";
print "utente n° "."$userid"."<br>";$azie = "SELECT * FROM anag_ditta WHERE id_utenteee= $userid order by ragione_sociale";
$result = mysql_query($azie,$connessione);
while($row = mysql_fetch_array($result)) {
echo "<br>";echo "<a href="archivio_dip2.php?tipo=" . $row[2] . ""><b>".$row[2]."</b></a>";
//DA QUI SELEZIONO L'AZIENDA..ok
[/php]2° file) archivio_dip2.php
[php]$tipo=$_GET['tipo'];
print "<br>";
print "ditta: "."$tipo"."<br>"; //stampa l'azienda//recupero i dati dell'archivio dipendenti dal database
$dipe = "SELECT * FROM anag_dip WHERE id_azienda= '$tipo' order by cognome";
$result3 = mysql_query($dipe,$connessione);
while($row3 = mysql_fetch_array($result3)) {
echo "<br>";
//$row3[3]= stampa tutti i dipendentiecho "dip: "."<a href="dettaglio_dipe.php? tipo2=".$row3[3]."?tipo=".$tipo.""><b>".$row3[3]." ".$row3[4]."</b></a>"; //modificalo così
[/php]3° file) dettaglio.dipe.php
[php]$tipo=$_GET['tipo']; // aggiungi questo
$tipo2=$_GET['tipo2'];$prova1="SELECT id_azienda FROM anag_dip WHERE cognome='$tipo2' AND id_azienda=(SELECT user_id FROM anag_ditta WHERE ragione_sociale='$tipo')" ; // varia questo
$prova2 = mysql_query($prova1,$connessione);
$prova3 = mysql_fetch_array($prova2);
$userid4 = $prova3[0];
print "<br>";
print "azienda: "."$userid4"."<br>"; // credo dovrebbe andare adesso$dipe = "SELECT * FROM anag_dip WHERE cognome = '$tipo2' and id_azienda = '$userid4'";
$result = mysql_query($dipe,$connessione);
while($row = mysql_fetch_array($result)) {print $row[4];
ecc . ecc...
[/php]
Credo ora dovrebbe andare
-
@Samyorn said:
Se le inserisci così per il futuro si capisce meglio
1° file) archivio_dip1.php
[php]$query="SELECT * FROM tbl_users WHERE user_name='".$_SESSION['logged'][0]."'" ;
$result = mysql_query($query,$connessione);
$row = mysql_fetch_array($result);
$userid = $row[0];
print "<br>";
print "utente n° "."$userid"."<br>";$azie = "SELECT * FROM anag_ditta WHERE id_utenteee= $userid order by ragione_sociale";
$result = mysql_query($azie,$connessione);
while($row = mysql_fetch_array($result)) {
echo "<br>";echo "<a href="archivio_dip2.php?tipo=" . $row[2] . ""><b>".$row[2]."</b></a>";
//DA QUI SELEZIONO L'AZIENDA..ok
[/php]2° file) archivio_dip2.php
[php]$tipo=$_GET['tipo'];
print "<br>";
print "ditta: "."$tipo"."<br>"; //stampa l'azienda//recupero i dati dell'archivio dipendenti dal database
$dipe = "SELECT * FROM anag_dip WHERE id_azienda= '$tipo' order by cognome";
$result3 = mysql_query($dipe,$connessione);
while($row3 = mysql_fetch_array($result3)) {
echo "<br>";
//$row3[3]= stampa tutti i dipendentiecho "dip: "."<a href="dettaglio_dipe.php? tipo2=".$row3[3]."?tipo=".$tipo.""><b>".$row3[3]." ".$row3[4]."</b></a>"; //modificalo così
[/php]3° file) dettaglio.dipe.php
[php]$tipo=$_GET['tipo']; // aggiungi questo
$tipo2=$_GET['tipo2'];$prova1="SELECT id_azienda FROM anag_dip WHERE cognome='$tipo2' AND id_azienda=(SELECT user_id FROM anag_ditta WHERE ragione_sociale='$tipo')" ; // varia questo
$prova2 = mysql_query($prova1,$connessione);
$prova3 = mysql_fetch_array($prova2);
$userid4 = $prova3[0];
print "<br>";
print "azienda: "."$userid4"."<br>"; // credo dovrebbe andare adesso$dipe = "SELECT * FROM anag_dip WHERE cognome = '$tipo2' and id_azienda = '$userid4'";
$result = mysql_query($dipe,$connessione);
while($row = mysql_fetch_array($result)) {print $row[4];
ecc . ecc...
[/php]
Credo ora dovrebbe andarecavolo, non avrei potuto mai ragionare cos' bene... Pero' mi da un errore:
Notice: Undefined index: tipo in C:\Programmi\EasyPHP 2.0b1\www\pagina privata con SESSIONI-prova smanetto\dettaglio_dipe.php on line 62
azienda:
dipendente beviglia?tipo=Rnc sasLa riga 62 è dove c'è $tipo=$_GET['tipo'];
-
@maubox8 said:
cavolo, non avrei potuto mai ragionare così bene... Pero' mi da un errore:
Notice: Undefined index: tipo in C:\Programmi\EasyPHP 2.0b1\www\pagina privata con SESSIONI-prova smanetto\dettaglio_dipe.php on line 62
azienda:
dipendente beviglia?tipo=Rnc sasLa riga 62 è dove c'è $tipo=$_GET['tipo'];
probabilmente c'è qualcosa che non va nel passaggio di archivio_dip2.php:
echo "dip: "."<a href="dettaglio_dipe.php? tipo2=".$row3[3]."?tipo=".$tipo.""><b>".$row3[3]." ".$row3[4]."</b></a>";
-
Si perchè ho sbagliato
varia questo:
[php]...dettaglio_dipe.php?tipo2=".$row3[3]."&tipo=".$tipo."...[/php]
-
@Samyorn said:
Si perchè ho sbagliato
varia questo:
[php]...dettaglio_dipe.php?tipo2=".$row3[3]."&tipo=".$tipo."...[/php]grazie...stavo lavorando proprio su quello! Ora non da più errore pero' ora non mi stampa il nome dell'azienda, mi stampa solo il cognome dipendente e senza i dettagli...
-
trovato!
Dovevo mettere ragione_sociale anzichè user_id$prova1="SELECT id_azienda FROM anag_dip WHERE cognome='$tipo2' AND id_azienda=(SELECT ragione_sociale FROM anag_ditta WHERE ragione_sociale='$tipo')" ;
Grazie! Sei un grande!!
Vorrei essere al tuo livello!
-
@maubox8 said:
trovato!
Dovevo mettere ragione_sociale anzichè user_id$prova1="SELECT id_azienda FROM anag_dip WHERE cognome='$tipo2' AND id_azienda=(SELECT ragione_sociale FROM anag_ditta WHERE ragione_sociale='$tipo')";
scusa id_azienda di anag_dip è ragione_sociale di anag_ditta??
credevo fosse user_id di anag_ditta.....:?
se id_azienda di anag_dip è ragione_sociale di anag_ditta allora puoi evitare la subquery e scrivere direttamente:
[php]$prova1="SELECT id_azienda FROM anag_dip WHERE cognome='$tipo2' AND id_azienda='$tipo'";[/php]@maubox8 said:
Grazie! Sei un grande!!
Vorrei essere al tuo livello!
-
@Samyorn said:
scusa id_azienda di anag_dip è ragione_sociale di anag_ditta??
credevo fosse user_id di anag_ditta.....:?
se id_azienda di anag_dip è ragione_sociale di anag_ditta allora puoi evitare la subquery e scrivere direttamente:
[php]$prova1="SELECT id_azienda FROM anag_dip WHERE cognome='$tipo2' AND id_azienda='$tipo'";[/php]esattamente!
Perfetto, ho tolto la subquery!
Grazie ancora!
-
de nada