Foros del Web » Programando para Internet » PHP »

Problema de seleccion en php

Estas en el tema de Problema de seleccion en php en el foro de PHP en Foros del Web. resulta que tengo una pagina la cual quiero poner un sistema de postal. tengo los codigos los script y todo me funciona en partes esto ...
  #1 (permalink)  
Antiguo 02/09/2004, 11:38
 
Fecha de Ingreso: septiembre-2004
Mensajes: 4
Antigüedad: 13 años, 3 meses
Puntos: 0
Problema de seleccion en php

resulta que tengo una pagina la cual quiero poner un sistema de postal. tengo los codigos los script y todo me funciona en partes esto significa que en mi pagina index.php tengo la opcion de elegir categorias diferentes... me refiero a que el visitante elija entre los siguientes navidad,cumpleaños,sanvalentin......
bueno hasta ahi bien pero al momento de elegir un tipo no sale solo sale el que yo haya determinado en el if ($tipo="navidad")y ahi si me muestra la categoria navidad y asi con todas los probe para sersiorarme que estaba hasiendo...... mi pregunta es como y en donde pongo para que cuando el visitante seleccione una se valla a la seleccion que se hiso para efecto de que entiendan lo que pregunto anexo codigo para solucion de ante mano muchisimas gracias

<br>
<br>
<a href="verpostales.php?$tipo=sanvalentin">San Valent&iacute;n</a>&nbsp;
<a href="verpostales.php?$tipo=cumple">Cumplea&ntilde ;os</a>&nbsp;
<a href="verpostales.php?$tipo=navidad">Navidad</a><br>
<a href="verpostales.php?$tipo=todas">Todas</a>
</div>

</body>
</html>
esto es parte del index..... desde aca se saltaria a ver o mostrar seleccion que seria esta parte


<?
//Incluimos la libreria de funciones
include("funciones.php");

//Creamos el encabezado HTML

html_encabezado("Servicio de postales de DesarrolloWeb","Servicio de postales gratuitas para todo tipo de felicitaciones","postal, navidad, san valentin, cumplea&ntilde;os, felicitacion");
?>
<table align="center" border="0" cellpadding="2" cellspacing="0" bgcolor="White">
<tr>
<td align="center" colspan="4" bgcolor="#ccff00"><font color="#9933ff">Te presentamos nuestras postales</font></td>
</tr>
<?
//$tipo ha sido tranferida por URL

//Genero la sentencia SQL distinta si queremos ver todas las postales

if ($tipo!="todas")

$ssql="Select * From imagenes Where tipo like '".$tipo."%'";
else

$ssql="Select * From imagenes";

//Conectamos a la BD
$connectid=mysql_conexion();

//Ejecutamos sentencia SQL y recogemos resultado en damefila
$resultid = mysql_db_query("postal",$ssql);
$damefila=mysql_fetch_array($resultid);

//Creamos las celdas con las imagenes/enlace
while ($damefila)
{
$i=1;//i es el numero de columnas de la tabla
echo "<tr>\n";
while ($i<=4 and $damefila)
{
echo '<td><a href="formulario.php?id='.$damefila["id_imagen"].'"><img src="imagenes/'.$damefila["id_imagen"].".gif\" border=\"0\"></a></td>\n";
++$i;
$damefila=mysql_fetch_array($resultid);
}
echo "</tr>\n";
}
?>
<tr>
<td align="center" colspan="4" bgcolor="#ccff00">Haz click sobre la tarjeta que te guste para enviarla</td>
</tr>
</table>
<?
//Liberamos la memoria de consulta
mysql_free_result($resultid);

//Generamos enlace hacia atras y cierre de documento
html_pie_volver($HTTP_REFERER)
?>
  #2 (permalink)  
Antiguo 02/09/2004, 12:53
Avatar de Edypu  
Fecha de Ingreso: octubre-2003
Ubicación: La Paz - Bolivia
Mensajes: 394
Antigüedad: 14 años, 2 meses
Puntos: 1
el error esta en tu archivo index.php

lo correcto es :

Cita:
<a href="verpostales.php?tipo=sanvalentin">San Valent&iacute;n</a>&nbsp;
<a href="verpostales.php?tipo=cumple">Cumplea&ntilde; os</a>&nbsp;
<a href="verpostales.php?tipo=navidad">Navidad</a><br>
<a href="verpostales.php?tipo=todas">Todas</a>
Salud2
  #3 (permalink)  
Antiguo 02/09/2004, 12:55
Avatar de Edypu  
Fecha de Ingreso: octubre-2003
Ubicación: La Paz - Bolivia
Mensajes: 394
Antigüedad: 14 años, 2 meses
Puntos: 1
Es codigo HTML no tienes que incluir el signo $
  #4 (permalink)  
Antiguo 03/09/2004, 00:00
 
Fecha de Ingreso: septiembre-2004
Mensajes: 4
Antigüedad: 13 años, 3 meses
Puntos: 0
Amigo gracias por la acotacion, lo que pasa es que yo puse ese signo para probar y se me olvido sacarlo, la pregunta mia es como lo hago para que me determine el tipo elegido en la linea:

