Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/02/2004, 15:41
Avatar de andinistas
andinistas
 
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 20 años, 9 meses
Puntos: 0
Pregunta Consulta SQL en PHP

Hola a todos, tengo el siguiente problema por resolver y me ha costado un montón.


tengo una base de datos en mysql estructurada de la siguiente forma:

Clientes (id, fecharegistro, ultimoingreso, compania, usuario, pass, nivel_acceso, email, direccion, telefono1, telefono2, telefono3, fax)

contactos (id, nombres, apellidos, compania, cargo, email, telefono1, telefono2, telefono3, celular, fax)

cargos (idcargo, cargo)


la tabla contactos se relaciona con la tabla clientes, ya que al mostrar X cliente con sus datos, mostraré a su vez los contactos adheridos a el. Para esto el orden de ingreso de registros es el siguiente:

1. Se ingresa un cliente;

Código PHP:

//me traigo las variables del form anterior
$fecharegistro $_POST["fecharegistro"];
$compania $_POST["compania"];
$usuario $_POST["usuario"];
$pass $_POST["pass"];
$nivel_acceso $_POST["nivel_acceso"];
$email $_POST["email"];
$direccion $_POST["direccion"];
$telefono1 $_POST["telefono1"];
$telefono2 $_POST["telefono2"];
$telefono3 $_POST["telefono3"];
$fax $_POST["fax"];

$sql =mysql_query("INSERT INTO $tablaclientes (fecharegistro, compania, usuario, pass, nivel_acceso, email, direccion, telefono1, telefono2, telefono3, fax) VALUES ('$fecharegistro', '$compania', '$usuario', '$pass', '$nivel_acceso', '$email', '$direccion', '$telefono1', '$telefono2', '$telefono3', '$fax')") or die(mysql_error());

$result mysql_query($sql); 
2. Luego en otra página ingreso los contactos pertenecientes a ese cliente;

Código PHP:
// armo el select de cargos para elegir leyendo de la bd ya que los he ingresado previamente
$compania mysql_query("SELECT DISTINCT id, compania FROM $tablaclientes ORDER BY compania ASC"); 
$cargo mysql_query("SELECT DISTINCT idcargo, cargo FROM $tablacargos ORDER BY cargo ASC"); 

Código PHP:

//me traigo las variables del form anterior
$fecharegistro $_POST["fecharegistro"];
$nombres $_POST["nombres"];
$apellidos $_POST["apellidos"];
$compania $_POST["compania"];
$cargo $_POST["cargo"];
$email $_POST["email"];
$telefono1 $_POST["telefono1"];
$telefono2 $_POST["telefono2"];
$telefono3 $_POST["telefono3"];
$celular $_POST["celular"];
$fax $_POST["fax"];

$sql =mysql_query("INSERT INTO $tablacontactos (fecharegistro, nombres, apellidos, compania, cargo, email, telefono1, telefono2, telefono3, celular, fax) VALUES ('$fecharegistro', '$nombres', '$apellidos', '$compania', '$cargo', '$email', '$telefono1', '$telefono2', '$telefono3', '$celular', '$fax')") or die(mysql_error());

$result mysql_query($sql); 

ok el ingreso lo he hecho bien pero al revisar para ver el contacto ingresado, me encuentro con 2 tipos de consulta que creo que tengo que hacer..


Código PHP:

//Incluimos el script de conexion.
include("../include/conex.php");

//Sentencia sql 
$_pagi_sql "SELECT * FROM $tablacontactos ORDER BY apellidos ASC";

//cantidad de resultados por página
$_pagi_cuantos 25;

//Incluimos el script de paginación de pinedo.
include("../include/paginator.inc.php"); 

bueno como saben al momento de ingresar un contacto tuve que seleccionar de una lista la empresa a la cual el pertenecia.. luego el cargo a la cual el pertenece, estos select los saque de 2 tablas que tengo ya hechas en mysql, una es la de la tabla clientes, y otra es la de la tabla cargos que es donde se encuentran los cargos mas comunes.

al momento de enviar eso a la base de datos yo envio es el valor de la id, sacado del value del select, a la base de datos, total que un contacto me queda con compañia: 4 y cargo: 3, esa compañia 4 puede ser X empresa (ej; sun.com) y el cargo 3 puede ser Gerente de sun.com como ejemplo.

ok ahora al mostrar los contactos armo una tabla html en la cual se encuentran las siguientes columnas

