Foros del Web » Programando para Internet » PHP »

Problemas para concatenar

Estas en el tema de Problemas para concatenar en el foro de PHP en Foros del Web. Hola a todos. Tengo el siguiente problema, no logro concatenar bien unas variables. Les dejo el código a ver si me pueden dar una mano: ...
  #1 (permalink)  
Antiguo 05/05/2007, 08:06
3dg
 
Fecha de Ingreso: agosto-2004
Mensajes: 38
Antigüedad: 19 años, 7 meses
Puntos: 0
Problemas para concatenar

Hola a todos.

Tengo el siguiente problema, no logro concatenar bien unas variables.

Les dejo el código a ver si me pueden dar una mano:

Código:
<a href="modificar_producto.php?linea='.$i.'&cant='.$_GET['cantidad"' .$i. '"'].'" onClick="Modificar('.$i.')">update</a>
Bueno espero que me puedan ayudar.

Saludos.
  #2 (permalink)  
Antiguo 05/05/2007, 08:23
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Problemas para concatenar

Hola:

A simple vista no pones bien las comillas... antes del punto de concatenación debes tener una cadena encerrada entre comillas iguales (tu empiezas con dobles y sigues con sencillas...)

<a href="modificar_producto.php?linea=$i&cant=".$_GET['cantidad$i']" onClick="Modificar('$i')">update</a>

No sé si he enacadenado bien...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 05/05/2007, 09:23
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
Re: Problemas para concatenar

Mira, cuando pones una variable entre comillas simples te puede causar problemas ya que PHP lo puede interpretar como texto puro, ej.
Código PHP:
$var "un texto o lo que quiera";
echo 
"Imprimimos $var</br>"// En pantalla saldrá: Imprimimos un texto o lo que quiera
echo "Imprimimos ".$var."</br>"// En pantalla saldrá: Imprimimos un texto o lo que quiera
echo 'Imprimimos $var</br>'// En pantalla saldrá: Imprimimos $var 
Así que tú enlace lo estas colocando de forma incorrecta, la manera de hacerlo de cualquiera de estas formas:
Código PHP:
echo "<a href=\"modificar_producto.php?&linea=".$i."&cant=".$_GET['cantidad'.$i]."\"  onClick=\"Modificar('".$i."')\">update</a>"
O si estas fuera de PHP:
Código PHP:
<a href="modificar_producto.php?&linea=<?=$i?>&cant=<?=$_GET['cantidad'.$i]?>"  onClick="Modificar('<?=$i?>')">update</a>
O:
Código PHP:
<a href="modificar_producto.php?&linea=<?php echo $i?>&cant=<?php echo $_GET['cantidad'.$i]; ?>"  onClick="Modificar('<?php echo $i?>')">update</a>
Espero haberme dado a entender y que esto te sirva por lo menos para darte una idea. Suerte

Última edición por Erikfrancisco; 05/05/2007 a las 09:33
  #4 (permalink)  
Antiguo 05/05/2007, 09:35
 
Fecha de Ingreso: agosto-2005
Ubicación: Valencia
Mensajes: 76
Antigüedad: 18 años, 8 meses
Puntos: 1
Re: Problemas para concatenar

Cita:
Iniciado por Erikfrancisco Ver Mensaje
Mira, cuando pones una variable entre comillas simples te puede causar problemas ya que PHP lo puede interpretar como texto puro, ej.
Código PHP:
$var "un texto o lo que quiera";
echo 
"Imprimimos $var</br>"// En pantalla saldrá: Imprimimos un texto o lo que quiera
echo "Imprimimos ".$var."</br>"// En pantalla saldrá: Imprimimos un texto o lo que quiera
echo 'Imprimimos $var</br>'// En pantalla saldrá: Imprimimos $var 
Así que tú enlace lo estas colocando de forma incorrecta, la manera de hacerlo de cualquiera de estas formas:
Código PHP:
echo "<a href=\"modificar_producto.php?&linea=".$i."&cant=".$_GET['cantidad'.$i]."\"  onClick=\"Modificar('".$i."')\">update</a>"
O si estas fuera de PHP:
Código PHP:
<a href="modificar_producto.php?&linea=<?=$i?>&cant=<?=$_GET['cantidad'.$i]?>"  onClick="Modificar('<?=$i?>')">update</a>
O:
Código PHP:
<a href="modificar_producto.php?&linea=<?php echo $i?>&cant=<?php echo $_GET['cantidad'.$i]; ?>"  onClick="Modificar('<?php echo $i?>')">update</a>
Espero haberme dado a entender y que esto te sirva por lo menos para darte una idea. Suerte
Ojo que si usas PHP5 las tags sencillas no te sirven y producirán error deberías usar las etiquetas <?php echo $variable; ?> en lugar de <?= $variable; ?>
__________________
Quien a buen árbol se arrima, buena sombra le cobija. :aplauso:

