Foros del Web » Programando para Internet » PHP »

estoy entrando en un bucle infinito??

Estas en el tema de estoy entrando en un bucle infinito?? en el foro de PHP en Foros del Web. el codigo hace lo siguiente: en el primer if, sino esta apretado el boton muestra campos, sino y esta vacio caract o num o anio ...
  #1 (permalink)  
Antiguo 10/07/2012, 10:44
 
Fecha de Ingreso: septiembre-2005
Mensajes: 80
Antigüedad: 19 años, 2 meses
Puntos: 0
estoy entrando en un bucle infinito??

el codigo hace lo siguiente: en el primer if, sino esta apretado el boton muestra campos, sino y esta vacio caract o num o anio mensaje de error, sino guarda, concatena, se conecta a la bd, y en while ($array = mysql_fetch_array($busqueda) or $encuentre==0) me tira error Fatal error: Maximum execution time of 30 seconds exceeded in ... Yo quiero que corte si encuantra un exped ya cargado sino que lo cargue, que estoy haciendo mal????



Código:
<?php
if (!isset($_POST['Carga'])) 
{
    
 echo   '<div align="center">';

echo   ' <form action="sin.php" method="post">';

echo   'Expediente'; 

echo   '<input class="col_1" onkeypress="return handleEnter(this, event)" name="caract" type="text">';

echo   '-<input class="col_1" onkeypress="return handleEnter(this, event)"  name="num" type="text">';

echo   '/ <input class="col_1" onkeypress="return handleEnter(this, event)"  name="anio" type="text">';

echo   '-<input class="col_1" onkeypress="return handleEnter(this, event)" name="alc" type="text">';

echo   '<input class="small green" name="Carga" value="Carga" type="submit">';

echo   '</form>';

echo   '</div>';
}
else
{   
        if (empty($_POST['caract']) || empty($_POST['num']) || empty($_POST['anio']))
        {
        echo   '<div align="center">';
        
          //echo "<div class='col_4'>";
	      echo "<div class='notice warning'><span class='icon medium' data-icon='!'></span>Faltan datos por ingresar<a href='#close' class='icon close' data-icon='x'></a></div>";
          //echo "</div>";  
          
        echo   ' <form action="sin.php" method="post">';

        echo   'Expediente'; 

        echo   '<input class="col_1" onkeypress="return handleEnter(this, event)" name="caract" type="text">';

        echo   '-<input class="col_1" onkeypress="return handleEnter(this, event)"  name="num" type="text">';

        echo   '/ <input class="col_1" onkeypress="return handleEnter(this, event)"  name="anio" type="text">';

        echo   '-<input class="col_1" onkeypress="return handleEnter(this, event)" name="alc" type="text">';

        echo   '<input class="small green" name="Carga" value="Carga1" type="submit">';

        echo   '</form>';

        echo   '</div>';  
        }
        else
        {
              
            if(isset($_POST['caract'])) 
               { 
                 $caract=$_POST['caract']; 
               }

            if(isset($_POST['num'])) 
                { 
                  $num=$_POST['num']; 
                  }

            if (isset($_POST['anio'])) 
              { 
               $anio=$_POST['anio']; 
              }

            if (isset($_POST['alc']))
                { 
                    $alc=$_POST['alc']; 
                }

           $f=$caract.$num.$anio.$alc;

          settype($f,"string");


//conexion a la base de datos
include_once('cone.php');
Conectate();
//conexion a la base de datos


 $busqueda=mysql_query("select expediente from pasajes") or die(mysql_error());
 $encuentre=0;
 while ($array = mysql_fetch_array($busqueda) or $encuentre==0)
 {
 if($array['expediente']==$f)
 {
  echo '<div class="notice error"><span class="icon medium" data-icon="X"></span>EL EXPEDIENTE YA ESTA CARGADO<a href="#close" class="icon close" data-icon="x"></a></div>';
  $encuentre=1;
  echo   '<div align="center">';
  echo   ' <form action="sin.php" method="post">';

        echo   'Expediente'; 

        echo   '<input class="col_1" onkeypress="return handleEnter(this, event)" name="caract" type="text">';

        echo   '-<input class="col_1" onkeypress="return handleEnter(this, event)"  name="num" type="text">';

        echo   '/ <input class="col_1" onkeypress="return handleEnter(this, event)"  name="anio" type="text">';

        echo   '-<input class="col_1" onkeypress="return handleEnter(this, event)" name="alc" type="text">';

        echo   '<input class="small green" name="Carga" value="Carga" type="submit">';

   echo   '</form>';
   echo   '</div>';
 }
 }
 
    if ( $encuentre==0)
    {
    mysql_query("insert into pasajes(expediente) values ($f)") or die (mysql_error());
    echo '<div class="notice success" align="center"><span  class="icon medium" data-icon="C"></span>GUARDADO CON EXITO<a href="#close" class="icon close" data-icon="x"></a></div>';
    
  
    echo   '<div align="center">';
    echo "<input class='col_1' value='$caract' name='caract' type='text' disabled='disabled'>";
    echo "-<input class='col_1' value='$num' name='num' type='text' disabled='disabled'>";
    echo "/ <input class='col_1' value='$anio' name='anio' type='text' disabled='disabled'>";
    echo "-<input class='col_1' value='$alc' name='alc' type='text' disabled='disabled'>";
    echo   '</div">';
     }
    
   
            
        }
}
?>
  #2 (permalink)  
