Prendere valori da una tabella e concatenarli ad un altra...

Emix

Utente Attivo
15 Feb 2010
596
0
16
Salve a tutti,
ho un problema che sembra facile da risolvere ma non ne vengo a capo...
Io uso PHP e sto creando una struttura di clienti con destinazioni diverse...

Ho fatto due tabelle:

Tabella clienti:

clienti.png

Tabella sedi:

sedi.png

Come potete vedere il campo in comune che hanno è piva (partita iva)...
A me servirebbe riuscire ad estrapolare le eventuali sedi diverse del cliente.. Poi le varie ubicazioni e la sede verranno messe dentro una select...
Ho provato ad usare questa query ma non mi restitituisce nulla:

Codice:
SELECT * FROM clienti as c LEFT JOIN sedi as s ON s.piva = c.piva WHERE s.piva = c.piva;

Sbaglio io qualcosa?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
prova così, al massimo non funzia
PHP:
$query="SELECT from clienti as c, sedi as s WHERE s.piva = c.piva";
e se vuoi per un particolare ckiente
PHP:
$query="SELECT from clienti as c, sedi as s WHERE s.piva = c.piva AND c.ragione='$da_post'";
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
Ciao ho provato come mi hai scritto te... ma mi restituisce errore nell'esplosione delle righe...
metto la pagina intera e posto errore:


PHP:
<?php
session_start();
include('connect.php');
$cliente=$_POST['ragione'];
$ctrl_cliente = @mysql_query("SELECT * FROM clienti WHERE ragione='$cliente'") or die (mysql_error());
                if(@mysql_num_rows($ctrl_cliente)>0)
                {
			    $_SESSION['id'] = $id;
				}
$query = mysql_query("SELECT from clienti as c, sedi as s WHERE s.piva = c.piva AND c.id='$id'");  
    $righe = mysql_fetch_array($query); // qui mi da l'errore... ossia la riga 11
	$ragione=$righe['ragione'];
	$ragione2=$righe['ragione2'];
	$indirizzo=$righe['indirizzo'];
	$cap=$righe['cap'];
	$citta=$righe['citta'];
	$pr=$righe['provincia'];
	$piva=$righe['piva']; 
	$ubicazione=$righe['ubicazione1'];
	$citta1=$righe['citta1'];
	$indirizzo1=$righe['indirizzo1'];
	echo "Ragione Sociale:".$ragione."<br>";
	echo "Ragione Sociale2:".$ragione2."<br>";
	echo "Indirizzo:".$indirizzo."<br>";
	echo "Cap:".$cap."<br>";
	echo "Citta:".$citta."<br>";
	echo "Provincia:".$pr."<br>";
	echo "P.Iva:".$piva."<br>";
	echo "Ubicazione diversa:".$ubicazione."<br>";
	echo "Citta diversa:".$citta1."<br>";
	echo "Indirizzo diverso:".$indirizzo1."<br>";
	
?>


Codice:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/laviadellanima.com/public_html/pdf/provadb.php on line 11
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
ci sono riuscito... La query giusta è :

PHP:
<?php
$query = mysql_query("SELECT * FROM clienti as c LEFT JOIN sedi as s ON s.piva = c.piva WHERE s.piva='$piva'");
?>
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ho provato ad usare questa query ma non mi restitituisce nulla:
Codice:
SELECT * FROM clienti as c LEFT JOIN sedi as s ON s.piva = c.piva WHERE s.piva = c.piva;
Sbaglio io qualcosa?
va senza la WHERE
Codice:
SELECT * FROM clienti as c LEFT JOIN sedi as s ON s.piva = c.piva
io preferisco questa sintassi per le join ma fa la stessa identica cosa della tua
Codice:
SELECT *
FROM clienti c
JOIN sedi s USING (piva)
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
se io una volta trovate le varie sedi... le volessi mettere dentro una select e passare in sessione quelle scelte come potrei fare?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
dici che non funzia, ma da dove salta fuori quell'id
$query = mysql_query("SELECT from clienti as c, sedi as s WHERE s.piva = c.piva AND c.id='$id'");
io la uso regolarmente (non con i clienti ma per altre cose)
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
l'ho cambiata, era errata.... funzionava anche la tua chairamente... ora ho il problema di spedire i valori dentro una select e passare in sessione quella selezionata....
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
non capisco che dato/i vuoi mettere in una select? (innagino <select>...</select> ?)
poi mi è venuto un piccolo dubbio guardando la tua seconda tabella: e se il cliente ha 5 sedi?
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
allora al max il cliente ha 3 sedi... il problema è che vorrei emttere dentro la select le sedi del cliente selezionato... Esempio

