Foros del Web » Programando para Internet » PHP »

problemac con switch

Estas en el tema de problemac con switch en el foro de PHP en Foros del Web. no encuentro le error, me podrian ayudar. ?> <tr> <td width="1%" align="center"><?php print $row2["tipo"]; ?></font></td> <td width="2%" align="center"><?switch ($row2["tipo"]) { <?php print $row2["documento"]; ?> case ...
  #1 (permalink)  
Antiguo 23/04/2007, 14:36
 
Fecha de Ingreso: diciembre-2005
Mensajes: 37
Antigüedad: 18 años, 4 meses
Puntos: 0
problemac con switch

no encuentro le error, me podrian ayudar.

?>

<tr>
<td width="1%" align="center"><?php print $row2["tipo"]; ?></font></td>

<td width="2%" align="center"><?switch ($row2["tipo"]) { <?php print $row2["documento"]; ?>
case "1": header ("<a href=menu2.php>");
exit();
break;
case "2": header ("<a href=menu2.php>");
exit();
break;
case "2": header ("<a href=menu2.php>");
exit();
break;
}
<td width="2%" align="center"><?php print $row2["referencia"]; ?></font></td>
<?php
  #2 (permalink)  
Antiguo 23/04/2007, 19:17
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: problemac con switch

Ufff estás cometiendo muchos errores. Demasiados.
1.- header envía una cabecera HTTP, no manda texto. Creo que lo que querés usar es "echo".
2.- Estás usando mal las etiquetas de apertura y cierre de código.
3.- Estás repitiendo una etiqueta en el switch (case 2)

Creo que lo que querés hacer es:
Código PHP:
<tr>
<td width="1%" align="center"><?php print $row2["tipo"]; ?></font></td> 
<td width="2%" align="center"> <?php print $row2["documento"]; ?>
<?php
switch ($row2["tipo"]) {
case 
"1": echo "<a href=menu2.php>"; break;
case 
"2": echo "<a href=menu2.php>"; break;
case 
"2": echo "<a href=menu2.php>"; break;
}
?>
<td width="2%" align="center">
<?php print $row2["referencia"]; ?></font></td>
Si lo que querés es redireccionar, lo que tenés que usar es
header("Location: pagina.php");

Una mirada por el manual, y el habilitar la salida de los errores con error_reporting() nunca está de más.


Saludos
  #3 (permalink)  
Antiguo 24/04/2007, 15:25
 
Fecha de Ingreso: diciembre-2005
Mensajes: 37
Antigüedad: 18 años, 4 meses
Puntos: 0
Re: problemac con switch

Muchas garcia por tu ayuda y ya esttoy checando el manual y disculpa pero soy muy nuevo en esto de php y la verdad si he batallado y mas por que voy contra relog, pero mira te explico que es lo que quiero mas o menos y ya lo habia logrado pero no del todo bien en documuneto pongo un link que me direcciona a otro archivo dependiendo de lo que hay en tipo, si en tipo hay 1 el link que hay en docmento me llavara a un archivo, si es 2 me llavara a otro, hice lo que me dijiste

<tr>
<td width="1%" align="center"><?php print $row2["tipo"]; ?></font></td>
<td width="2%" align="center"> <?php print $row2["documento"]; ?>
<?php
switch ($row2["tipo"]) {
case "1": echo "<a href=menu2.php>"; break;
case "2": echo "<a href=menu2.php>"; break;
case "2": echo "<a href=menu2.php>"; break;
}
?>
<td width="2%" align="center"><?php print $row2["referencia"];?></font></td>
</tr>
<?php
?>
</body>
</html>

pero me da el siguiente error,

Parse error: parse error, unexpected $end in C:\wamp\www\anticipos.php on line 126

pero en esa linea ya no tengo nada, todo el codigo termina en la linea 124
ya habia intentado algo asi pero en lugar de echo usaba print, (bueno uno de tantos errores), espero me puedas ayudar ya que es lo unico que me falta para terminar mi sitio, bueno y checar algo de sesiones.
Gracias
  #4 (permalink)  
Antiguo 24/04/2007, 16:54
 
Fecha de Ingreso: diciembre-2005
Mensajes: 37
Antigüedad: 18 años, 4 meses
Puntos: 0
Re: problemac con switch

Hola Gracias por tu ayuda y ya habia hecho algo parecido,solo que en ves de usar echo usaba print ( uno mas de los errore) pero ya hice lo que me dices pero me sigue mandando un error que no comprendo, mira te explico mas o menos lo que quiero hacer, en documento tengo un link que me llavara a otro archivo.php, dependiendo de lo que haya en tipo cambiara el link que esta en documento, es decir si en tipo es 1 el link de documento me llavara a un archivo, si en tipo es 2 me llavara a otro y asi, puse lo siguiente:

<td width="1%" align="center"><?php print $row2["tipo"]; ?></td>
<td width="2%" align="center"><a href=menu2.php><?php print $row2["documento"]; ?>
<?php
switch ($row2["tipo"]) {
case "1": echo "<a href=menu2.php>"; break;
case "2": echo "<a href=menu2.php>"; break;
case "2": echo "<a href=menu2.php>"; break;
}
?>
<td width="2%" align="center"><?php print $row2["referencia"]; ?</td>
</tr>
<?php
?>
</body>
</html>


pero me manda el siguiente error

Parse error: parse error, unexpected $end in C:\wamp\www\anticipos.php on line 126

pero en la linea 26 ya no hay nada,todo el programa termina en la linea 124
  #5 (permalink)  
Antiguo 24/04/2007, 17:48
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: problemac con switch

Suele suceder cuando te olvidás de cerrar algún bloque {}
Asegurate de estar cerrando todos los bloques con sus correspondientes llaves.


Saludos.
  #6 (permalink)  
Antiguo 24/04/2007, 18:15
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Re: problemac con switch

dos cosas:

1.- usar print en lugar de echo no es un error, es valido.
2.- sigues usando case "2": dos veces.

saludos
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #7 (permalink)  
Antiguo 25/04/2007, 12:41
 
Fecha de Ingreso: diciembre-2005
Mensajes: 37
Antigüedad: 18 años, 4 meses
Puntos: 0
Re: problemac con switch

bueno todo mi codigo es el siguiente y segun yo estoy cerrando todas las llaves

$strqry2 = "SELECT * FROM anticipo_desglose where numero =".$row["numero"];

$qry2 = mysql_query($strqry2);
mysql_data_seek($qry2,0);
while ($row2 = mysql_fetch_assoc($qry2)){
?>
<tr>
<td width="2%" align="center"><?php print $row2["numero"]; ?></td>
<td width="2%" align="center"><?php print $row2["fecha"]; ?></td>
<td width="1%" align="center"><?php print $row2["tipo"]; ?></td>
<td width="2%" align="center"><?php switch ($row2["tipo"]){
<a href=menu2.php><?php print $row2["documento"]; ?>
case "1": echo "<a href=menu2.php>"<?php print $row2["documento"]; ?>; break;
case "2": echo "<a href=menu2.php>"<?php print $row2["documento"]; ?>; break;
case "3": echo "<a href=menu2.php>"<?php print $row2["documento"]; ?>; break;
}
?>
<td width="2%" align="center"><?php print $row2["referencia"];?></td>
</tr>
<?php
}
?>
</body>
</html>

donde esta el error en este codigo
  #8 (permalink)  
Antiguo 25/04/2007, 13:30
 
Fecha de Ingreso: diciembre-2005
Mensajes: 37
Antigüedad: 18 años, 4 meses
Puntos: 0
Re: problemac con switch

haber ya lo corregi pero ahora todos los links me llevan al mismo archivo

<?php
$strqry2 = "SELECT * FROM anticipo_desglose where numero =".$row["numero"];

$qry2 = mysql_query($strqry2);
mysql_data_seek($qry2,0);
while ($row2 = mysql_fetch_assoc($qry2)){

?>

<tr>
<td width="2%" align="center"><?php print $row2["numero"]; ?></td>
<td width="2%" align="center"><?php print $row2["fecha"]; ?></td>
<td width="1%" align="center"><?php print $row2["tipo"]; ?></td>
<td width="2%" align="center"><a href=menu2.php><?php print $row2["documento"];?></td>
<?php
switch ($row2["tipo"]) {
case "0": echo "<a href=menu2.php>"; break;
case "2": echo "<a href=formulario.htm>"; break;
case "3": echo "<a href=menu2.php>"; break;
case "4": echo "<a href=formulario.htm>"; break;
}
?>
<td width="2%" align="center"><?php print $row2["referencia"];?></td>
</tr>
<?php
}
}
?>
</body>
</html>
  #9 (permalink)  
