Foros del Web » Programando para Internet » PHP »

problema con while e if

Estas en el tema de problema con while e if en el foro de PHP en Foros del Web. Buenas, tengo una consulta SQL que extrae una lista de marca de telefonos de una base de datos, y quiero poner un enlace que cuando ...
  #1 (permalink)  
Antiguo 24/02/2011, 14:28
 
Fecha de Ingreso: noviembre-2008
Ubicación: el sol
Mensajes: 146
Antigüedad: 15 años, 5 meses
Puntos: 6
problema con while e if

Buenas, tengo una consulta SQL que extrae una lista de marca de telefonos de una base de datos, y quiero poner un enlace que cuando le de a ese enlace salga abajo de esa marca seleccionada un form para subir una imagen. Pongo el código aver si lo entendeis mejor.
Código PHP:
    {
        echo 
"<strong>MARCAS</strong><br><br>";
        echo 
"<form action=\"\" method=\"post\" name=\"form1\">
        Nombre de marca: <input name=\"marca\" type=\"text\">
        <input name=\"accion\" type=\"hidden\" value=\"insertarmarca\">
        <input name=\"submit\" type=\"submit\" value=\"Insertar marca\">
        </form><br>"
;
        
$sql2 "SELECT * FROM marcas_telefonos ORDER BY marca ASC";
        
$result2=MySQL_query($sql2,$db);
        while(
$myrow2=MySQL_fetch_array($result2))
        {
            
$id $myrow2["0"];
            
$marca $myrow2["1"];
            echo 
"&raquo; $marca  &bull; <a onClick=\"return window.confirm('Va a eliminar la siguiente marca: $marca \\n &iquest;esta conforme?')\" href=\"?idmarca=$id&amp;accion=eliminarmarca\" title=\"Eliminar\">ELIMINAR</a> &bull; <a href=\"?administrar=telefonos&amp;telefonos=marcas&amp;idmarca=$id&amp;accion=subirimagen\" title=\"subir\">SUBIR IMAGEN</a><br>";
            
$accion $_GET['accion'];
            if(
$accion==subirimagen)
                {
                    echo 
"AQUI TU FORM PARA SUBIR IMAGEN<br />";
                }
        }
    } 
El problema viene que si pongo el IF que muestra el form dentro de while cuadno le doy al botón me lo repite el mismo número de datos que ha extraido y si lo pongo debajo del while siempre sale al final y no se que hacer para que solo salga debajo del modelo al que pertenezca el id.. Un saludo y gracias
  #2 (permalink)  
Antiguo 24/02/2011, 15:37
 
Fecha de Ingreso: diciembre-2008
Mensajes: 69
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: problema con while e if

Es un eterno problema de los while. Y pregunto, ¿por qué usar while y no hacer lo siguiente?

Código PHP:
Ver original
  1. $result2=mysql_query($sql2,$db);
  2. $myrow2=mysql_fetch_array($result2);

En otras palabras, sacás el while.
Creo que funcionaría igual.

Un saludo, manteneme al tanto.
  #3 (permalink)  
Antiguo 24/02/2011, 16:12
 
Fecha de Ingreso: noviembre-2008
Ubicación: el sol
Mensajes: 146
Antigüedad: 15 años, 5 meses
Puntos: 6
Respuesta: problema con while e if

Cita:
Iniciado por aagus Ver Mensaje
Es un eterno problema de los while. Y pregunto, ¿por qué usar while y no hacer lo siguiente?

Código PHP:
Ver original
  1. $result2=mysql_query($sql2,$db);
  2. $myrow2=mysql_fetch_array($result2);

En otras palabras, sacás el while.
Creo que funcionaría igual.

Un saludo, manteneme al tanto.
Pero si quito el while no me saca todos los registros que tengo en la base de datos, no hace el bucle, solo me saca el primero...
  #4 (permalink)  
Antiguo 24/02/2011, 16:22
 
Fecha de Ingreso: diciembre-2008
Mensajes: 69
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: problema con while e if

¿Y hacer un mysql_close()?
  #5 (permalink)  
Antiguo 24/02/2011, 16:31
 
Fecha de Ingreso: noviembre-2008
Ubicación: el sol
Mensajes: 146
Antigüedad: 15 años, 5 meses
Puntos: 6
Respuesta: problema con while e if

Cita:
Iniciado por aagus Ver Mensaje
¿Y hacer un mysql_close()?
Con mysql_close() cierro la conexion con la base de datos no? he probado, con el while y añadiendo mysql_close() antes de donde quiero poner el form no funciona, me da errores porque tiene que seguir extrayendo datos y se me sigue repitiendo el echo que tengo. Lo que quiero conseguir es que el echo que esta
if($accion==subirimagen)
{

echo "AQUI TU FORM PARA SUBIR IMAGEN<br />";
}