//$tipo ha sido transferida por URL
no entiendo que me quisieron decir con esto, el problema lo tengo en cuando yo elijo la categoria de la postal, no me la da, en la linea:
if ($tipo!="todas")........... esta es la linea que originalmente venia en el paquete que me regalaron, cuando yo le saco el signo ! no se refleja ninguna, pero cambio la palabra "todas", por cualquiera que tenga de la eleccion, ejem: if ($tipo="cumple"), se me refleja "cumple" y eso aunque pinche las demas opciones, y asi con la palabra que ponga en reemplazo dentro de la variable, que es lo que tengo que hacer para que se me reflejen las correspondientes al tipo que yo elija? o que agrego para que se me reflejen los demas tipos.
Muchas gracias por responder y atender a mi peticion de ayuda, se los agradezco de antemano y espero ahora me haya explicado mejor, en relacion a mi problema, el codigo sigue siendo el mismo y no he cambiado nada mas solamente le agregue el signo $ al index y se me habia olvidado sacarlo, cuando lo copie en este foro, pero lo demas sigue igual.
Gracias y hasta pronto......Jorge Tobar
  #5 (permalink)  
Antiguo 03/09/2004, 07:59
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 15 años, 11 meses
Puntos: 1
Error en comparación

Saludos.

Cuando comparas la variable debes colocar "==".

Es decir:

($tipo=="cumple") //Cuando $tipo es igual a cumple
($tipo!="cumple") // Cuando $tipo es distinto a cumple

Cuando te dicen que si viene por URL se refiere a como estas pasando la variable hacia la página que esta procesando las variables.

Si las pasas por medio de un link, entonces las variables van por el URL y la forma como debes preguntar por ellas es:

($_GET['tipo']=="cumple")
($_GET['tipo']!="cumple")

Prueba corrigiendo esas cosas. Yo hasta aquí fue que entendi lo que preguntas. Detalla cualquier cosa mejor a ver si puedo ayudarte más.

--------------

Me acabo de dar cuenta de otra cosa.

Las sentencias IF() deben tener las "acciones" enceradas ente {}, Ej:

if ($algo == "queseyo") {
Pasa algo 1
}else{
Pasa algo 2
}


Suerte
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.

Última edición por José Molina; 03/09/2004 a las 08:02 Razón: Detecte otro detalle
  #6 (permalink)  
Antiguo 03/09/2004, 17:10
 
Fecha de Ingreso: septiembre-2004
Mensajes: 4
Antigüedad: 13 años, 3 meses
Puntos: 0
este es el codigo de index
<div align="center">
<font color="#9933ff">Bienvenido al servicio de postales de DesarrolloWeb</font><br>
Por favor, selecciona el tipo de postal que deseas buscar
<br><br>
<img src="clipart_office_mail_155.gif" width="117" height="135" border="0" alt="">
<br>
<br>
<a href="verpostales.php?tipo=sanvalentin">San Valentin</a>&nbsp;
<a href="verpostales.php?tipo=cumple">Cumpleaños</a>&nbsp;
<a href="verpostales.php?tipo=navidad">Navidad</a><br>
<a href="verpostales.php?tipo=todas">Todas</a>
</div>

</body>

Aca esta la parte de respuesta de la seleccion de index ......la cual no ase ......


//$tipo ha sido tranferida por URL

//Genero la sentencia SQL distinta si queremos ver todas las postales

if ($tipo!="todas") {

$ssql="Select * From imagenes Where tipo like '".$tipo."%'";
}
else

$ssql="Select * From imagenes";

//Conectamos a la BD
$connectid=mysql_conexion("localhost","postal");

//Ejecutamos sentencia SQL y recogemos resultado en damefila
si te das cuenta en el index hay una celeccion de unas variables que las nombre tipo...... segui tus consejos igual sigue sin mostrarme la seleccion elejida y me manda estos errores
__________________________________________________ ___________
Notice: Undefined variable: tipo in C:\Inetpub\wwwroot\envio postales\verpostales.php on line 18

Notice: Undefined variable: tipo in C:\Inetpub\wwwroot\envio postales\verpostales.php on line 20


que es lo que me falta poner y en donde lo pongo .........porfavor ya no se mas hacer
----------------------------------
si yo pongo if ($tipo=="algunas de las selecciones de index"){

si me muestra la seleccion pero como le ago para que me muestre la variable elegida en index....

gracias amigo por tu ayuda te agradeceria me volvieras a echar una manito mas para que pueda funcionar este manda postal
gracias ....jorge tobar

Última edición por jorge tobar; 03/09/2004 a las 17:15
  #7 (permalink)  
Antiguo 06/09/2004, 07:19
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 15 años, 11 meses
Puntos: 1
Creo que lo sigues haciendo mal.

if ($_GET['tipo']!="todas") {
$ssql="Select * From imagenes Where tipo like '".$_GET['tipo']."%'";
}else{
$ssql="Select * From imagenes";
}

Prueba asi, y claro ubica la conecc a la Db donde deba ir, eso si no se donde lo tienes. Debería estar fuera de los IF

Suerte
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #8 (permalink)  
Antiguo 06/09/2004, 13:03
 
Fecha de Ingreso: septiembre-2004
Mensajes: 4
Antigüedad: 13 años, 3 meses
Puntos: 0
gracias amigos por sus respuestas

Jose amigo wowwwww. que te puedo decir ya eres un dios para mi me salvastes de quedar mal con mis visitas de mi web espero que ya que lo suba no tenga problemas aca en local esta trabajando bien ahora me falta subir y te repito muchisimas gracias por todo todas las personas que colaboran en estos post o foros mas conosidos para los menos entendidos me solucionaron un problema de 2 semanas dandole duro muchas gracias cualquier duda que tenga o problema tenlo por seguro que estare molestando otra vez y ojala que igual les sirba a muchos algo de esto que eh aprendido y repito muchisimas gracias y te mereces muchos mas
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 11:29.