Antiguo 25/04/2007, 14:01
Avatar de @ndreX!  
Fecha de Ingreso: abril-2007
Mensajes: 161
Antigüedad: 17 años
Puntos: 4
Re: problemac con switch

Para que una etiqueta <a> funcione debes de colocar el valor de href entre comillas i.e <a href="algo.html"> ademas debes de cerrar la etiqueta... <a href="algo.html">Texto</a>


Código PHP:
<?php
    
switch ($row2["tipo"]) {
        case 
"0"
            echo 
'<a href="menu2.php">ALGUN TEXTO</a>';
             break;
        case 
"2"
            echo 
'<a href="formulario.htm">ALGUN TEXTO</a>'
            break;
        case 
"3"
            echo 
'<a href="menu2.php">ALGUN TEXTO</a>';
            break;
        case 
"4"
            echo 
'<a href="formulario.htm">ALGUN TEXTO</a>';
            break;
    }
?>
Saludos
  #10 (permalink)  
Antiguo 25/04/2007, 16:46
 
Fecha de Ingreso: diciembre-2005
Mensajes: 37
Antigüedad: 18 años, 4 meses
Puntos: 0
Re: problemac con switch

esto ya lo habia hecho solo que todos los links me llavan al mismo archivo y yo pongo

<td width="1%" align="center"><?php print $row2["tipo"]; ?></td>

