Paso de Variables

jpclp
14 de Diciembre del 2005
Estoy desarrollando una aplicación para crear facturas.

La aplicación realiza lo siguiente:

En una página, se busca la empresa a la cual se quiere realizar la factura.
Este es el código:

<form action="facturar.php" method="post">
<table width="93%" border="0" cellspacing="0" align="center"><tr>
<td width="54%"><font size="2" face="Arial, Helvetica, sans-serif">Introduzca la empresa<font size="-3">*</font></font></td>
<td width="46%"><div align="left"><font size="2" face="Arial, Helvetica, sans-serif">
<input name="empresa" type="text" id="empresa" value="" size="30" class="texto"></font></div></td></tr><tr>
<td colspan="2"><font size="-3">*Si desea ver todos las empresas,
deje vacía la caja de texto y pulse buscar cliente</font></td></tr>
<tr> <td colspan="2"><div align="center">
<input type="submit" name="Submit" value="Buscar Cliente">
</div></td></tr></table>
</form>

Y este es el código del fichero que muestra esos datos (facturar.php)

<?
$servidor="localhost";
$usuario="root";
$password="";
$base="clientes";
$con=mysql_connect($servidor,$usuario,$password);
mysql_select_db($base,$con);
$busca = "SELECT * FROM empresas WHERE empresa LIKE \'%$empresa%\'";
$contarok= mysql_query($busca,$con);
while ($registro = mysql_fetch_array ($contarok)) {
$id = $registro ["id"];
echo "<table width = 80% border =2>";
echo "<tr><td>";
echo "<font size =\'2\' face =\'Arial, Helvetica, sans-serif\'>";
echo $registro[\'empresa\']."<td width = 20%><font size=\'2\' face=\'Arial, Helvetica, sans-serif\'>";
echo $registro[\'localidad\']."<td width = 20%><font size=\'2\' face=\'Arial, Helvetica, sans-serif\'>";
echo $registro[\'provincia\']."<td width = 20%><font size=\'2\' face=\'Arial, Helvetica, sans-serif\'>";
echo "<td width= 20%><font size=\'2\' face=\'Arial, Helvetica, sans-serif\'>"."<a href=facturar2.php?id=$id>"."<strong>Crear Factura</strong>";
echo "</table>";
}
?>

Hasta aquí todo bien.

A continuación, según se pincha en un cliente para realiza la factura, se muestra este otro formulario en el que se introducen los datos del cliente completos, así como los datos de productos a facturar. Este es su código (facturar2.php):

<form name="form1" method="post" action="facturar3.php"><p>
<?
$servidor="localhost";
$usuario="root";
$password="";
$base="clientes";
$con=mysql_connect($servidor,$usuario,$password);
mysql_select_db($base,$con);
$insertar = "SELECT * FROM empresas WHERE id = \'$id\'";
$contarok= mysql_query($insertar,$con);
while ($registro = mysql_fetch_array ($contarok)) {
echo "<font size =\'2\' face =\'Arial, Helvetica, sans-serif\'>";
echo "<strong>VA A CREAR UNA FACTURA PARA LA SIGUIENTE EMPRESA</strong><br><br>";
echo "<font size =\'2\' face =\'Arial, Helvetica, sans-serif\'>";
echo "<strong>EMPRESA: </strong>";
echo $registro[\'empresa\']."<font size=\'2\' face=\'Arial, Helvetica, sans-serif\'><br>";
echo "<strong>SOCIEDAD: </strong>";
echo $registro[\'sociedad\']."<font size=\'2\' face=\'Arial, Helvetica, sans-serif\'><br>";
echo "<strong>PERSONA DE CONTACTO: </strong>";
echo $registro[\'contacto\']."<font size=\'2\' face=\'Arial, Helvetica, sans-serif\'><br>";
echo "<strong>CIF: </strong>";
echo $registro[\'cif\']."<font size=\'2\' face=\'Arial, Helvetica, sans-serif\'><br>";
echo "<strong>NUMEROS DE TELEFONO: </strong>";
echo $registro[\'telefono\']."<font size=\'2\' face=\'Arial, Helvetica, sans-serif\'>";
echo " y ";
echo $registro[\'telefono2\']."<font size=\'2\' face=\'Arial, Helvetica, sans-serif\'><br>";
echo "<strong>NUMERO DE FAX: </strong>";
echo $registro[\'fax\']."<font size=\'2\' face=\'Arial, Helvetica, sans-serif\'><br>";
echo "<strong>DIRECCION: </strong>";
echo $registro[\'direccion\']."<font size=\'2\' face=\'Arial, Helvetica, sans-serif\'><br>";
echo "<strong>CODIGO POSTAL: </strong>";
echo $registro[\'postal\']."<font size=\'2\' face=\'Arial, Helvetica, sans-serif\'><br>";
echo "<strong>LOCALIDAD Y PROVINCIA: </strong>";
echo $registro[\'localidad\']."<font size=\'2\' face=\'Arial, Helvetica, sans-serif\'>";
echo "( ";
echo $registro[\'provincia\']."<font size=\'2\' face=\'Arial, Helvetica, sans-serif\'>";
echo " )";
echo "<br>";
echo "<strong>E-MAIL Y PAGINA WEB: </strong>";
echo $registro[\'email\']."<font size=\'2\' face=\'Arial, Helvetica, sans-serif\'>";
echo " y ";
echo $registro[\'web\']."<font size=\'2\' face=\'Arial, Helvetica, sans-serif\'><br>";
}
?>
<table width="80%" border="0" cellspacing="0"><tr>
<td><font size="2" face="Arial, Helvetica, sans-serif">DESCRIPCION</font></td>
<td><font size="2" face="Arial, Helvetica, sans-serif">UDS</font></td>
<td><font size="2" face="Arial, Helvetica, sans-serif">PRECIO</font></td>
</tr><tr> <td width="23%" height="26"><font size="2" face="Arial, Helvetica, sans-serif">PRODUCTOS</font></td>
<td width="32%"><font size="2" face="Arial, Helvetica, sans-serif">
<input name="productos" type="text" size="10""></font></td>
<td width="45%"><font size="2" face="Arial, Helvetica, sans-serif">
<input name="precio1" type="text" id="precio1" size="10">
€ </font></td></tr>
<input type="submit" name="Submit" value="Enviar datos">

Hasta aquí igualmente todo bien, se muestra el formulario para insertar los productos y en la parte superior los datos del cliente seleccionado. Pero el problema viene a continuación, cuando pulso en el botón enviar. Quiero que al pulsar el botón enviar y me lleve al fichero facturar3.php, se muestre la factura por completo, con los datos del cliente y los productos que inserto. Pero no aparecen, aparecen los datos de los productos, pero los datos del cliente desaparecen.

Este es el código del fichero facturar3.php:

<?
$servidor="localhost";
$usuario="root";
$password="";
$base="clientes";
$con=mysql_connect($servidor,$usuario,$password);
mysql_select_db($base,$con);
$insertar = "SELECT * FROM empresas WHERE id = \'$id\'";
$contarok= mysql_query($insertar,$con);
while ($registro = mysql_fetch_array ($contarok)) {
echo "<font size =\'2\' face =\'Arial, Helvetica, sans-serif\'>";
echo "<strong>VA A CREAR UNA FACTURA PARA LA SIGUIENTE EMPRESA</strong><br><br>";
echo "<font size =\'2\' face =\'Arial, Helvetica, sans-serif\'>";
echo "<strong>EMPRESA: </strong>";
echo $registro[\'empresa\']."<font size=\'2\' face=\'Arial, Helvetica, sans-serif\'><br>";
echo "<strong>SOCIEDAD: </strong>";
echo $registro[\'sociedad\']."<font size=\'2\' face=\'Arial, Helvetica, sans-serif\'><br>";
echo "<strong>PERSONA DE CONTACTO: </strong>";
echo $registro[\'contacto\']."<font size=\'2\' face=\'Arial, Helvetica, sans-serif\'><br>";
echo "<strong>CIF: </strong>";
echo $registro[\'cif\']."<font size=\'2\' face=\'Arial, Helvetica, sans-serif\'><br>";
echo "<strong>NUMEROS DE TELEFONO: </strong>";
echo $registro[\'telefono\']."<font size=\'2\' face=\'Arial, Helvetica, sans-serif\'>";
echo " y ";
echo $registro[\'telefono2\']."<font size=\'2\' face=\'Arial, Helvetica, sans-serif\'><br>";
echo "<strong>NUMERO DE FAX: </strong>";
echo $registro[\'fax\']."<font size=\'2\' face=\'Arial, Helvetica, sans-serif\'><br>";
echo "<strong>DIRECCION: </strong>";
echo $registro[\'direccion\']."<font size=\'2\' face=\'Arial, Helvetica, sans-serif\'><br>";
echo "<strong>CODIGO POSTAL: </strong>";
echo $registro[\'postal\']."<font size=\'2\' face=\'Arial, Helvetica, sans-serif\'><br>";
echo "<strong>LOCALIDAD Y PROVINCIA: </strong>";
echo $registro[\'localidad\']."<font size=\'2\' face=\'Arial, Helvetica, sans-serif\'>";
echo "( ";
echo $registro[\'provincia\']."<font size=\'2\' face=\'Arial, Helvetica, sans-serif\'>";
echo " )";
echo "<br>";
echo "<strong>E-MAIL Y PAGINA WEB: </strong>";
echo $registro[\'email\']."<font size=\'2\' face=\'Arial, Helvetica, sans-serif\'>";
echo " y ";
echo $registro[\'web\']."<font size=\'2\' face=\'Arial, Helvetica, sans-serif\'><br>";
}
?>
<font size="2" face="Arial, Helvetica, sans-serif">
<p> Estos son los datos correspondientes a la factura: </p>
<form name="form1" method="post" action="facturar4.php">
<table width="80%" border="0" cellspacing="0"><tr>
<td><font size="2" face="Arial, Helvetica, sans-serif">DESCRIPCION</font></td>
<td><font size="2" face="Arial, Helvetica, sans-serif">UDS</font></td>
<td><font size="2" face="Arial, Helvetica, sans-serif">PRECIO</font></td>
<td><font size="2" face="Arial, Helvetica, sans-serif">PRECIO TOTAL</font></td></tr>
<tr> <td width="21%" height="26"><font size="2" face="Arial, Helvetica, sans-serif">PRODUCTOS</font></td>
<td width="21%"><p><font size="2" face="Arial, Helvetica, sans-serif">
<?
echo $productos;
echo " ";
?>
</p></td>
?>
<td width="16%"><font size="2" face="Arial, Helvetica, sans-serif">
<?
echo $precio1;
echo " ";
?>
€</font></td>
<td width="16%"><font size="2" face="Arial, Helvetica, sans-serif">
<?
$total1= $productos * $precio1;
echo $total1;
echo " ";
?>

Lo último lo realiza bien, es decir muestra los productos, precios y totales, pero pierdo los datos del cliente, he probado a sacarlo del formulario (en el fichero facturar2.php), etc, pero no consigo mostrarlo, se pierden esos datos.

¿Qué puedo hacer?. Necesito todos esos datos, para volver a mandarlos a otro fichero (facturar4.php) donde se insertarán todos los datos en una base de datos, para llevar un control de todas las facturas.

NOTA:
He probado a hacer una modificación en el fichero facturar2.php, he eliminado la línea:
<input type="submit" name="Submit" value="Enviar datos">, y he puesto:
<?
echo "<font size=\'2\' face=\'Arial, Helvetica, sans-serif\'>"."<a href=facturar3.php?id=$id>"."<strong>Crear Factura</strong>";
?>

Y si me pasa los datos del cliente, pero ahora no me pasa los datos del formulario, es decir o tengo una cosa o tengo la otra, pero las dos no las tengo.
¿ Qué puedo hacer ?


Perdonar por mi extensión, pero he intentado dejarlo lo más claro posible.