Foros del Web » Programando para Internet » PHP »

Problema para mostrar resultados

Estas en el tema de Problema para mostrar resultados en el foro de PHP en Foros del Web. Saludos, estaba haciendo un listado de producos donde se clasifican en tipo 1. 2 y 3... el cual depende d una tabla marca.. si una ...
  #1 (permalink)  
Antiguo 09/01/2009, 07:30
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Problema para mostrar resultados

Saludos, estaba haciendo un listado de producos donde se clasifican en tipo 1. 2 y 3... el cual depende d una tabla marca.. si una marca no posee productos de tipo 2, simplemente no se muestra.. y asi con todos... lo logre hacer, pero el detalle esta es en q ahora solo me muestra 1 producto y una marca :S

aqui esta mi codigo
Código PHP:
<?php require_once('Connections/cersol.php'); 
include(
'connect.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function 
GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  
$theValue get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

  
$theValue function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch (
$theType) {
    case 
"text":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;    
    case 
"long":
    case 
"int":
      
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case 
"double":
      
$theValue = ($theValue != "") ? "'" doubleval($theValue) . "'" "NULL";
      break;
    case 
"date":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;
    case 
"defined":
      
$theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
      break;
  }
  return 
$theValue;
}
}
$colname_Recordset2 "1";
if (isset(
$_GET['tipe'])) {
  
$colname_Recordset2 = (get_magic_quotes_gpc()) ? $_GET['tipe'] : addslashes($_GET['tipe']);
}
 
mysql_select_db($database_cersol$cersol);
$query_Recordset2 sprintf("SELECT * FROM imp_cd WHERE tipo = %s"$colname_Recordset2);
$Recordset2 mysql_query($query_Recordset2$cersol) or die(mysql_error());
$row_Recordset2 mysql_fetch_assoc($Recordset2);
$totalRows_Recordset2 mysql_num_rows($Recordset2);
if (
$totalRows_Recordset2=="") {echo "No hay datos para mostrar";} else {

mysql_select_db($database_cersol$cersol);
$query_Recordset1 "SELECT * FROM marca_cd WHERE id =".$row_Recordset2['id_marca'];
$Recordset1 mysql_query($query_Recordset1$cersol) or die(mysql_error());
$row_Recordset1 mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 mysql_num_rows($Recordset1);
?>

 <table width="356" border="0" cellspacing="0" cellpadding="0">
  
  <tr>
    <td scope="col"><?php 
    
    
do { ?><table width="480" border="0" align="center" cellpadding="0" cellspacing="0">
      <tr>
        <td width="182" rowspan="2" align="left" valign="top"><table width="157" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td><div align="left"><img src="logo/<?php echo $row_Recordset1['logo']; ?>" /></div></td>
            </tr>
        </table>
          </td>
        <td width="298" class="tituloMarca"><div align="left"><?php echo strtoupper($row_Recordset1['nombre']); ?></div></td>
      </tr>
      <tr>
        <td valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td><?php 
        
// Variables de Configuraci&oacute;n -----------------------------------
// Define el numero de Filas
$n_filas=2;

//***************************************************************
@$type=$_REQUEST['tipe'];
//$cat=8;

$fotos = array();
        
$sql="SELECT * FROM imp_cd WHERE id_marca=".$row_Recordset1['id']." and tipo = ".$type."";
mysql_select_db ('connect');
    
$sql_exec=mysql_query($sql);
    
    
/*while($row=mysql_fetch_assoc($sql_exec)){
            $tottal=mysql_affected_rows(); // Calculo el numero total de itms a listar
            }*/
            
$tottal=113;
// ------------------------------------------------------------------------------------------------------------------
$vert=$tottal/$n_filas;
$vert=round($vert); ?> 
              <?php 
        $a
=0;// Colocando el contador horizontal en 0
        
$i=1;// Colocando el contador vertical en 0
        
$w=0;//Colocando un contador para el mensaje de "No hay articulos en esta acategoria"
        
            
while($row=mysql_fetch_assoc($sql_exec)){
            
$w=w+1;
                if (
$a==0){
                echo 
'<tr>';
                }
                
$a=$a+1;
                
$fotos[$i.'-'.$a] = $row['nombre'];
                
                echo 
"<td width='180' height='15' border='0'><p align='left' class='marronlink'><a href='ficha_camioneta.php?id=".$row['id']."'>".$row['nombre']. "</a></p>";
            
                
$r=$a;// contador remanente para listar imagenes sin exceso
                
                    
if ($a >= $n_filas) {
                    
$a=0;// reiniciando el contador horizontal
                    
$i=$i+1;// aumentando el contador vertical
                    
echo '</tr>';
                    } 
            if (empty(
$row)) {
        echo
"<table width='0' border='0' align='center' cellpadding='0' cellspacing='0'>
          <tr>
            <td width='257'><div align='center'>No hay articulos en esta categoria </div></td>
          </tr>
        </table>
        "
;
        break 
1;}
            
            }
            
         echo 
'</td>'
        
?> </td>
          </tr>
        </table>
          <br /></td>
      </tr>
      <tr>
        <td colspan="2" align="center" valign="top">&nbsp;</td>
        </tr>
      <tr>
        <td colspan="2" align="center" valign="top">&nbsp;</td>
      </tr>
    </table>
          <?php } while ($row_Recordset1 mysql_fetch_assoc($Recordset1));  
           
          
?></td>
  </tr>
  <tr>
    <td scope="col"></td>
  </tr>
</table>
  

  <p class="tituloQUIENES">
    <?php
mysql_free_result
($Recordset1); }
?>
alguien ve mi error???? Gracias de antemano!!!!
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #2 (permalink)  
Antiguo 09/01/2009, 07:59
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: [S.O.S] Problema para mostrar resultados