<table width="100%" border="0" cellpadding="0" cellspacing="0" id="titulost">
<tr valign="top" bgcolor="#666666" class="textoblanco">
<td width="3%" valign="top"><div align="center" class="textoblancobold">#</div></td>
<td width="39%" valign="top"><div align="center"><span class="textoblancobold">Nombres y Apellidos </span></div></td>
<td width="15%" valign="top"><div align="center" class="textoblancobold">Compa&iacute;a / Cargo</div></td>
<td width="20%"><div align="center" class="textoblancobold">Email</div></td>
<td width="10%" valign="top"><div align="center" class="textoblancobold">Tel&eacute;fonos</div></td>
<td width="10%" valign="top"><div align="center" class="textoblancobold">Celular</div></td>
<td width="10%" valign="top"><div align="center" class="textoblancobold">Fax</div></td>
</tr>
<tr>
<td colspan="7" class="textogris"><?
//Leemos y escribimos los registros de la p&aacute;gina actual
$cont=0;
while($row = mysql_fetch_array($_pagi_result)){
$cont++;
// le coloco colores a las cedlas
if ($alternate == "1") {
$color = "white";
$alternate = "2";
}
else {
$color = "#E8E8E8";
$alternate = "1";
}
?>
<table width="100%" border="0" cellpadding="3" cellspacing="0" id="registros">
<tr bgcolor="<?=$color?>">
<td width="3%" height="17" class="textogris"><?=$cont?></td>
<td width="3%" height="17" class="textogris"><a href="cont_modificar2.php?id=<?=$row[id]?>"><img src="../images/modificar.gif" alt="Modificar Registro de <?=$row[nombres]?>" width="16" height="17" border="0"></a></td>
<td width="3%" height="17" class="textogris"><a href="cont_eliminar2.php?id=<?=$row[id]?>"><img src="../images/eliminar.gif" alt="Borrar Registro de <?=$row[nombres]?>" width="16" height="17" border="0"></a></td>
<td width="27%" class="textogris"><a href="cont_revisar2.php?id=<?=$row['id']?>"><?=$row['nombres']?>&nbsp;<?=$row['apellidos']?></a></td>
<td width="13%" class="textogris">
<?
// armo el select de cargos para elegir

$companiashow= "$compania";
$cargoshow= "$cargo";

$select1 = mysql_query("SELECT id, compania FROM $tablaclientes WHERE id='$companiashow'");
$select2 = mysql_query("SELECT idcargo, cargo FROM $tablacargos WHERE cargo='$cargoshow'");


?>
<span class="textogrisbold">
<?php while ($row = mysql_fetch_row($select1)) { ?>
<?=$row[1]?>
<? } ?>
</span><br>
<span class="textogrisbold">
<?php while ($row = mysql_fetch_row($select2)) { ?>
<?=$row[2]?>
<? } ?>
</span></td>
<td width="19%" class="textogris"><?=$row['email']?></td>
<td width="8%" class="textogris"><?=$row['telefono1']?><br>
<?=$row['telefono2']?><br>
<?=$row['telefono3']?></td>
<td width="8%" class="textogris" align="center"><?=$row['celular']?></td>
<td width="16%" class="textogris"><?=$row['fax']?></td>
</tr>
</table>
<?
}

//Incluimos la barra de navegaci&oacute;n
echo"<p align='center' class='textogris'>".$_pagi_navegacion."</p>"; ?></td>
</tr>
</table>


ok el problema se presenta cuando quiero convertir ese 4 de compañia y ese 3 de cargo, yo quiero es que al detectar esos numeros vaya a la base de datos, compare y me muestre resultados de compañia y cargo, para eso pensé que así podría funcionar pero veo que no :o(

<td width="13%" class="textogris">
<?
// armo el select de cargos para elegir

$companiashow= "$compania";
$cargoshow= "$cargo";

$select1 = mysql_query("SELECT id, compania FROM $tablaclientes WHERE id='$companiashow'");
$select2 = mysql_query("SELECT idcargo, cargo FROM $tablacargos WHERE cargo='$cargoshow'");


?>
<span class="textogrisbold"><?php while ($row = mysql_fetch_row($select1)) { ?>
<?=$row[1]?>
<? } ?></span><br>
<span class="textogrisbold">
<?php while ($row = mysql_fetch_row($select2)) { ?>
<?=$row[2]?>
<? } ?>
</span></td>




bueno espero que hayan entendido mi extensa explicación, y si pueden aconsejarme sobre como relacionar la consulta SQL para mostrar los datos de compaía y cargo previamente ingresados en la tabla os agradezco.

Salu2