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

  • Creatore Discussione Creatore Discussione Emix
  • Data di inizio Data di inizio
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
 
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>";
 
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...
 
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???
 
Non ho controllato il codice che hai scritto ma il ragionamento è corretto
 
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???
 

Discussioni simili