explico un poco...
la primera consulta q es Recordset2
ella llama a verificar si hay productos de tipo X q pase el URL, luego digo q si las filas es = a vacio me diga q no hay datos para mostrar...
luego en mi segunda consulta q es recordset1 extraigo las marcas comparandolas con el id_marca de la consulta anterior... forzando a que muestre las marcas donde en realidad existan productos para ese tipo....

la ultima consulta es solo el while para el listado de los productos de manera visible...

es un listado de productos donde tengo dos tablas marcas y productos pero a la vez los productos se dividen en tres tipos... son impresoras a una cara, dos o de laminacion.... y por eso el listado de esa manera... aqui esta el URL

http://cersolve.com/prueba/print_ord.php?tipe=1

saludos
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #3 (permalink)  
Antiguo 09/01/2009, 12:48
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: [S.O.S] Problema para mostrar resultados

En ambas consultas estas haciendo fetch_assoc antes de comenzar a procesar, dame unos minutos y te ayudo a limpiar un poco tu codigo.
__________________
- León, Guanajuato
- GV-Foto
  #4 (permalink)  
Antiguo 09/01/2009, 12:58
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: [S.O.S] Problema para mostrar resultados

ok ok.. agradecido
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #5 (permalink)  
Antiguo 09/01/2009, 13:31
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: [S.O.S] Problema para mostrar resultados

Problemas de tu codigo:
1- Estabas haciendo 3 consultas, pudiendo hacer solo 1
2- Despues de cada consulta hacias 1 fetch_assoc innecesario
3- El orden de tus bucles estaba incorrecto

Aqui te dejo algo mas o menos corregido, por favor revisa todos los comentarios, hay cosas que tendras que modificar o no funcionara y, por favor, trata de entender como funciona (o como debiera funcionar ), espero que funcione (valga la rebuznancia).

