Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] While dentro otro while con el valor del primer While, SUBMENU

Estas en el tema de While dentro otro while con el valor del primer While, SUBMENU en el foro de PHP en Foros del Web. Buenas a todos , estaba haciendo un menu con submenu. He leido y buscado, hecho los ejemplos y no he logrado nada , entonces trate ...
  #1 (permalink)  
Antiguo 17/05/2016, 22:13
 
Fecha de Ingreso: marzo-2014
Mensajes: 21
Antigüedad: 10 años
Puntos: 0
While dentro otro while con el valor del primer While, SUBMENU

Buenas a todos , estaba haciendo un menu con submenu.

He leido y buscado, hecho los ejemplos y no he logrado nada, entonces trate de hacerlo de la siguiente manera:


Primero lo que dice el dreamweaver en el encabezado

Código PHP:
$colname_tmenu "1";
if (isset(
$_GET['act'])) {
  
$colname_tmenu $_GET['act'];
}
mysql_select_db($database_rp$rp);
$query_tmenu sprintf("SELECT * FROM tmenu WHERE act = %s"GetSQLValueString($colname_tmenu"int"));
$tmenu mysql_query($query_tmenu$rp) or die(mysql_error());
$row_tmenu mysql_fetch_assoc($tmenu);
$totalRows_tmenu mysql_num_rows($tmenu); 
Que es que seleccione todos los datos que sean "1" osea para mi activado.

Luego lo que esta en el HTML:

Código PHP:
       <?php do { ?>
                                   // Deseo agarrar este valor  <?php echo $row_tmenu['idm']; ?>    
                                      
                                  <li><a href="<?php echo $row_tmenu['mlink']; ?>" class="<?php echo $row_tmenu['clase']; ?>"><strong><?php echo $row_tmenu['tmenu']; ?></strong></a>
                          
                          
                          
         <?php if ($row_tmenu['mlink'] == "#") { ?>         
                                   <ul class="sub-menu">
                                       
                                 <li><a href="gracias.html">Gracias</a></li>
                                                
                                        </ul>
                                 </li>
         <?php ?>   

                  <?php } while ($row_tmenu mysql_fetch_assoc($tmenu)); ?>
                              </ul>

Se que la parte de la consulta se encuentra mal pues agarra el primer valor del listado de la consulta de la base de datos.

Código PHP:
<?php if ($row_tmenu['mlink'] == "#") { ?>         
                                   <ul class="sub-menu">
                                        
                                          <li><a href="( e )">"( f )"</a></li>
                                        </ul>
                                        
        <?php ?>
Primero lo que deseo es que si el valor del link es "#" entonces que imprima la linea, y no se como hacer esto.

Por consiguiente que es la parte que tampoco se como logar es que me imprima todos los valores que pertencen al "idm" (fue el que coloque
Código PHP:
// Deseo agarrar este valor  <?php echo $row_tmenu['idm']; ?>
) para que cuando imprima la linea sean todo los relacionados con el mismo id.

Se que tengo que hacer un
Código MySQL:
Ver original
  1. select * form submenu WHERE menu = idm
pero la parte que me quedo es como le digo dentro del select que eliga el "idm" del resultado de la primera consulta.


Agradezco de antemano su apoyo.

Gracias!
  #2 (permalink)  
Antiguo 18/05/2016, 07:36
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: While dentro otro while con el valor del primer While, SUBMENU

Código PHP:
Ver original
  1. $sql = "select * from submenu where menu = '{$row_tmenu['idm']}'";
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 18/05/2016, 08:42
 
Fecha de Ingreso: marzo-2014
Mensajes: 21
Antigüedad: 10 años
Puntos: 0
Respuesta: While dentro otro while con el valor del primer While, SUBMENU

Ok, el código como lo brindas lo coloco debajo del otro while y agarro el valor del primer resultado?.... lo intento y te comento, pero como hago con el if del Sublink sea igual a #?
  #4 (permalink)  
Antiguo 18/05/2016, 08:46
 
Fecha de Ingreso: marzo-2014
Mensajes: 21
Antigüedad: 10 años
Puntos: 0
Respuesta: While dentro otro while con el valor del primer While, SUBMENU

He intendado con otro codigo que encontre en este foro, pero sale error "Notice: Undefined variable: con in C:\wamp\www\rp\index2.php on line 88" y " Warning: mysql_query() expects parameter 2 to be resource, null given in C:\wamp\www\rp\index2.php on line 88"

Código PHP:
Ver original
  1. <?php
  2.                    $query = "select t.tmenu, t.idm, t.tmenu_ing, t.clase, t.clasersp, t.mlink from tmenu as t ";
  3.                    $exe = mysql_query($query,$con)or die(mysql_error());
  4.                    while($row_parent = mysql_fetch_array($exe)){                           // Linea 88
  5.                     $query2 ="select m.idm, m.sublink, m.nmbsub_ing, m.nmbsub from menu as m where m.idm = '".$row_parent['t.idm']."'";
  6.                     $exe2 = mysql_query($query2,$con)or die(mysql_error());
  7.                     $cant = mysql_num_rows($exe2);
  8.                     if($cant == 0){              
  9.                      "<li><a href=\"#\">".$row_parent['tmenu']."</a></li>";
  10.                      }else{
  11.                      "<li><a class=\"has-submenu\" href=\"#\">".$row_parent['tmenu']."</a><ul>";
  12.                    while($row_child = mysql_fetch_array($exe2)){  
  13.                          " <ul class=\"sub-menu\">
  14.                                              <li><a href=\"\">".$row_child['nmbsub']."</a></li>
  15.                      
  16.                                        </ul>";
  17.                      }
  18.                                 " </li>
  19.                               </ul>";
  20.                         }
  21.                     }        
  22.                     ?>

Aunque se que aun no declaro los link de los submenu ni del menu solo quiero que me salga el resultado haber que tal se ve, pero aun no logro resultado.

Última edición por luis2791; 18/05/2016 a las 09:02
  #5 (permalink)  
Antiguo 23/06/2016, 19:43
 
Fecha de Ingreso: marzo-2014
Mensajes: 21
Antigüedad: 10 años
Puntos: 0
Respuesta: While dentro otro while con el valor del primer While, SUBMENU

Envio como lo resolví con un código que encontré en esta misma pagina,
Todo va dentro del pagina.php:

Primero la conexion y la consulta antes
Código PHP:
Ver original
  1. try {
  2.     $pdo = new PDO("mysql:host=localhost;dbname=basedatos", 'usuario','contrasena');
  3. }
  4. catch(PDOException $e){
  5.     echo $e->getMessage();
  6. }
  7. $sql = "Select * FROM tmenu where act = 1 ORDER BY idm";
  8. $stmt = $pdo-> prepare($sql);
  9. $stmt->execute();

Ahora lo que va dentro del body,
Código PHP:
Ver original
  1. <?php
  2.                                 while ($row = $stmt->fetch(PDO::FETCH_OBJ)){
  3.                                 $sub_sql = "Select m.idsm, m.link, m.nmbsub, p.pctid, m.nmbsub_ing, p.pcttitulo FROM menu m
  4. inner join proyecto p on m.sublink = p.pctid WHERE link=:idm";
  5.                                 $sub_stmt = $pdo->prepare($sub_sql);
  6.                                 $sub_stmt->bindParam(':idm',$row->idm,PDO::PARAM_INT);
  7.                                 $sub_stmt->execute();
  8.                                 ?>
  9.                                     // sale lo que va en el encabezado
  10.                                     <li><a href="<?php echo $row->mlink; ?>" class="<?php echo $row->clase; ?>" ><strong><?php echo $row->tmenu; ?></strong></a>
  11.                                 <?php
  12.                                                                       // y esto se va a imprimir si el menu tiene submenus relacionados
  13.                                   if ($sub_stmt->rowCount()){
  14.                                 ?>
  15.                                     <ul class="sub-menu">
  16.                                 <?php
  17.                                         while ($sub_row = $sub_stmt->fetch(PDO::FETCH_OBJ)) {
  18.                                 ?> 
  19.                                             <li><a href="consulta.php?es=<?php echo $sub_row->pcttitulo; ?>&i=<?php echo $sub_row->pctid; ?>"><?php echo $sub_row->nmbsub; ?></a></li>
  20.                                            
  21.                                 <?php }?>
  22.                                     </ul>
  23.                                 <?php }?>
  24.                                    
  25.                                     </li>
  26.                                 <?php } ?>
Por mi parte tuve que relacionar las tablas con los (inner join) para que me tiraba el titulo y la clase del menu y esas cosas.


Gracias por el apoyo brindado!

Etiquetas: html, mysql, primer, select, sql, submenu, valor
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 14:16.