Foros del Web » Programando para Internet » PHP »

Consulta en dos tablas con Form

Estas en el tema de Consulta en dos tablas con Form en el foro de PHP en Foros del Web. Estimados Amigos. Nuevamente recurro a ustedes con un problema que no e podido solucionar, se trata de filtrar un formulario y realizar una consulta pero ...
  #1 (permalink)  
Antiguo 16/09/2008, 16:14
Avatar de Killerx_8937  
Fecha de Ingreso: noviembre-2006
Mensajes: 99
Antigüedad: 18 años
Puntos: 0
Consulta en dos tablas con Form

Estimados Amigos.

Nuevamente recurro a ustedes con un problema que no e podido solucionar, se trata de filtrar un formulario y realizar una consulta pero esta ves en dos tablas diferentes, bueno tengo el siguinete form.
Código PHP:
<FORM ACTION=ejec_bus_hormtest.php  METHOD=post>
<TABLE border='0' align='center' with='100%'>
<TR>
    <TD colspan='3'>I.Antecedentes Generales</TD>
    <TD></TD>
    <TD></TD>
</TR>
<TR>
    <TD align='left' class='side-body'>Informe Nº</TD>
    <TD align='left'><input maxlength='10' size='10' type='text' class='textbox' name='CertNum'></TD>
</tr>
<tr>

    <TD align='left' class='side-body'>Obra</TD>
    <TD align='left'><input maxlength='255' size='30' type='text' class='textbox' name='Obra'></TD>
</tr>
<tr>
    <TD align='left' class='side-body'>Mandante</TD>
    <TD align='left'><input maxlength='30' size='20' type='text' class='textbox' name='Mandante'></TD>
</TR>

<TR>
    <TD align='left' class='side-body'>Cantidad</TD>
    <TD align='left'><input maxlength='30' size='10' type='text' class='textbox' name='Cant'></TD>
    </tr>
    <tr>
    <TD align='left' class='side-body'>Tipo de Probeta</TD>

    <TD align='left'>

<SELECT name='Probeta' class='textbox'>
<option SELECTED name='default'></option>
<? load_select_r($tabla="Probetas",$order="Nom_Pro");?>
</SELECT>
</TD>
</tr>
<tr>
    <TD align='left' class='side-body'>Dimensi&oacute;n</TD>
        <TD align='left'>
<SELECT name='Dimension' class='textbox'>
<option SELECTED name='default'></option>
<? load_select_r($tabla="DimProb",$order="Id_Dim");?>
</SELECT>
</TD>
</TR>
<TR>
</TR>
<TR>
    <TD align='left' class='side-body'>Resistencia</TD>
    <TD align='left'><SELECT class='textbox' name='Resistencia'>
<option SELECTED name="default"></option>
<?load_select_r($tabla="Resistencias",$order="Nom_Resis");?>
</select>
</TD>
</tr>
<tr>
    <TD align='left' class='side-body'>Numero de Muestra</TD>
    <TD align='left'><input maxlength='100' size='20' type='text'  class='textbox' name='NumMuestra'></TD>
    </tr>
    <tr>
    <TD align='left' class='side-body'>Fecha de Confecci&oacute;n</TD>
    <TD align='left'><input id='fecha' type='text' class='textbox' name='FechaConfec'/></TD>
</TR>
    <tr>
    <TD align='left' class='side-body'>Mostrar Solo Pendientes</TD>
    <TD align='left'><INPUT TYPE='checkbox' NAME='Todo'></TD>
</TR>
<TR>
    <TD align='center' colspan='3'><input type='submit' name='Buscar' value='Buscar' onclick='return verifica(this.form)'></TD>
    <TD align='left'></TD>
    <TD align='left'></TD>
</TR>
</TABLE>
</form>
El cual me envia los valores por el metodo POST al siguiente script.

Código PHP:
<?php
include "includes/secion_start.php";
if(
$_SESSION[S_ID_PERFIL] == )
{
echo 
'';

}elseif(
$_SESSION[S_ID_PERFIL] == ){
echo 
'';
}else{
    
Header("Location: index.php");
};
require_once 
"includes/funciones.php";
require_once 
"includes/cabecera.php";
echo 
"<td valign='top' class='main-bg'>\n";
//abretabla($titulo="busqueda hormigón");
include "forms/form_bus_hor.php";
//cierralado();