Opzione 1 inidrizzo1 cap1 citta1
Opzione2 Indirizzo2 cap2 citta2
Opzione 3 Indirizzo3 cap3 citta3

Ma chiaramente devono essere lette dal db.. La lettura l'ho fatta non capisco come passare in sessione una delle tre opzioni selezionate tramite select...
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ora ti confondo un po le idee
Avrei strutturato la tabella in modo diverso:
non ubicazione1 2 3 citta 1 2 3 ma solo un campo ubicazione e uno citta e cosi per gli altri
se un azienda ha piu ubicazioni non fai altro che inserire piu righe (uno per ogni ubicazione diversa)
PHP:
<?php

$query = "SELECT id,ubicazione
                FROM clienti c
                JOIN sedi s USING (piva)
                WHER c.piva='$piva'";
$result = mysql_query($query);
echo "<select>";
while ($row = mysql_fetch_assoc($result)) {
    echo "<option value='" . $row['id'] . "'>" . $row['ubicazione'] . "</option>";
}
echo "</select>";
?>
Il consiglio in ogni caso è di abbandonare l'estensione mysql e abituarti ad usare almeno la mysqli
purtroppo non sappiamo quando ma prima o poi saremmo costretti a non usarla piu
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
non molto non preoccuparti
non è necessario conoscere la programmazione ad oggetti, puoi usare mysqli nello stesso modo con cui usi mysql
molte funzioni sono uguali
mysql_query è uguale a mysqli_query
e cosi per molte altre, sempre che non decidi di programmare ad oggetti
solo che l'estensione mysql , piu che altro per problemi di sicurezza, è stata deprecata
dai un occhiata al manuale ( ora non riesco a linkartelo)
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
capito dopo do uno sguardo... Nel mentre a parte la confusione che mi hai generato addosso asd, mi aiuti a capire come fare per mettere in una select le opzioni e passare in sessione la selezionata pls??
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
se proprio non puoi ristrutturare la tabella una possibile orrenda soluzione potrebbe essere questa
PHP:
echo "<select>";
echo "<option value='1;" . $row['id'] . "'>" . $row['ubicazione1'] . "</option>";
echo "<option value='2;" . $row['id'] . "'>" . $row['ubicazione2'] . "</option>";
echo "<option value='3;" . $row['id'] . "'>" . $row['ubicazione3'] . "</option>";
echo "</select>";
in sessione ti ritroverai una stringa composta dal numero di ubicazione e dall'id della sede
PHP:
$_SESSION['sede'] = "1;58";
dovrai esploderla per poterla usare
sicuramente ci saranno altre soluzioni
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
forse non mi riesco a spiegare io... ecco perche, rileggendo il tuo post sopra noto che non mi son spiegato...

Allora Io ho una tabella clienti, in questa tabella ho tutte le informazioni che mi servono per far si che in un DDT e/o fattura io possa tranquillamente fare il documento compilando automaticamente i campi da me richiesti...

La tabella Sedi (che forse è meglio se rinomino ubicazioni) non è altro che un contenitore dove ci vado a mettere le varie destinazioni del cliente GIA INSERITO. Per far si che questo cliente venga riconosciuto uso come campo in comune la partita iva (che per legge è UNIVOCA).
A questo punto inserendo un cliente base :

Ragione sociale = Pippo srl
Indirizzo = via roma,1
Cap = 00100
Citta = Roma
Provincia = RM
Piva = 12345678901

Ho tutto per far si che compilo il documento, ma quando devo fare un ddt ed il cliente in questione ha sede legale via roma, 1 00100 roma RM e UBICAZIONE di Esercizio a Via firenze,1 00001 Firenze FI devo poter mettere la destinazione diversa. Ora in questo caso ho una sola ubicazione diversa, la inserisco nella tabella sedi e ottendo :

Indirizzo1 = Via Firenze,1
Citta1= Firenze
Cap1= 00001
Provincia1= FI
Piva=12345678901

Ora, se sto compilando un documento, e selezionando il cliente mi accorgo che ha una destinazione diversa, deve apparire una select dove trovero:

Via roma,1-00100-Roma-RM
Via Firenze,1-00001-Firenze-FI