Código php:
Ver original
  1. <?php
  2. require_once('Connections/cersol.php');
  3. include('connect.php');
  4. // Si vas a usar mucho esta funcion mejor ubicala en otro archivo; ejemplo: include 'rutinas_comunes.php';
  5. if (!function_exists("GetSQLValueString")) {
  6.     function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") {
  7.         $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  8.         $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
  9.         if($theValue == '') {
  10.             if($theType == 'defined')
  11.                 return $theNotDefinedValue;
  12.             return "NULL";
  13.         }
  14.         switch ($theType) {
  15.             case "date":
  16.             case "text":
  17.                 $theValue = "'$theValue'";
  18.                 break;
  19.             case "long":
  20.             case "int":
  21.                 $theValue = intval($theValue);
  22.                 break;
  23.             case "double":
  24.                 $theValue = "'" . doubleval($theValue) . "'";
  25.                 break;
  26.             case "defined":
  27.                 $theValue = $theDefinedValue;
  28.                 break;
  29.         }
  30.         return $theValue;
  31.     }
  32. }
  33. $colname_Recordset2 = "1";
  34. if (isset($_GET['tipe']))
  35.     $colname_Recordset2 = (get_magic_quotes_gpc()) ? $_GET['tipe'] : addslashes($_GET['tipe']);
  36.  
  37. mysql_select_db($database_cersol, $cersol);
  38. // Leemos las dos tablas en una sola consulta, uniendo por id de marca
  39. $query_Recordset2 = "SELECT i.*, m.* FROM imp_cd i, marca_cd m WHERE i.tipo = $colname_Recordset2 AND m.id = i.id_marca ORDER BY i.id_marca";
  40. $Recordset2 = mysql_query($query_Recordset2, $cersol) or die(mysql_error());
  41. $totalRows_Recordset2 = mysql_num_rows($Recordset2);
  42. if ($totalRows_Recordset2=="")
  43.     echo "No hay datos para mostrar";
  44. else {
  45.     // Variables de Configuraci&oacute;n -----------------------------------
  46.     // Define el numero de Filas
  47.     $n_filas=2;
  48.     $vert=ceil($tottal/$n_filas); // Redondeo hacia arriba siempre ceil(2.1) resulta en 3
  49.  
  50.     $a=0;// Colocando el contador horizontal en 0
  51.     $i=1;// Colocando el contador vertical en 0 // No se usa
  52.     $w=0;//Colocando un contador para el mensaje de "No hay articulos en esta acategoria" // No se usa
  53.  
  54.     $imps = array();
  55.     // Usamos fetch_row porque tienes nombres de campo iguales en ambas tablas
  56.     while($row = mysql_fetch_row($Recordset2))
  57.         $imps = $row;   //Aqui estan las impresoras con las marcas
  58. ?>
  59.     <table width="356" border="0" cellspacing="0" cellpadding="0">
  60.     <tr>
  61.         <td scope="col">
  62. <?php
  63.     $marca_actual = ''; // Solo para iniciar el proceso
  64.     foreach($imps as $imp) {
  65.         // OJO: Asigna los campos en el orden que los tengas en cada tabla, primero los de imp_cd y despues los de marca_cd
  66.         list($imp_id, $imp_nombre, $imp_foto, $imp_mascampos, $marca_id, $marca_nombre, $marca_logo, $marca_mascampos) = $imp;
  67.         if($marca_actual != $imp['nombre']) {   // Solo se imprimiran encabezados al cambiar de marca
  68.             $marca_actual = $imp['nombre'];
  69. ?>
  70.     <table width="480" border="0" align="center" cellpadding="0" cellspacing="0">
  71.     <tr>
  72.         <td width="182" rowspan="2" align="left" valign="top"><table width="157" border="0" cellspacing="0" cellpadding="0">
  73.             <tr>
  74.                 <td><div align="left"><img src="logo/<?php echo $marca_logo; ?>" /></div></td>
  75.             </tr>
  76.         </table></td>
  77.         <td width="298" class="tituloMarca"><div align="left"><?php echo strtoupper($marca_nombre); ?></div></td>
  78.     </tr>
  79.     <tr>
  80.         <td valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0">
  81.             <tr>
  82. <?php
  83.         } // endif encabezado de marca
  84.         $w++; // $w = $w + 1; // es lo mismo
  85.         if ($a==0)
  86.             echo '<tr>';
  87.                 $a=$a+1;
  88. ?>                
  89.                 <td width="180" height="15" border="0">
  90.                     <p align="left" class="marronlink"><a href="ficha_camioneta.php?id="<?php echo $imp_id; ?>"><?php echo $imp_nombre; ?></a></p>
  91.                 </td>
  92. <?php          
  93.                 $r=$a;// contador remanente para listar imagenes sin exceso // WHAT???
  94.         if ($a >= $n_filas) {
  95.             $a=0;// reiniciando el contador horizontal
  96.             $i=$i+1;// aumentando el contador vertical // No se usa
  97.             echo '</tr>';
  98.                 }
  99.     } // Fin de foreach $imps
  100.     if($a < $n_filas) // Se quedo abierto un <tr> y aqui se cierra
  101.         echo '</tr>';
  102. ?>
  103.         </table></td>
  104.     </tr>
  105.     <!-- Estos espacios para que? un div con height es mas efectivo y mas limpio -->
  106.     <tr>
  107.         <td colspan="2" align="center" valign="top">&nbsp;</td>
  108.     </tr>
  109.     <tr>
  110.         <td colspan="2" align="center" valign="top">&nbsp;</td>
  111.     </tr>
  112.     <!-- Estos espacios para que? un div con height es mas efectivo y mas limpio -->
  113.     </table></td>
  114. </tr>
  115. </table>
  116. <p class="tituloQUIENES">Algun texto aqui</p>
  117.  
  118. <?php
  119.     // La siguiente linea te da error si no hubo resultados en la consulta
  120.     // -->   mysql_free_result($Recordset1);
  121. }
  122. // Mejor cierra la conexion al finalizar el script:
  123. mysql_close($tu_controlador);
  124. ?>