<td width="2%" align="center"><a href=menu2.php><?php print $row2["documento"];?></td>

<?php

case "0": echo '<a href="menu2.php"></a>';
break;
case "2": echo '<a href="formulario.htm"></a>';
break;
case "3": echo '<a href="formulario.htm"></a>';
break;
case "4": echo '<a href="formulario.htm"></a>';
break;
}
?>

pero todos me llava a menu2.php y se supone que si en tipo es 0 el link de documento me deve llevar a un archivo y se es 1 a otro.
  #11 (permalink)  
Antiguo 25/04/2007, 17:56
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: problemac con switch

en el último código que pegaste, te falta el switch...

Además tenés un enlace abierto:

<a href=menu2.php><?php print $row2["documento"];?>

Los enlaces deben cerrarse y no pueden anidarse, además de que en el switch estás escribiendo enlaces vacíos...

Me parece que lo que querés hacer es:
Código PHP:
<td width="2%" align="center">
<?php 
switch ($row2["tipo"]) { 
case 
"0":
case 
"3": echo '<a href="menu2.php">'; break;
case 
"2"
case 
"4": echo '<a href="formulario.htm">'; break;

?>
<?php 
print $row2["documento"];?></a></td>
Te simplifiqué el switch, tendrá el mismo efecto.


Saludos.
  #12 (permalink)  
Antiguo 26/04/2007, 11:25
 
Fecha de Ingreso: diciembre-2005
Mensajes: 37
Antigüedad: 18 años, 4 meses
Puntos: 0
Re: problemac con switch

oye en lo anterior queme respondes por que pones <?php print $row2["documento"];?></a></td> al final, yo lo puse asi


<td width="1%" align="center"><?php print $row2["tipo"]; ?></td>
<td width="2%" align="center"><a href="menu2.php"><?php print $row2["documento"]; ?></a></td>
<?php
switch ($row2["tipo"]) {
case "0": echo '<a href="menu2.php">';break;
case "2": echo '<a href="formulario.htm">';break;
case "3": echo '<a href="formulario.htm">';break;
case "4": echo '<a href="formulario.htm">';break;
}
?>
<td width="2%" align="center"><?php print $row2["referencia"];?></td>
</tr>
<?php
}
}
?>

oye y qeu tanto me ayudara un header
  #13 (permalink)  
Antiguo 26/04/2007, 19:33
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: problemac con switch

header no te ayudará en nada, porque el error está no en php sino en el html que estás generando.

Creo que no voy a entender completamente lo que querés hacer hasta que no pegues un "código correcto", tal y como querés que PHP lo escriba.

Saludos.
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:42.