//inicializo el criterio y recibo cualquier cadena que se desee buscar
if ($_POST[criterio]!=""){
$criterio $_POST[criterio];
}else{
$Tabla="Hormigones";
//resivimos las variables del form
$CertNum $_POST[CertNum];
$Obra $_POST[Obra];
$Mandante $_POST[Mandante];
$Cant $_POST[Cant];
$Probeta $_POST[Probeta];
$Dimension $_POST[Dimension];
$Resistencia $_POST[Resistencia];
$NumMuestra =$_POST[NumMuestra];
$FechaConfec $_POST[FechaConfec];
$Todo $_POST[Todo];
//filtrando criterios
if($CertNum!=''){
if (
$criterio=="")
$criterio.="WHERE Hormigones.CertNum =".$CertNum." ";
}else{
$criterio.=" AND Hormigones.CertNum =".$CertNum." ";}}
if(
$Obra!=''){
if (
$criterio==""){
$criterio.=" WHERE Hormigones.Obra Like '%$Obra%' ";
}else{
$criterio.=" AND Hormigones.Obra Like '%$Obra%' ";}}
if(
$Mandante!=''){
if (
$criterio==""){
$criterio.=" WHERE Hormigones.Mandante Like '%$Mandante%' ";
}else{
$criterio.="AND Hormigones.Mandante Like '%$Mandante%' ";}}
if(
$Probeta!=''){
if (
$criterio==""){
$criterio.=" WHERE Hormigones.Probeta ='$Probeta' ";
}else{
$criterio.="AND Hormigones.Probeta ='$Probeta' ";}}
if(
$Dimension!=''){
if (
$criterio==""){
$criterio.="WHERE Hormigones.Dimension ='$Dimension' ";
}else{
$criterio.="AND Hormigones.Dimension ='$Dimension' ";}}
if(
$Resistencia!=''){
if (
$criterio==""){
$criterio.=" WHERE Hormigones.Resistencia ='$Resistencia' ";
}else{
$criterio.="AND Hormigones.Resistencia ='$Resistencia' ";}}
if(
$FechaConfec!=''){if ($criterio==""){
$criterio.=" WHERE Hormigones.FechaConfec ='$FechaConfec' ";
}else{
$criterio.="AND Hormigones.FechaConfec ='$FechaConfec' ";}}
if(
$NumMuestra!=''){
if (
$criterio==""){
$criterio.="WHERE HormEnsayos.NumMuestra like '%$NumMuestra%'";
}else{
$criterio.="AND HormEsnayos.NumMuestra like '%$NumMuestra%' ";}}
if(
$Todo!=''){if ($criterio==""){
$criterio.=" SELECT * FROM Hormigones WHERE Hormigones.Terminado='No'";
}else{
$criterio.="AND Hormigones.Terminado='No' ";}}
};
if (
$criterio==""){
$criterio=" SELECT * FROM Hormigones";
};
$sql="SELECT * FROM Hormigones $criterio";

echo
"</td>";
echo
"</tr>";
echo 
"<tr><td>";
echo 
"<table title='' Border='0' align='left'>
<TR>
<td>
<form action='"
.BASEDIR."includes/exportar.php' method='POST'>
<Input type='hidden' name='sql' value=\"$sql\">
<Input type='hidden' name='Exportar' value=\"Busqueda\">
<Input class='textbox' type='submit' name='busqueda' value='Exportar a Excel'>
</form></td>
</tr>
</table>"
;
echo 
"<table title='' Border='0' align='left'>
<TR>
<td>
<form action='"
.BASEDIR."entrega.php' method='POST' target='_blank'>
<Input type='hidden' name='sql' value=\"$sql\">
<Input class='textbox' type='submit' name='busqueda' value='Ver Fechas de Entrega de la búsqueda'>
</form></td>
</tr>
</table>"
;
echo
"</td></tr>";
echo 
"<td colspan='2' valign='top' class='main-bg'>\n";

// ejecutando el query
    