Se muestre una sola vez, debajo del boton donde haya presionado
  #6 (permalink)  
Antiguo 24/02/2011, 16:36
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: problema con while e if

Cita:
Iniciado por aagus Ver Mensaje
Es un eterno problema de los while. Y pregunto, ¿por qué usar while y no hacer lo siguiente?

Código PHP:
Ver original
  1. $result2=mysql_query($sql2,$db);
  2. $myrow2=mysql_fetch_array($result2);

En otras palabras, sacás el while.
Creo que funcionaría igual.

Un saludo, manteneme al tanto.
What???? XDD

Si vas a recorrer varios registros, se va a complicar si sacás el while.

No entiendo bien tu problema ni lo que querés hacer, pero acá tenés un error grave:

Código PHP:
f($accion==subirimagen
y supongo que será

Código PHP:
f($accion=="subirimagen"
Si podés redactar mejor lo que intentás hacer, va a ser más facil ayudarte.
  #7 (permalink)  
Antiguo 24/02/2011, 16:41
 
Fecha de Ingreso: noviembre-2008
Ubicación: el sol
Mensajes: 146
Antigüedad: 15 años, 5 meses
Puntos: 6
Respuesta: problema con while e if

Gracias por corregir el error, no lo ví.

Aver poniendolo el ejemplo de otra forma, lo que quiero es, yo extraigo unos datos que son los nombres de marcas de telefonos, hasta ahí bien me saca todos. Ahora, alado del nombre de cada registro extraido (nombre marca) hay un botón que es "SUBIR IMAGEN" tal que así.
EJ:
Nokia SUBIR FOTO
Siemens SUBIR FOTO
...etcetc

Quiero que cuando yo le de a ese link me aparezca debajo de la marca un echo que llevara un formulario para subir una foto. Tal que cuadno le de a SUBIR FOTO quede tal que así.
Ej:
Nokia SUBIR FOTO
AQUI EL FORM PARA SUBIR LA FOTO <-- echo con form!!
Siemens SUBIR FOTO
...etc, el resto de registro...

Mi problema es que me aparece de la siguiente forma
Nokia SUBIR FOTO
AQUI EL FORM PARA SUBIR LA FOTO <-- echo con form!!
Siemens SUBIR FOTO
AQUI EL FORM PARA SUBIR LA FOTO <-- echo con form!!
...etc

Es decir me repite tambien el formulario que solo quiero que se muestr 1 vez debajo del registro al que corresponda la ID. Si saco el IF del while, lo que consigo al darle al botón es que solo me muestre el registro al que le clickeado con debajo el formulario, pero solo me saca un registro y quiero que aun dandole al botón de subir foto me salgan todos los registros pero el formulario solo debajo del que pertenezca... Un saludo y espero averme explicado mejor :s
  #8 (permalink)  
Antiguo 24/02/2011, 16:57
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: problema con while e if

Si entendí bien, eso no se hace con php sinó con javascript. Lo que querés hacer es, que solo se vea el link y al clickearlo aparezca solo ese formulario de subida y no redireccione la página, mientras los demás se mantienen ocultos, algo así?
  #9 (permalink)  
Antiguo 24/02/2011, 17:01
 
Fecha de Ingreso: noviembre-2008
Ubicación: el sol
Mensajes: 146
Antigüedad: 15 años, 5 meses
Puntos: 6
Respuesta: problema con while e if

Cita:
Iniciado por walterdevel Ver Mensaje
Si entendí bien, eso no se hace con php sinó con javascript. Lo que querés hacer es, que solo se vea el link y al clickearlo aparezca solo ese formulario de subida y no redireccione la página, mientras los demás se mantienen ocultos, algo así?

Algo así, que cuando clicke en el link me aparezca un unico formulario debajo del registro de donde clikee, pero que los demas registros sigan aparecciendo y en cualquier momento pueda clikear en cualquiero otro boton y me desaparezca el que clickee anteriormente y aparezca el nuevo form del nuevo que clikee. Con javascript? es lo que menos domino y me tengo que poner más al dia, puedes orientarme un poco como hacerlo? un saludo
  #10 (permalink)  
Antiguo 24/02/2011, 17:11
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: problema con while e if

En realidad tendrías que ir al foro de javascript, ahí seguro te van a poder ayudar mejor.

Etiquetas: Ninguno
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 08:25.