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

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
in sessione ti rimane l'id dell'ubicazione quando è il momento di stampare il ddt lo usi in una query per recuperare il resto dei dati
 

Emix

Utente Attivo
15 Feb 2010
594
0
16
Oddio sarò deficente causa orario, ma dove passi l'id in sessione???

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>";
 

Emix

Utente Attivo
15 Feb 2010
594
0
16
in sessione ti rimane l'id dell'ubicazione quando è il momento di stampare il ddt lo usi in una query per recuperare il resto dei dati
e cmq ora che ci penso anche che fosse io potrei avere piu destinazioni... Quindi non potrei sapere quale passa.... ho l'id ma non ho le descrizioni o sbaglio? a me servirebbe che le varie ubicazioni vengano messe dentro una select... una volta selezionata passi in sessione i valori della select...
 

Emix

Utente Attivo
15 Feb 2010
594
0
16
forse comincio a capire cosa intendi te...

La tabella sedi a questo punto sarà cosi :

sedi.png

Quando io vado ad inserire il cliente non faccio altro che fare piu campi di inserimento(al max 3) e inserisco ogni volta con un id nuovo tutti i campi, tranne la partita iva che me la riporto avanti ogni record.

A questo punto se io faccio :

PHP:
<?php
include('connect.php');
$cliente=$_POST['ragione'];// è la ragione sociale passata tramite form precedente a questo
$ctrl_cliente = @mysql_query("SELECT * FROM clienti WHERE ragione='$cliente'") or die (mysql_error());
                if(@mysql_num_rows($ctrl_cliente)>0)
                {
				$rows = mysql_fetch_array($ctrl_cliente); 
			        $id=$rows['id'];
				$piva=$rows['piva'];
				}
				$query =mysql_query("SELECT *
                FROM sedi 
                WHERE 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['ubicazione1'] . "</option>";
    }
    echo "</select>";  
	}
?>
A questo punto selezionando l'ubicazione in lista mi troverò in sessione l'id di appartenenza, quindi alla pagina di stampa del ddt faccio una select con WHERE l'id in sessione ed esplodo ubicazione citta cap e provincia...

Dico giusto???
Unica cosa che non capisco per far si che l'id sia in sessione non dovrei fare :

PHP:
<?php
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)
                {
				$rows = mysql_fetch_array($ctrl_cliente); 
			        $_SESSION['id']=$rows['id'];
				$_SESSION['piva']=$rows['piva'];
				}
				$query =mysql_query("SELECT *
                FROM sedi 
                WHERE piva='$_SESSION['piva']'");
$result = mysql_query($query);
if (mysql_num_rows($result) > 0) {
    echo "<select>";
    while ($row = mysql_fetch_assoc($result)) {
        echo "<option value='" . $_SESSION['id']=$row['id'] . "'>" . $row['ubicazione1'] . "</option>";
    }
    echo "</select>";  
	}
?>
O sbaglio???
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Non ho controllato il codice che hai scritto ma il ragionamento è corretto
 

Emix

Utente Attivo
15 Feb 2010
594
0
16
uhm.. stavo sistemando la tabella e l'inserimento dei valori in essa...

Il form (solo la parte relativa alla sede) è cosi composto :

HTML:
<table border="0" cellpadding=5 cellspacing=5>
  <tr>
    <td><font face="Eras Medium ITC" class="colore">Sede Operativa:</font></td>
    <td><input type=text name="ubicazione[]" size=35 maxlength=40 value="" /></td>
    <td width="50"></td>
  </tr>
  <tr>
    <td><font face="Eras Medium ITC" class="colore">CAP:</font></td>
    <td><input type=text name="cap_ubi[]" size=35 maxlength=40 value="" /></td>
    <td width="50"></td>
  </tr>
  <tr>
    <td><font face="Eras Medium ITC" class="colore">Citta':</font></td>
    <td><input type=text name="citta_ubi[]" size=35 maxlength=40 value="" /></td>
    <td width="50"></td>
  </tr>
  <tr class="colore">
    <td><font face="Eras Medium ITC">Provincia:</font></td>
    <td><input type=text name="provincia_ubi[]" size=35 maxlength=40 value="" /></td>
    <td width="50"></td>
  </tr>
  <tr>
    <td><font face="Eras Medium ITC" class="colore">Sede Operativa:</font></td>
    <td><input type=text name="ubicazione[]" size=35 maxlength=40 value="" /></td>
    <td width="50"></td>
  </tr>
  <tr>
    <td><font face="Eras Medium ITC" class="colore">CAP:</font></td>
    <td><input type=text name="cap_ubi[]" size=35 maxlength=40 value="" /></td>
    <td width="50"></td>
  </tr>
  <tr>
    <td><font face="Eras Medium ITC" class="colore">Citta':</font></td>
    <td><input type=text name="citta_ubi[]" size=35 maxlength=40 value="" /></td>
    <td width="50"></td>
  </tr>
  <tr class="colore">
    <td><font face="Eras Medium ITC">Provincia:</font></td>
    <td><input type=text name="provincia_ubi[]" size=35 maxlength=40 value="" /></td>
    <td width="50"></td>
  </tr>
</table>
Mentre la parte php che si occupa di smistare i dati dentro sedi cosi :

PHP:
<?php
$piva = $_POST['piva'];
$piva = addslashes(htmlspecialchars(($_POST['piva'])));
$ubicazione = $_POST['ubicazione'];
$cap_ubi = $_POST['cap_ubi'];
$citta_ubi = $_POST['citta_ubi'];
$provincia_ubi = $_POST['provincia_ubi'];

$conta=count($ubicazione);
for ($i=0;$i<$conta;$i++) {
$query2 ="INSERT INTO sedi (
id,ubicazione,cap,citta,provincia,piva)
VALUES (NULL,'$ubicazione[$i]','$cap_ubi[$i]','$citta_ubi[$i]','$provincia_ubi[$i]','$piva')";
}
	if (@mysql_query($query2)) {
	$conta=count($ubicazione);
    for ($i=0;$i<$conta;$i++) {
	echo $ubicazione[$i]."<br>";
	echo $citta_ubi[$i]."<br>";
	echo $cap_ubi[$i]."<br>";
	echo $provincia_ubi[$i]."<br>";
	}
?>
A video mi stampa i dati correttamente, ma nel db me ne mette solo una... la seconda....

Perche mai???