Foros del Web » Programando para Internet » PHP »

implode

Estas en el tema de implode en el foro de PHP en Foros del Web. Hola. ¿Alguien sabría decirme por qué no me funciona el implode, por favor? @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original $where = array ( ) ; ...
  #1 (permalink)  
Antiguo 30/05/2011, 11:27
 
Fecha de Ingreso: junio-2008
Mensajes: 291
Antigüedad: 16 años, 6 meses
Puntos: 9
implode

Hola. ¿Alguien sabría decirme por qué no me funciona el implode, por favor?

Código PHP:
Ver original
  1. $where = array();
  2. foreach ($_GET as $key => $value){
  3. if ($_GET[$value]) {
  4. $_GET['value'] = str_replace("'","",$_GET['value']);
  5. $where[]="'".$_GET['key']."=".$_GET['value']."'";
  6.  
  7. }
  8. }
  9. $sql = "SELECT * FROM libros WHERE ".implode(" AND ",$where).";";
  #2 (permalink)  
Antiguo 30/05/2011, 11:33
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 2 meses
Puntos: 334
Respuesta: implode

porque dices que no funciona ?
que imprime el $sql ?


if ($_GET[$value]) { ???.. no deberia ser $_GET[$key]

aunque en realidad no debería ser ninguna ya que al pasar por foreach das por hecho de que la variable existe :3
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 30/05/2011, 11:35
 
Fecha de Ingreso: junio-2008
Mensajes: 291
Antigüedad: 16 años, 6 meses
Puntos: 9
Respuesta: implode

Hola y gracias por responder. Me imprime esto:

Array

SELECT * FROM libros WHERE ;
  #4 (permalink)  
Antiguo 30/05/2011, 11:36
 
Fecha de Ingreso: junio-2008
Mensajes: 291
Antigüedad: 16 años, 6 meses
Puntos: 9
Respuesta: implode

este es lo code completo:

Código PHP:
Ver original
  1. <?php
  2. $user="root";
  3. $host="localhost";
  4. $password="";
  5. $database = "libros";
  6. $connection = mysql_connect($host,$user,$password)
  7. or die ("couldn't connect to server");
  8. $db = mysql_select_db($database,$connection)
  9. or die ("Couldn't select database");
  10.  
  11.  
  12.  
  13. $where = array();
  14. foreach ($_GET as $key => $value){
  15. if ($_GET ['key']) {
  16. $_GET['value'] = str_replace("'","",$_GET['value']);
  17. $where[]="'".$_GET['key']."=".$_GET['value']."'";
  18.  
  19. }
  20. }
  21. $sql = "SELECT * FROM libros WHERE ".implode(" AND ",$where).";";
  22. echo $where;
  23.  
  24. echo '<pre>' . $sql . '</pre>';
  25. ?>
  #5 (permalink)  
Antiguo 30/05/2011, 11:43
 
Fecha de Ingreso: julio-2009
Mensajes: 72
Antigüedad: 15 años, 4 meses
Puntos: 16
Respuesta: implode

prueba asi

Código PHP:
<?php 
$user
="root";
$host="localhost";
$password="";
$database "libros";
$connection mysql_connect($host,$user,$password)
or die (
"couldn't connect to server");
$db mysql_select_db($database,$connection)
or die (
"Couldn't select database");
 
 
 
$where = array();
foreach (
$_GET as $key => $value){
if (
$_GET [$key]) {
$valuestr_replace("'","",$value);
$where[]="'".$key."=".$value."'";
 
}
}
$sql "SELECT * FROM libros WHERE ".implode(" AND ",$where).";";
echo 
$where;
 
echo 
'<pre>' $sql '</pre>';
?>
__________________
Desarrollo de proyectos web
Cursos en Argentina - Cursos en México
  #6 (permalink)  
Antiguo 30/05/2011, 11:46
 
Fecha de Ingreso: junio-2008
Mensajes: 291
Antigüedad: 16 años, 6 meses
Puntos: 9
Respuesta: implode

Hola de nuevo y gracias, pero me tira esto:

Array
SELECT * FROM libros WHERE '=';
  #7 (permalink)  
Antiguo 30/05/2011, 11:50
 
Fecha de Ingreso: julio-2009
Mensajes: 72
Antigüedad: 15 años, 4 meses
Puntos: 16
Respuesta: implode

ahora...
Código PHP:
<?php 
$user
="root";
$host="localhost";
$password="";
$database "libros";
$connection mysql_connect($host,$user,$password)
or die (
"couldn't connect to server");
$db mysql_select_db($database,$connection)
or die (
"Couldn't select database");
 
 
 
$where = array();
foreach (
$_GET as $key => $value){
if (
$_GET [$key]) {
$valuestr_replace("'","",$value);
$where[]= $key."='".$value."'";
 
}
}
$sql "SELECT * FROM libros WHERE ".implode(" AND ",$where).";";
echo 
$where;
 
echo 
'<pre>' $sql '</pre>';
?>
__________________
Desarrollo de proyectos web
Cursos en Argentina - Cursos en México
  #8 (permalink)  
Antiguo 30/05/2011, 11:57
 
Fecha de Ingreso: junio-2008
Mensajes: 291
Antigüedad: 16 años, 6 meses
Puntos: 9
De acuerdo Respuesta: implode

Ostras!! la coma!! gracias! es mejor varios pares de ojos que uno solo, upfff..

Una cuestión: haciendo esto, puedo incluir para comprobar si cada value está formado por dos palabras lo que siempre utilizo sin que me repercuta?

Código PHP:
Ver original
  1. $palabras=explode(" ",$value);
  2.   foreach ($palabras as $palabra){
  3.     if (! ($sql == "")) {sql .= " AND "; } //tendras que poner esto aquí
  4.    $sql .= " $_GET['key'] LIKE '%$palabra%'";

Etiquetas: implode
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 03:25.