http://dbtrucos.com
  #5 (permalink)  
Antiguo 05/05/2007, 09:44
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
Re: Problemas para concatenar

Cita:
Iniciado por el-eles Ver Mensaje
Ojo que si usas PHP5 las tags sencillas no te sirven y producirán error deberías usar las etiquetas <?php echo $variable; ?> en lugar de <?= $variable; ?>
De eso tienes razón, ¿pero sinceramente cuantos servidores usan PHP 5?, además de que para eso le puse los otros ejemplos para que escoja el que más le convenga, yo en lo personal uso las etiquetas <?php echo $variable; ?> pero eso no significa que todos deban de usarla, nosotros sólo damos el menú y los que tienen la desición de usar la que se les antoje finalmente somos los que hacemos el código.
Bueno de cualquier modo se debe de tomar en cuenta lo que acaba de mencionar el-eles, gracias por hacer la aclaracion
  #6 (permalink)  
Antiguo 07/05/2007, 23:21
3dg
 
Fecha de Ingreso: agosto-2004
Mensajes: 38
Antigüedad: 19 años, 7 meses
Puntos: 0
Re: Problemas para concatenar

Muchachos, sigo con el mismo problema.

Les explico más lo que estoy haciendo a ver si se entiende mejor.

Estoy haciendo un carrito de compras y en esto que tengo problemas es en el actualizar la cantidad de cada productos del carrito. Es por eso que si se fijan van a ver que por cada fila hago un form con un determinado valor, lo mismo para cada caja de texto de la cantidad.

Les pongo el código:
Código:
		while($row = mysql_fetch_object($result)){
			$query = "SELECT * FROM productos WHERE id='$row->id' ";
			$result_inv = mysql_query($query);
			$row_inventory = mysql_fetch_object($result_inv);
			$contents["codigo"][$count] = $row_inventory->codigo;
			$contents["titulo"][$count] = $row_inventory->titulo;
			$contents["precio"][$count] = $row_inventory->precio;
			$contents["cantidad"][$count] = $row->cantidad;
			$contents["total"][$count] = ($row_inventory->precio * $row->cantidad);
			
			echo '<tr valign="middle" class="tr_pos">' ;
			echo '<form name="frm'.$count.'" method="get" action="">' ;
				echo '<td align="left">'.$row_inventory->codigo.'</td>' ;
				echo '<td align="left">'.$row_inventory->titulo.'</td>' ;
				echo '<td align="right">'.$row_inventory->precio.'</td>' ;
				echo '<td align="right">'.$row->cantidad.'</td>' ;
				echo '<td align="right"><input type="text" name="cantidad'.$count. '" id="cantidad'.$count.'" size="3" class="tr_pos" value="'.$row->cantidad.'"></td>' ;

				/*Esta es la línea del problema*/		
	  			echo "<td><a href=\"modificar_producto.php?&id=".$row->id."&cantidad=".$_GET['cantidad'.$count]."\">Actualizar</a>"; 
				
				echo '<td align="right">'.$row_inventory->precio.'</td>' ;
				echo '<td align="right">'.$contents["total"][$count].'</td>' ;
				echo '<td><a href="eliminar_producto.php?id='.$row->id.'"><img src="../img/eliminar.png" width="15" height="15" border="0"></a></td>';
 			  echo "</form>" ;
			  echo '</tr>' ;			
			
			$count++;
		}
Cuando lo pruebo, cuando me para arriba de algunos de los botones de Actualizar, esto es lo que sale:
Código:
ht.....//modificar_producto.php?id=1&cantidad=
Y cuando voy al codigo fuente esto es lo que veo:
Código:
<tr valign="middle" class="tr_pos">
<form name="frm1" method="get" action="">
  <td align="left">8856</td>
  <td align="left">Torerita Hilo</td>
  <td align="right">12</td>
  <td align="right">1</td>
  <td align="right"><input type="text" name="cantidad9" id="cantidad9" size="3" class="tr_pos" value="1"></td>
  <td><a href="modificar_producto.php?&id=13&cantidad=">Actualizar</a><td align="right">12</td>
  <td align="right">12</td>
  <td><a href="eliminar_producto.php?id=13"><img src="../img/eliminar.png" width="15" height="15" border="0"></a></td>
</form>
</tr>
Bueno espero que entiendan.

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 00:49.