__________________
- León, Guanajuato
- GV-Foto
  #6 (permalink)  
Antiguo 09/01/2009, 13:35
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: [S.O.S] Problema para mostrar resultados

Nota, me falto cerrar la tabla cuando se cambia de marca
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 09/01/2009, 13:54
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: [S.O.S] Problema para mostrar resultados

Gracias hermano... fijate lo q quiero lograr

http://indexa.com.ve/orocauchos/cauchos_carga.php

pero claro en ese no los divido por tipos... si no marca y productos... en el q yo hago hay una variable de nombre tipo q me define q clase d impresora es... si es una cara dos caras o laminacion... q es un campo llamado tipo de clase INT
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #8 (permalink)  
Antiguo 09/01/2009, 13:57
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: [S.O.S] Problema para mostrar resultados

otra pregunta... asi?
`
Código PHP:
<?php 
    $marca_actual 
''// Solo para iniciar el proceso
    
foreach($imps as $imp) {
        
// OJO: Asigna los campos en el orden que los tengas en cada tabla, primero los de imp_cd y despues los de marca_cd
        
list($id$id_marca$tipo$nombre$descripcion$imagen$ficha$id$nombre$logo) = $imp;
        if(
$marca_actual != $imp['nombre']) {   // Solo se imprimiran encabezados al cambiar de marca
            
$marca_actual $imp['nombre'];
?>
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #9 (permalink)  
Antiguo 09/01/2009, 14:09
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: [S.O.S] Problema para mostrar resultados

no, asi no, porque estas repitiendo variables, por eso te comentaba de ponerles el prefijo de la tabla, para los campos de imp_cd $imp_id, $imp_id_marca, bla bla bla... y para los campos de marca_cd $marca_id, $marca_nombre, bla bla bla

Por cierto, ese if debajo del list me quedo mal por dos cosas:
1- $imp['nombre'] no existe, en todo caso debe usarse $marca_nombre
2- antes de volver a asignar $marca_actual falta:

Código PHP:
if($marca_actual != '') {
    
// Ya salio una marca, hay que cerrar la tabla antes de crear la siguiente
    
echo "</tr></table> o lo que sea que se necesite para cerrar la tabla actual";

__________________
- León, Guanajuato
- GV-Foto
  #10 (permalink)  
Antiguo 09/01/2009, 14:15
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: [S.O.S] Problema para mostrar resultados

es decir quedaria esto
Código PHP:
<?php 
    $marca_actual 
''// Solo para iniciar el proceso
    
foreach($imps as $imp) {
        
// OJO: Asigna los campos en el orden que los tengas en cada tabla, primero los de imp_cd y despues los de marca_cd
        
list($id$imp_id_marca$imp_tipo$imp_nombre$imp_descripcion$imp_imagen$imp_ficha$marca_id$marca_nombre$marca_logo) = $imp;
        if(
$marca_actual != '') {
        echo 
"</tr></table>";
}  
  
// Solo se imprimiran encabezados al cambiar de marca
            
$marca_actual $imp['nombre'];
?>
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #11 (permalink)  
Antiguo 09/01/2009, 14:21
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: [S.O.S] Problema para mostrar resultados

Exacto, solo cambia:

$marca_actual = $imp['nombre'];

por:
$marca_actual = $marca_nombre;
__________________
- León, Guanajuato
- GV-Foto
  #12 (permalink)  
Antiguo 09/01/2009, 14:27
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: [S.O.S] Problema para mostrar resultados

mira como quedo

http://cersolve.com/prueba/prueba.php

Código PHP:
<?php
require_once('Connections/cersol.php'); 
include(
'connect.php');
// Si vas a usar mucho esta funcion mejor ubicala en otro archivo; ejemplo: include 'rutinas_comunes.php';
if (!function_exists("GetSQLValueString")) {
    function 
GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue "") {
        
$theValue get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
        
$theValue function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
        if(
$theValue == '') {
            if(
$theType == 'defined')
                return 
$theNotDefinedValue;
            return 
"NULL";
        }
        switch (
$theType) {
            case 
"date":
            case 
"text":
                
$theValue "'$theValue'";
                break;
            case 
"long":
            case 
"int":
                
$theValue intval($theValue);
                break;
            case 
"double":
                
$theValue "'" doubleval($theValue) . "'";
                break;
            case 
"defined":
                
$theValue $theDefinedValue;
                break;
        }
        return 
$theValue;
    }
}
$colname_Recordset2 "1";
if (isset(
$_GET['tipe']))
    
$colname_Recordset2 = (get_magic_quotes_gpc()) ? $_GET['tipe'] : addslashes($_GET['tipe']);
 
mysql_select_db($database_cersol$cersol);
// Leemos las dos tablas en una sola consulta, uniendo por id de marca
$query_Recordset2 "SELECT i.*, m.* FROM imp_term i, marca_termicas m WHERE i.tipo = $colname_Recordset2 AND m.id = i.id_marca ORDER BY i.id_marca";
$Recordset2 mysql_query($query_Recordset2$cersol) or die(mysql_error());
$totalRows_Recordset2 mysql_num_rows($Recordset2);
if (
$totalRows_Recordset2=="")
    echo 
"No hay datos para mostrar";
else {
    
// Variables de Configuración -----------------------------------
    // Define el numero de Filas
    
$n_filas=2;
    
$vert=ceil($tottal/$n_filas); // Redondeo hacia arriba siempre ceil(2.1) resulta en 3
 
    
$a=0;// Colocando el contador horizontal en 0
    
$i=1;// Colocando el contador vertical en 0 // No se usa
    
$w=0;//Colocando un contador para el mensaje de "No hay articulos en esta acategoria" // No se usa
 
    
$imps = array();
    
// Usamos fetch_row porque tienes nombres de campo iguales en ambas tablas
    
while($row mysql_fetch_row($Recordset2))
        
$imps $row;   //Aqui estan las impresoras con las marcas
?>
    <table width="356" border="0" cellspacing="0" cellpadding="0">
    <tr>
        <td scope="col">
<?php 
    $marca_actual 
''// Solo para iniciar el proceso
    
foreach($imps as $imp) {
        
// OJO: Asigna los campos en el orden que los tengas en cada tabla, primero los de imp_cd y despues los de marca_cd
        
list($id$imp_id_marca$imp_tipo$imp_nombre$imp_descripcion$imp_imagen$imp_ficha$marca_id$marca_nombre$marca_logo) = $imp;
        if(
$marca_actual != '') {
        echo 
"</tr></table>";
}  
  
// Solo se imprimiran encabezados al cambiar de marca
            
$marca_actual $imp['marca_nombre'];
?>
    <table width="480" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
        <td width="182" rowspan="2" align="left" valign="top"><table width="157" border="0" cellspacing="0" cellpadding="0">
            <tr>
                <td><div align="left"><img src="logo/<?php echo $marca_logo?>" /></div></td>
            </tr>
        </table></td>
        <td width="298" class="tituloMarca"><div align="left"><?php echo strtoupper($marca_nombre); ?></div></td>
    </tr>
    <tr>
        <td valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0">
            <tr>
<?php
        
// endif encabezado de marca
        
$w++; // $w = $w + 1; // es lo mismo
        
if ($a==0)
            echo 
'<tr>';
                
$a=$a+1;
?>                
                <td width="180" height="15" border="0">
                    <p align="left" class="marronlink"><a href="ficha_camioneta.php?id="<?php echo $imp_id?>"><?php echo $imp_nombre?></a></p>
                </td>
<?php          
                $r
=$a;// contador remanente para listar imagenes sin exceso // WHAT???
        
if ($a >= $n_filas) {
            
$a=0;// reiniciando el contador horizontal
            
$i=$i+1;// aumentando el contador vertical // No se usa
            
echo '</tr>';
                }
    } 
// Fin de foreach $imps
    
if($a $n_filas// Se quedo abierto un <tr> y aqui se cierra
        
echo '</tr>';
?>
        </table></td>
    </tr>
    <!-- Estos espacios para que? un div con height es mas efectivo y mas limpio -->
    <tr>
        <td colspan="2" align="center" valign="top"> </td>
    </tr>
    <tr>
        <td colspan="2" align="center" valign="top"> </td>
    </tr>
    <!-- Estos espacios para que? un div con height es mas efectivo y mas limpio -->
    </table></td>
</tr>
</table>
<p class="tituloQUIENES">Algun texto aqui</p>
 
<?php
    
// La siguiente linea te da error si no hubo resultados en la consulta
    // -->   mysql_free_result($Recordset1);

// Mejor cierra la conexion al finalizar el script:
mysql_close($Recordset2);
?>
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #13 (permalink)  
Antiguo 09/01/2009, 15:34
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema para mostrar resultados

Pruebalo... aunque creo que no va a funcionar

1- Te va a dar un error de undefined index ... on line ###
2- Casi seguro tambien te da un error de unexpected end of file on line ###

Por lo demas no estoy seguro, primero verifica esos errores y despues sabremos si va o no va.
__________________
- León, Guanajuato
- GV-Foto
  #14 (permalink)  
Antiguo 12/01/2009, 07:22
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: Problema para mostrar resultados

nah... mira el error q me dio
http://cersolve.com/prueba/prueba.php
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #15 (permalink)  
Antiguo 13/01/2009, 07:34
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: Problema para mostrar resultados

alguien puede ayudarme con esto??? he hecho este sistema d mil y una forma para lograr las restricciones y nada.....

les vuelvo a señalar tngo dos tablas

marca_termicas
campos:
id - INT auto_creciente
nombre - TEXT
imagen - TEXT

imp_term
id INT auto_creciente
id_marca INT
tipo INT
nombre TEXT
descripcion TEXT
imagen TEXT
ficha TEXT

ok ... en mi listado de productos se muestran por tipo y por marca...
ahora q pasa?
si señalo una marca me sale el listado de productos de esa marca pero si señalo un tipo q son
Una cara = 1
dos caras = 2
laminacion = 3
deberia salir

Marca 1
Prod1
Prod2
Prod3

Marca 2
Prod1
Prod2
Prod3

depende del tipo q selecciones, ahora bien, si en Marca2 no tngo productos relacionados para un dteerminado tipo esa marca no deberia imprimirse... pero igual se me imprime y obviamente no salen productos asociados si no q sale abajo la marca siguiente....

HELP PLEASE!!!!
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #16 (permalink)  
Antiguo 13/01/2009, 08:11
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Listado de productos no hace while en marcas

Saludos muchachos tngo un listado de productos condicionado a un id y a una variable y me funciona a la perfeccion solo tiene un problema, no funciona el while a la hora d listar lo q viene de la tabla marca_termicas.. solo me muestra la primera marca q encuenta y las demas las deja por fuera...

Alguien q pueda ayudame?
Código PHP:
<?php require_once('Connections/cersol.php'); 
include(
'connect.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function 
GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  
$theValue get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

  
$theValue function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch (
$theType) {
    case 
"text":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;    
    case 
"long":
    case 
"int":
      
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case 
"double":
      
$theValue = ($theValue != "") ? "'" doubleval($theValue) . "'" "NULL";
      break;
    case 
"date":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;
    case 
"defined":
      
$theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
      break;
  }
  return 
$theValue;
}
}
$colname_Recordset2 "1";
if (isset(
$_GET['tipe'])) {
  
$colname_Recordset2 = (get_magic_quotes_gpc()) ? $_GET['tipe'] : addslashes($_GET['tipe']);
}
 
mysql_select_db($database_cersol$cersol);
$query_Recordset2 sprintf("SELECT * FROM imp_term WHERE tipo = %s"$colname_Recordset2);
$Recordset2 mysql_query($query_Recordset2$cersol) or die(mysql_error());
$row_Recordset2 mysql_fetch_assoc($Recordset2);
$totalRows_Recordset2 mysql_num_rows($Recordset2);
if (
$totalRows_Recordset2=="") {echo "No hay datos para mostrar";} else {

mysql_select_db($database_cersol$cersol);
$query_Recordset1 "SELECT * FROM marca_termicas WHERE id =".$row_Recordset2['id_marca'];
$Recordset1 mysql_query($query_Recordset1$cersol) or die(mysql_error());
$row_Recordset1 mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 mysql_num_rows($Recordset1);
?>

 <table width="356" border="0" cellspacing="0" cellpadding="0">
  
  <tr>
    <td scope="col"><?php 
    
    
do { ?><table width="480" border="0" align="center" cellpadding="0" cellspacing="0">
      <tr>
        <td width="182" rowspan="2" align="left" valign="top"><table width="157" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td><div align="left"><img src="logo/<?php echo $row_Recordset1['logo']; ?>" /></div></td>
            </tr>
        </table>
          </td>
        <td width="298" class="tituloMarca"><div align="left"><?php echo strtoupper($row_Recordset1['nombre']); ?></div></td>
      </tr>
      <tr>
        <td valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td><?php 
        
// Variables de Configuraci&oacute;n -----------------------------------
// Define el numero de Filas
$n_filas=2;

//***************************************************************
@$type=$_REQUEST['tipe'];
//$cat=8;

$fotos = array();
        
$sql="SELECT * FROM imp_term WHERE id_marca=".$row_Recordset1['id']." and tipo = ".$type."";
mysql_select_db ('connect');
    
$sql_exec=mysql_query($sql);
    
    
/*while($row=mysql_fetch_assoc($sql_exec)){
            $tottal=mysql_affected_rows(); // Calculo el numero total de itms a listar
            }*/
            
$tottal=113;
// ------------------------------------------------------------------------------------------------------------------
$vert=$tottal/$n_filas;
$vert=round($vert); ?> 
              <?php 
        $a
=0;// Colocando el contador horizontal en 0
        
$i=1;// Colocando el contador vertical en 0
        
$w=0;//Colocando un contador para el mensaje de "No hay articulos en esta acategoria"
        
            
while($row=mysql_fetch_assoc($sql_exec)){
            
$w=w+1;
                if (
$a==0){
                echo 
'<tr>';
                }
                
$a=$a+1;
                
$fotos[$i.'-'.$a] = $row['nombres'];
                
                echo 
"<td width='180' height='15' border='0'><p align='left' class='marronlink'><a href='ficha_camioneta.php?id=".$row['id']."'>".$row['nombres']. "</a></p>";
            
                
$r=$a;// contador remanente para listar imagenes sin exceso
                
                    
if ($a >= $n_filas) {
                    
$a=0;// reiniciando el contador horizontal
                    
$i=$i+1;// aumentando el contador vertical
                    
echo '</tr>';
                    } 
            if (empty(
$row)) {
        echo
"<table width='0' border='0' align='center' cellpadding='0' cellspacing='0'>
          <tr>
            <td width='257'><div align='center'>No hay articulos en esta categoria </div></td>
          </tr>
        </table>
        "
;
        break 
1;}
            
            }
            
         echo 
'</td>'
        
?> </td>
          </tr>
        </table>
          <br /></td>
      </tr>
      <tr>
        <td colspan="2" align="center" valign="top">&nbsp;</td>
        </tr>
      <tr>
        <td colspan="2" align="center" valign="top">&nbsp;</td>
      </tr>
    </table>
          <?php } while ($row_Recordset1 mysql_fetch_assoc($Recordset1));  
           
          
?></td>
  </tr>
  <tr>
    <td scope="col"></td>
  </tr>
</table>
  

  <p class="tituloQUIENES">
    <?php
mysql_free_result
($Recordset1); }
?>
Gracias por anticipado
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #17 (permalink)  
Antiguo 13/01/2009, 10:05
Avatar de colote  
Fecha de Ingreso: julio-2008
Ubicación: Rosario - Santa Fe - Argentina
Mensajes: 729
Antigüedad: 15 años, 9 meses
Puntos: 8
Respuesta: [AYUDA] Listado de productos no hace while en marcas

Hola !!!
Sera que es de sintaxis el error, es lo que pude ver, el tema de las comillas, prueba con esto :
Código PHP:
$query_Recordset1 "SELECT * FROM marca_termicas WHERE id ='$row_Recordset2[id_marca]'"
Espero te sirva

Saludos, Ricardo !!!
__________________
Mail: [email protected]
  #18 (permalink)  
Antiguo 13/01/2009, 12:59
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Listado de productos no hace while en marcas

El codigo de la vez anterior no te sirvio?
__________________
- León, Guanajuato
- GV-Foto
  #19 (permalink)  
Antiguo 13/01/2009, 15:15
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema para mostrar resultados

Temas unidos, por favor no dupliques temas.
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 02:25.