$res=mysql_query($sql);
    
$numeroRegistros=mysql_num_rows($res);
    if(
$numeroRegistros<=0)
    {

   echo 
"<table align=center>
   <TR>
<TD align='center'>
$sql</TD>
   </TR>
   </TABLE>"
;
    }else{
echo 
"<table title='' Border='0' align='center'>
<TR>"
;
# construyendo los encabezados de la tabla
echo "
<th class=\"TD_General\">Informe Nº</th>
<th class=\"TD_General\">Obra</th>
<th class=\"TD_General\">Mandante</th>
<th class=\"TD_General\">Tipo Probeta</th>
<th class=\"TD_General\">Resistencia</th>
<th class=\"TD_General\">Fecha Confección</th>
<th class=\"TD_General\">N muestra</th>
<th class=\"TD_General\" >Ensayos</th>
<th class=\"TD_General\" >Fecha Ensayo</th>
<th class=\"TD_General\" >Fecha Ingreso</th>
<th class=\"TD_General\" >Usuario</th>"
;
if(
$_SESSION[S_ID_PERFIL] == )
{
echo 
"<th class='TD_General' colspan='2'>Accion</th></TR>";
}else{
echo 
"</TR>";
}

 
// ciclo de lectura del rowset($tabla1)
while($renglondbarray($res))
{
// desplegando en celda de tabla html
$Edad1=restarFechaSp($renglon[FechaConfec], $renglon[Ensayo1]);
echo 
"<tr bgcolor=\"#F4F6F9\" onMouseOut=\"this.style.backgroundColor=''\" onMouseOver=\"this.style.backgroundColor='#FFF8D6'\">";

if(
$renglon[Ficha]=="NG"){
echo 
"<td title='Informe Nº&nbsp;:&nbsp;$renglon[CertNum]'align=\"center\" class=\"TD_General\"><A HREF='ficha_ensayo.php?CertNum=$renglon[CertNum]&Probeta=$renglon[Probeta]' target='_blank'>$renglon[CertNum]</A></td>";
}elseif(
$renglon[Ficha]=="G"){
echo 
"<td title='Informe Nº&nbsp;:&nbsp;$renglon[CertNum]'align=\"center\" class=\"TD_General\"><A HREF='ficha_generada.php?CertNum=$renglon[CertNum]&Probeta=$renglon[Probeta]' target='_blank'>$renglon[CertNum]</A></td>";
};
echo 
"<td title='Obra:&nbsp;$renglon[Obra]'align=\"left\"class=\"TD_General\">$renglon[Obra]</td>";
echo 
"<td title='Mandante:&nbsp;$renglon[Mandante]'align=\"center\"class=\"TD_General\">$renglon[Mandante]</td>";
echo 
"<td title='Tipo de Probeta:&nbsp;$renglon[Probeta]&nbsp;de&nbsp;$renglon[Dimension]'align=\"center\"class=\"TD_General\">$renglon[Probeta]</td>";
echo 
"<td title='$renglon[Resistencia]'align=\"center\"class=\"TD_General\">$renglon[Resistencia]</td>";
echo 
"<td title='Fecha de Confección:&nbsp;$renglon[FechaConfec]'align=\"center\"class=\"TD_General\">$renglon[FechaConfec]</td>";
echo 
"<td title='Numero de Muestra:$renglon[NumMuestra]'align=\"center\"class=\"TD_General\">";
$sqlmuestras="select * from HormEnsayos where CertNum='$renglon[CertNum]'";
$resmues=dbquery($sqlmuestras);
echo 
"<table align=center>";
while(
$ren_muesdbarray($resmues))
{
echo
"<tr><td><a href>$ren_mues[NumMuestra]</a></td></tr>";
}
echo
"</table>";
echo
"</td>";
echo
"<td class=\"TD_General\">";
echo 
"<table align=center>";
$resmues=dbquery($sqlmuestras);
while(
$ren_muesdbarray($resmues))
{
echo
"<tr><td align=center>$ren_mues[EdadEns]</td></tr>";
}
echo
"</table>";
echo
"</td>";
echo
"<td class=\"TD_General\">";
echo 
"<table align=center>";
$resmues=dbquery($sqlmuestras);
while(
$ren_muesdbarray($resmues))
{
echo
"<tr><td align=center>$ren_mues[FechaEnsayo]</td></tr>";
}
echo
"</table>";
echo
"</td>";
$Fingreso=date("d-m-Y",$renglon[FechaIngreso]);
echo 
"<td align=\"center\"class=\"TD_General\" title='Fecha de Ingreso: $Fingreso'>$Fingreso";
echo
"</td>";
echo 
"<td align=\"center\"class=\"TD_General\"title='ingresado Por: $renglon[UsuarioIngreso]'>$renglon[UsuarioIngreso]</td>";
if(
$_SESSION[S_ID_PERFIL] == )
{
echo 
"<td align='center'class='TD_General'><a href='editar_registro.php?Editar=Editar&CertNum=$renglon[CertNum]'><IMG SRC='".BASEDIR."imagenes/b_edit.png' WIDTH=\"16\" HEIGHT=\"16\" BORDER=\"0\" ></a></td>";
echo 
"<td align=\"center\"class=\"TD_General\"><a href='editar_registro.php?Eliminar=Eliminar&CertNum=$renglon[CertNum]'><IMG SRC='".BASEDIR."imagenes/b_drop.png' WIDTH=\"16\" HEIGHT=\"16\" BORDER=\"0\" ALT=\"\"></a></td>";
}else{
echo 
"</TR>";
}

};
};
cierrapagina();