Antiguo 10/07/2012, 10:55
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: estoy entrando en un bucle infinito??

Pues aparte de poner echos por cada linea completamente innecesarios, triplicar código, y hacer búsquedas "a pie" en vez de directo por mysql, pues que seguramente la variable $encuentre nunca deja de ser 0.

Si no me equivoco quieres un script tipo alta-modificación, de ser así, es realmente sencillo, pero creo que necesitas aclarar mejor si es lo que quieres.
  #3 (permalink)  
Antiguo 11/07/2012, 05:38
 
Fecha de Ingreso: septiembre-2005
Mensajes: 80
Antigüedad: 19 años, 2 meses
Puntos: 0
Respuesta: estoy entrando en un bucle infinito??

jajjaaj, bueno seguro es asi, es la primera vez que programo. si quieren y pueden corrianme el codigo para que sea mas eficiente. Lo que yo quiero es: tengo 4 campos de texto, que cuando lo cargan, lo concateno y lo busco en la bd si ya esta cargado, si es asi, saco un mensaje, sino, lo guarda concatenado y ahi es donde me sale ese mensaje de error. yo pongo la variable $encuantra, para saber si encontro algo en la busqueda, si $encuentra=0 significa que el expte no existe. Y ahora que hago??
  #4 (permalink)  
Antiguo 11/07/2012, 10:30
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: estoy entrando en un bucle infinito??

¿A qué te refieres con "cargado"? por que no me queda claro si hablas de llenar el formulario o almacenarlo. Tampoco entiendo para qué lo concatenas.
  #5 (permalink)  
Antiguo 11/07/2012, 17:13
 
Fecha de Ingreso: septiembre-2005
Mensajes: 80
Antigüedad: 19 años, 2 meses
Puntos: 0
Respuesta: estoy entrando en un bucle infinito??

1) lo concateno porque en la bd inicialmente defini un campo expediente que era numerico, pero como quiero en reiteradas veces ver si existe ya cargado un expte y no me salio, entonces lo hice varchar para que el usuario lo ingrese en 4 o 5 campos, lo concateno y cuando lo quiero buscar me resulta mas facil saber si esta en la bd o no.
2)desp de concatenarlo me fijo en la bd si está ya ingresado, se entendio?? no quiero cargar datos repetidos.
Ahora espero me ayuden
  #6 (permalink)  
Antiguo 11/07/2012, 17:21
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: estoy entrando en un bucle infinito??

