Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Solo imprime el ultimo id en un while de una consulta lo demás si se imprime bien

Estas en el tema de Solo imprime el ultimo id en un while de una consulta lo demás si se imprime bien en el foro de Mysql en Foros del Web. Tengo este código que te hace selleccionar una fecha y selecciona todos los campos de una tabla calendario cuando la fecha es igual a la ...
  #1 (permalink)  
Antiguo 09/10/2011, 21:27
Avatar de MarioAlejandroCR2  
Fecha de Ingreso: mayo-2010
Ubicación: Esparza - Puntarenas
Mensajes: 98
Antigüedad: 13 años, 11 meses
Puntos: 2
Pregunta Solo imprime el ultimo id en un while de una consulta lo demás si se imprime bien

Tengo este código que te hace selleccionar una fecha y selecciona todos los campos de una tabla calendario cuando la fecha es igual a la digitada, hasta acá funciona bien:

Código PHP:
Ver original
  1. <?php
  2. $Accion_Formulario = $_SERVER['PHP_SELF'];
  3. if ((isset($_POST["OC_selec1"])) && ($_POST["OC_selec1"] == "formsf")) {
  4. $SQL = sprintf("select * from calendario where dia='".$_POST['dia']."' and mes='".$_POST['mes']."' and anho='".$_POST['anho']."'");
  5.  
  6. mysql_select_db($Basedatos, $MiConexion);
  7. $regis2 = mysql_query($SQL, $MiConexion) or die(mysql_error());
  8. $row_regis2= mysql_fetch_assoc($regis2);
  9. }
  10. ?>

El problema se da ya casi, acá, imprime bien todos que seon de dicha fecha en los campos mediante un while, y hay un botón seleccionar que captura el idcal (id del calendario)

Código PHP:
Ver original
  1. <form method="post" name="formse" onsubmit="return checkdata(this)" action="<?php echo $Form_SelEv; ?>" >
  2. <?php
  3. $row_regis2 = mysql_query($SQL, $MiConexion);
  4. while($cateFila = mysql_fetch_assoc($row_regis2)){
  5.         $ideven = $cateFila['idcal'];
  6.         echo '<br /><div class="nar"><b>Evento: </b>',$cateFila['nomgral'],'</br>
  7.         <b>ID: </b>',$cateFila['idcal'],'
  8.         <input type="submit" value="Seleccionar" name="enviar" class="whiteder"></input>
  9.         <input type="hidden" name="OC_selec2" value="formse"></input>
  10.         </div>';
  11.         echo '<hr color="#e1e1e1"></hr>';
  12.            
  13. }?>
  14.        
  15.         </form>

El problema es que solo me imprime el último valor del while, lo comprobe haciendo un echo a $ideven, pero a la hora de hacerle un echo al $SQLSE osea la consulta me sale:
Código Resultado:
Ver original
  1. select * from calendario where idcal=''
  #2 (permalink)  
Antiguo 10/10/2011, 01:00
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Solo imprime el ultimo id en un while de una consulta lo demás si se impri

No acabo de entender que haces en el ultimo script y sobre todo no veo donde generas esa última query... será por que estamos en bbdd y no en php...

En todo caso si la query que intentas ejecutar es esa ultima es normal que no te de ningun resultado.... pero el problema no es de bbdd si no de php puesto que no llega el valor de idcal... pero ya te he dicho que en los scripts que mandas no se ve como se genera esa query, o al menos no lo se ver...
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 10/10/2011, 03:36
Avatar de MarioAlejandroCR2  
Fecha de Ingreso: mayo-2010
Ubicación: Esparza - Puntarenas
Mensajes: 98
Antigüedad: 13 años, 11 meses
Puntos: 2
Respuesta: Solo imprime el ultimo id en un while de una consulta lo demás si se impri

El primer script selecciona todos los campos de x fecha y los imprime
El segundo debería enviar idcal a la consulta y poder hacer lo demás irrelevante pero el hecho es que no me envia siquiera idcal
  #4 (permalink)  
Antiguo 10/10/2011, 03:37
Avatar de MarioAlejandroCR2  
Fecha de Ingreso: mayo-2010
Ubicación: Esparza - Puntarenas
Mensajes: 98
Antigüedad: 13 años, 11 meses
Puntos: 2
Respuesta: Solo imprime el ultimo id en un while de una consulta lo demás si se impri

Cita:
Iniciado por MarioAlejandroCR2 Ver Mensaje
Tengo este código que te hace selleccionar una fecha y selecciona todos los campos de una tabla calendario cuando la fecha es igual a la digitada, hasta acá funciona bien:

Código PHP:
Ver original
  1. <?php
  2. $Accion_Formulario = $_SERVER['PHP_SELF'];
  3. if ((isset($_POST["OC_selec1"])) && ($_POST["OC_selec1"] == "formsf")) {
  4. $SQL = sprintf("select * from calendario where dia='".$_POST['dia']."' and mes='".$_POST['mes']."' and anho='".$_POST['anho']."'");
  5.  
  6. mysql_select_db($Basedatos, $MiConexion);
  7. $regis2 = mysql_query($SQL, $MiConexion) or die(mysql_error());
  8. $row_regis2= mysql_fetch_assoc($regis2);
  9. }
  10. ?>

El problema se da ya casi, acá, imprime bien todos que seon de dicha fecha en los campos mediante un while, y hay un botón seleccionar que captura el idcal (id del calendario)

Código PHP:
Ver original
  1. <form method="post" name="formse" onsubmit="return checkdata(this)" action="<?php echo $Form_SelEv; ?>" >
  2. <?php
  3. $row_regis2 = mysql_query($SQL, $MiConexion);
  4. while($cateFila = mysql_fetch_assoc($row_regis2)){
  5.         $ideven = $cateFila['idcal'];
  6.         echo '<br /><div class="nar"><b>Evento: </b>',$cateFila['nomgral'],'</br>
  7.         <b>ID: </b>',$cateFila['idcal'],'
  8.         <input type="submit" value="Seleccionar" name="enviar" class="whiteder"></input>
  9.         <input type="hidden" name="OC_selec2" value="formse"></input>
  10.         </div>';
  11.         echo '<hr color="#e1e1e1"></hr>';
  12.            
  13. }?>

Consulta que debería tomar idcal
Código PHP:
Ver original
  1. <?php
  2. $Form_SelEv = $_SERVER['PHP_SELF'];
  3. if ((isset($_POST["OC_selec2"])) && ($_POST["OC_selec2"] == "formse")) {
  4. $SQLSE = sprintf("select * from calendario where idcal='".$ideven."'");
  5.  
  6. mysql_select_db($Basedatos, $MiConexion);
  7. $regisse = mysql_query($SQLSE, $MiConexion) or die(mysql_error());
  8. $row_regisse= mysql_fetch_assoc($regisse);
  9. }
  10. ?>
  11.  
  12.        
  13.         </form>

El problema es que solo me imprime el último valor del while, lo comprobe haciendo un echo a $ideven, pero a la hora de hacerle un echo al $SQLSE osea la consulta me sale:
Código Resultado:
Ver original
  1. select * from calendario where idcal=''

Última edición por MarioAlejandroCR2; 10/10/2011 a las 03:54

Etiquetas: campos, imprime, php, query, select, sql, tabla, ultimo
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 07:27.