E selezionando quella di mio interesse passi in sessione i 4 valori, cosi che nella pagina seguente li recupero e creo DDT e/o Fattura...
Mi sono spiegato meglio ora credo...
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
allora forse ti conviene evitare la JOIN: fai una select diretta nella tabella ubicazioni where piva = $piva se trovi uno o piu risultati mostri la <select> con un while come ti ho fatto vedere nel post sopra
nella pagina sucessiva ricevendo l'id in sessione fai un altra select mirata sulla tabella ubicazioni per recuperare indirizzo cap citta etc
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
no perche gli id della tabella sedi e quelli della tabella clienti sono diversi.. unico campo uguale è la partita iva...
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
PHP:
<?php
$query = "SELECT id,ubicazione
                FROM sedi 
                WHER piva='$piva'";
$result = mysql_query($query);
if (mysql_num_rows($result) > 0) {
    echo "<select>";
    while ($row = mysql_fetch_assoc($result)) {
        echo "<option value='" . $row['id'] . "'>" . $row['ubicazione'] . "</option>";
    }
    echo "</select>";
}
?>
nel value avrai l'id della tabella sedi , non puoi confonderti
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
quindi in questa maniera ho evitato la inner join selezionando direttamente le varie ubicazioni tramite select diretta? I numeri in sessione come li faccio diventare stringhe??
 
Discussioni simili
Autore Titolo Forum Risposte Data
C prendere dei valori da Plugin e inserirli nel database joomla Joomla 0
V Generare array da ciclo while e prendere valori casuali PHP 4
V Scorrere elementi DOM e prendere dei valori Javascript 8
A Funzione unica per prendere e recuperare valori Javascript 0
M Prendere i valori da un input type="text" senza usare il bottone "submit" PHP 2
F selezionare dati tra due tabelle e prendere max valori PHP 10
O la select per prendere dati da un campo ENUM ripete dieci volte i valori PHP 2
F Prendere contenuti da una tabella PHP 4
J Prendere dati del database e metterli nel codice php PHP 1
R [PHP] Prendere dati da moduli di ricerca esterni PHP 4
trattorino [PHP] prendere contenuto dentro un div PHP 3
felino [VBScript] XML Prendere il Value di un childnode attravervo il nome del nodo Visual Basic 0
felino [VbScript] SwfObject: prendere il contenuto di una cella Visual Basic 0
D Libro per php,quale prendere? PHP 1
H Prendere una parte dall'URL PHP 5
H Email di conferma e prendere il nome. PHP 1
C Prendere la grafica di un tema gratuito wordpress WordPress 2
D prendere parte di testo da un sito .NET Framework 2
L Prendere il codice di una pagina e inserirlo in una variabile PHP 2
ivarello Prendere dati da un altro sito PHP 2
Frank10 Come funzionano le foto di altri siti? Si possono prendere o no? Leggi, Normative e Fisco 5
F prendere 3 record di ogni categoria da una sola tabella PHP 5
L prendere 2 risultati casuali da database PHP 12
N Prendere dati dal database Mysql PHP 8
Z Prendere e leggere il nome ID Javascript 1
Frank10 Siti web dove prendere immagini sicure? HTML e CSS 5
valient13 prendere nomi da database PHP 2
S Prendere dati da un sito web esterno e mostrarli sul proprio PHP 2
zighy Prendere visione della notifica PHP 2
N Prendere immagine da web e inserire su proprio sito PHP 2
N Prendere un testo da un database Snippet PHP 0
H Php,Sql.. prendere i dati prima di oggi PHP 7
Dragon Problema: prendere un comando da un iframe e passarlo ad un altro HTML e CSS 2
G Spero di prendere 6 Presenta il tuo Sito 2
L dove la posso prendere questo java? Javascript 2
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
G Invio di più valori con la stessa checkbox PHP 4
M PHP/MySQL - Estrarre valori min e max di ogni gruppo PHP 5
F Stampare valori di un database PHP 14
T Recupero valori tramite $_GET PHP 4
otto9due Inserire o aggiornare tabella my sql controllando una coppia di valori PHP 7
M Problemi con la stampa dei valori in php PHP 1
M Passaggio Valori checbox in textarea Javascript 1
D passare valori da database sql a php PHP 1
O Recupero valori da listato Javascript 0
R Raggruppare valori array PHP 5
R Estrarre valori duplicati più volte PHP 0
T recupero valori select multipla da android Javascript 3
L estrarre valori max tra più tabelle MySQL 2
MarcoGrazia Valori di ritorno json via ajax non visti. jQuery 1

Discussioni simili