Más o menos das a entender el por qué de tu concatenación, cosa que arreglarías usando una tabla con campo autonumérico, para que asigne folios en automático. Pero sigues sin explicar a qué le llamas "cargado", ¿te refieres a si ya está almacenado? por que normalmente el término cargado se refiere a algo que está almacenado "cargarlo" a la pantalla del usuario.
  #7 (permalink)  
Antiguo 11/07/2012, 18:08
 
Fecha de Ingreso: septiembre-2005
Mensajes: 80
Antigüedad: 19 años, 2 meses
Puntos: 0
Respuesta: estoy entrando en un bucle infinito??

bien, no entendi mucho lo de folios automaticos?'. y si, cargado para mi significa que ya esta almacenado en la bd.
  #8 (permalink)  
Antiguo 12/07/2012, 09:06
 
Fecha de Ingreso: septiembre-2005
Mensajes: 80
Antigüedad: 19 años, 2 meses
Puntos: 0
Respuesta: estoy entrando en un bucle infinito??

Al final lo unico que hice hasta ahora es aclarar que quiero solucionar, o en otro post que me cagaron a pedo xq no arregle el codigo, pero de ayudar ni hablar, solo criticas a mi codigo (que obvio xq es la primera vez que programo!!). Si encima las preguntas que hago para uds fueran dificiles entenderia que tardaran en contestar, pero con las pavadas que yo pregunto, no entiendo, porque no ayudan. seguro que ahora que critico el foro contestan rapido. La verdad no me gusto nada.
  #9 (permalink)  
Antiguo 12/07/2012, 12:49
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 9 meses
Puntos: 155
Respuesta: estoy entrando en un bucle infinito??

ijole carnal el pex es que no se que phpero de aqui le quiera entrar a tu codigo, no es necesario que por cada linea html le pongas un echo eso complica demasiado la lectura para poder ayudarte

mejor has algo asi:
Código PHP:
<?
//codigophp



?>
<!--
codigo html

-->

<?
//codigophp



?>
ahora te recomiendo que identes el codigo pero no los echos

y que le des una leida a esta parte del manual

http://mx.php.net/manual/es/function.mysql-query.php

para que veas como funciona o como se usa lo que quieres hacer con tu while

creeme 15 mins bien invertidos en una busqueda de lo que quieres marcara la diferencia en como te apoyen aqui, trato de ser muy asertivo y constructivo en mi critica
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #10 (permalink)  
Antiguo 12/07/2012, 13:25
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: estoy entrando en un bucle infinito??

Trataré de contestarte de una manera correcta y no como amerita tu último comentario:
El foro se trata de ayudar, pero en tu caso necesitas leer manuales básicos, un tutorial donde veas cómo usar mysql + php para crear un formulario. Conforme vayas leyendo, conocerás términos relacionados a la programación, de tal forma que tus preguntas no resulten crípticas, ya que primero hay que entender qué es lo que quieres para luego ayudarte. Por otra parte, no todo el mundo está al pendiente de lo que se pregunta aquí, una pregunta puede no ser contestada inmediatamente, y no todo el mundo tiene tiempo de hacer código, ya que en tu caso hay que rehacerlo, de ahí que no recibas muchas respuestas. El foro no es para dar cursos, es para apoyar en dudas concretas.

Cuando te indiqué que te conviene usar folio automáticos con campos autonuméricos, si no sabes que son debiste buscar en la web, no esperar a que se te vaya guiando paso a paso.

Sé que hay individuos aquí que se sienten seres superiores y que si preguntas algo equivocadamente se burlan o contestan socarronamente, al igual que hay quien se toma el tiempo de descifrar lo que quiso decir la persona. Así que criticar el foro por lo que una persona hace es absurdo.
  #11 (permalink)  
Antiguo 12/07/2012, 19:53
 
Fecha de Ingreso: septiembre-2005
Mensajes: 80
Antigüedad: 19 años, 2 meses
Puntos: 0
Respuesta: estoy entrando en un bucle infinito??

ok. entonces primero me leo un par de tutoriales y despues pregunto. Gracias por todo

Etiquetas: bucle, mysql, sql
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 22:10.