?>
  #2 (permalink)  
Antiguo 16/09/2008, 16:18
Avatar de Killerx_8937  
Fecha de Ingreso: noviembre-2006
Mensajes: 99
Antigüedad: 18 años
Puntos: 0
Respuesta: Consulta en dos tablas con Form

pero el problema es que esta ves necesito hacer la consulta en 2 tablas Hormigones y HormEnsayos, que tienen la siguente estructura.
Código PHP:
--
-- 
Estructura de tabla para la tabla `Hormigones`
--

CREATE TABLE IF NOT EXISTS `Hormigones` (
  `
Idint(6NOT NULL auto_increment,
  `
CertNumint(6) default '0',
  `
Obravarchar(255) default '',
  `
Mandantevarchar(255) default NULL,
  `
Probetavarchar(255) default NULL,
  `
Dimensionvarchar(255) default NULL,
  `
Resistenciavarchar(255) default NULL,
  `
FechaConfecvarchar(255) default NULL,
  `
Fichavarchar(10NOT NULL default 'NG',
  `
Terminadovarchar(255NOT NULL default 'No',
  `
LabTervarchar(255character set utf8 collate utf8_spanish_ci default NULL,
  `
FeTervarchar(255character set utf8 collate utf8_spanish_ci default NULL,
  `
FechaEntregavarchar(255character set utf8 collate utf8_spanish_ci default NULL,
  `
Observacionesvarchar(255) default NULL,
  `
FechaIngresovarchar(255NOT NULL default '1162522800',
  `
UsuarioIngresovarchar(255NOT NULL default 'Patricio',
  
PRIMARY KEY  (`Id`)
ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=
y la tabla HormEnsayos.
Código PHP:
CREATE TABLE IF NOT EXISTS `HormEnsayos` (
  `
Idint(255NOT NULL auto_increment,
  `
CertNumint(255NOT NULL,
  `
NumMuestravarchar(255NOT NULL,
  `
EdadEnsint(255NOT NULL,
  `
FechaEnsayovarchar(255NOT NULL,
  `
Ensayadovarchar(255NOT NULL default 'No',
  `
LabEnvarchar(255NOT NULL,
  `
FeEnvarchar(255NOT NULL,
  
PRIMARY KEY  (`Id`)
ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=17 
en la primera se guarda todo lo referente al ingreso y en la segunda los numero de muestras las cuales son asociadas co la primera tabal por el CertNum


lo que necesito hacer es filtrar los items y hacer una consulta dependiendo de los campos selecionados si se busca por numero de muestra buscar en HormEnsayos si se busca por otro criterio hacer la busqueda en Hormigones

Se Entiende...

Última edición por Killerx_8937; 16/09/2008 a las 16:28
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:40.