Foros del Web » Programando para Internet » PHP »

Problema (muy) difícil con la función Replace

Estas en el tema de Problema (muy) difícil con la función Replace en el foro de PHP en Foros del Web. Holas. Estoy diseñando un carrito de compra, y almaceno los ID de los productos en una $cookie. Por ejemplo, si mi cliente compra los productos ...
  #1 (permalink)  
Antiguo 27/08/2002, 11:03
Avatar de El Menda  
Fecha de Ingreso: junio-2001
Ubicación: Jaén
Mensajes: 516
Antigüedad: 16 años, 6 meses
Puntos: 0
Problema (muy) difícil con la función Replace

Holas. Estoy diseñando un carrito de compra, y almaceno los ID de los productos
en una $cookie.
Por ejemplo, si mi cliente compra los productos #3, #13 y #24 la $cookie tendrá la
siguiente estructura:
-3-13-24
Hasta aqui todo bien.
Ahora lo que necesito hacer es sacar los números por separado (3 13 24) y buscar
en la base de datos el producto correspondiente a cada numero.

He intentado así:
$cookie = eregi_replace('-', ' ', $cookie);
$sql = "SELECT id, nombre FROM tienda WHERE id=$cookie";
$query = mysql_query($sql);
while ($row = mysql_fetch_array($query)) {
echo "Has comprado: ".$row["nombre"]."<br>";
}

Claro, el problema es que me ha buscado en la base de datos 3 13 24, y no me
ha buscado cada numero por separado, es decir, el producto #3, despues el #13
y despues el #24.

¡Ayuda! ¡¡¡Estoy desesperado!!!

<a href="http://skatextreme.metropoliglobal.com/" target="new">No sabes lo que te pierdes</a>
El Menda no te ayuda
  #2 (permalink)  
Antiguo 27/08/2002, 11:07
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
Re: Problema (muy) difícil con la función Replace

Prueba esto:
Código:
$cookie = eregi_replace('-', ',', $cookie);
$sql = &quot;SELECT id, nombre FROM tienda WHERE id IN ($cookie)&quot;;
;)

<font size=2>Proximamente...
<a href="http://www.traduim.com">Traduim</a>: El portal de los traductores[/CODE]
  #3 (permalink)  
Antiguo 27/08/2002, 11:27
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 16 años, 1 mes
Puntos: 68
Re: Problema (muy) difícil con la función Replace

El Menda, porque meter los datos asi dentro de la cookie ?
Si en una cookie puedes guardar un array común y corriente para que puedas utilizarlo luego.
Mira, te conviene guardar los datos dentro de un array, donde el índice del array es el id del artículo, y el contenido de array es la cantidad de ESE artículo en particular.

setcookie(&quot;carro[23]&quot;, 2);
setcookie(&quot;carro[57]&quot;, 1);
setcookie(&quot;carro[46]&quot;, 1);

De esa manera puedes hacer un trabajo más prolijo a la hora de hacer un query :

$carro = $_COOKIE[&quot;carro&quot;];
$ids = array_keys($carro);
$query = &quot;SELECT * FROM productos WHERE id IN (&quot;.implode(&quot;,&quot;.$ids).&quot;)&quot ;;

Saludos.

<hr><font size=2 face=verdana>- Pablo Vinazzi (<img src=http://www.fantabuloso.com/iB_html/non-cgi/emoticons/bullwhip.gif align=absmiddle>)[/CODE]
<font size=1 color=#333333>Visita <a href=http://www.quilmes.com.ar>Quilmes.tom.ar</a>[/CODE]
  #4 (permalink)  
Antiguo 27/08/2002, 18:12
Avatar de El Menda  
Fecha de Ingreso: junio-2001
Ubicación: Jaén
Mensajes: 516
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Problema (muy) difícil con la función Replace

Hola a todos. Muchas gracias por la contestacion. Webstudio, el ultimo codigo que me has puesto me da el siguiente error:

Warning: Wrong parameter count for implode() in c:\htdocs\public_html\mundi\carro.php on line 28

Warning: Supplied argument is not a valid MySQL result resource in c:\htdocs\public_html\mundi\carro.php on line 30

A ver si me ayudais. Gracias


<a href="http://skatextreme.metropoliglobal.com/" target="new">No sabes lo que te pierdes</a>
El Menda no te ayuda
  #5 (permalink)  
Antiguo 27/08/2002, 18:30
Avatar de El Menda  
Fecha de Ingreso: junio-2001
Ubicación: Jaén
Mensajes: 516
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Problema (muy) difícil con la función Replace

Gracias. Ya esta solucionado:
$sql = &quot;SELECT * FROM tienda WHERE id IN (&quot;.implode (&quot;,&quot;, $ids).&quot;)&quot;;

<a href="http://skatextreme.metropoliglobal.com/" target="new">No sabes lo que te pierdes</a>
El Menda no te ayuda
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 16:20.