Foros del Web » Programando para Internet » PHP »

Problema con implode

Estas en el tema de Problema con implode en el foro de PHP en Foros del Web. Cree un impledo ($resp1) me funciona muy bien, pero ahora necesito crear otro ($resp2), y me da error. Puedes ver en que me estoy equivocando? ...
  #1 (permalink)  
Antiguo 24/03/2008, 08:24
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 17 años, 7 meses
Puntos: 3
Problema con implode

Cree un impledo ($resp1) me funciona muy bien, pero ahora necesito crear otro ($resp2), y me da error. Puedes ver en que me estoy equivocando?

Muchas gracias a todos.

Esto es el codigo.
Código PHP:
print_r($exa_respuesta);
print_r($ex_correcta);

$resp1 implode(',',$exa_respuesta);
$resp2 implode(',',$ex_correcta);//Aca me da el error. me sale esto Warning: implode(): Bad arguments. in c:\appserv\www\am_modules\opera\inspector\exameco2.php on line 91

$sql "INSERT INTO am_examen (exa_id,exa_pregunta,exa_respuesta,exa_puntaje,exa_id_operador,exa_id_pregunta,exa_id_respuesta,exa_total,exa_estado,exa_tipo,exa_fecha,exa_hora,exa_certificador) ";     
$sql.= "VALUES ('','','$resp1','','$ar_nomop','$resp2','','','','$f_equcer','$fecha','$hora','$f_certificador')"
$ret db_query($sql) or die(db_error()); 
Aca se visualiza
Código PHP:
while($row=mysql_fetch_row($result))

  echo 
"<tr>

    <td><hr></hr><td></td></td><tr><td><strong>($row[0]) $row[2]</strong></td><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr></tr><tr><td>A)        $row[3]</td></tr><tr><td>B)        $row[4]</td></tr><tr><td>C)        $row[5]</td></tr><tr><td>D)   $row[6]          </td><td><select name=\"exa_respuesta["
.$i."]\"> 
    <option value=\".\">.</option> 
    <option value=\"A\">A</option> 
    <option value=\"B\">B</option> 
    <option value=\"C\">C</option> 
    <option value=\"D\">D</option> 
  </select></td><td></td></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr> 
  </tr> 
    </tr>"

   
   
//echo "$exa_respuesta";
   //echo "$row[7]";
//   echo "     <td><input type=\"hidden\" name=\"indice\" value=   $row[0]  > </td>";
//$i = $i+1;
//}
$ex_correcta[$j]=$row[7];
$i $i+1;
$j $j+1;

  #2 (permalink)  
Antiguo 24/03/2008, 08:28
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: Problema con implode

y contiene comas ',' la variable $ex_correcta???

Un saludo
  #3 (permalink)  
Antiguo 24/03/2008, 08:42
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 17 años, 7 meses
Puntos: 3
Re: Problema con implode

no, no contiene comas.
  #4 (permalink)  
Antiguo 24/03/2008, 08:47
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: Problema con implode

Entonces que tipo de datos lleva $exa_correcta??


cuando haces implode lo que haces es separar un array por el separador que indiques

Cita:

$array = array('apellido', 'email', 'telefono');
$separado_por_comas = implode(",", $array);

echo $separado_por_comas; // apellido,email,telefono

  #5 (permalink)  
Antiguo 24/03/2008, 08:53
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Re: Problema con implode

Este error ocurre cuando el array con el que estas tratando de hacer el implode no soporta valores, lo que debes hacer es verificar primero que no este vacio el array antes de trabajar con implode.

Prueba así:

Código PHP:
$resp2 = (!empty($_POST['ex_correcta'])? implode(',',$_POST['ex_correcta'])."\n" ''); 


Saludos.
  #6 (permalink)  
Antiguo 24/03/2008, 09:10
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 17 años, 7 meses
Puntos: 3
Re: Problema con implode

Tiene estos valores

A,B,C,D

nada mas, son alternativas
  #7 (permalink)  
Antiguo 24/03/2008, 09:16
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: Problema con implode

pero cuando haces un echo $ex_correcta; antes del implode como te imprime los datos??

asi:
A,B,C,D

o asi

ABCD
  #8 (permalink)  
Antiguo 24/03/2008, 09:53
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Problema con implode

Si $ex_correcta es un string que contiene "A,B,C,D", entonces no podrás aplicar sobre él la función implode(), pues esta sólo trabaja con arrays. Qué es lo que deseas hacer? Cuáles son los valores de $ex_correcta y $exa_respuesta? Qué te devuelve el print_r()?

Un saludo,
  #9 (permalink)  
Antiguo 24/03/2008, 11:18
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 17 años, 7 meses
Puntos: 3
Re: Problema con implode

es un examen, exa_respuesta es lo que responde el alumno, y ex_correcta es la alternativa correcta.
  #10 (permalink)  
Antiguo 24/03/2008, 11:41
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Problema con implode

Como dice Okram, ¿Que es lo que te imprime print_r( $ex_correcta );?

Saludos.
  #11 (permalink)  
Antiguo 24/03/2008, 11:46
Avatar de ferbux  
Fecha de Ingreso: mayo-2007
Ubicación: por ahí intentado ayudar
Mensajes: 823
Antigüedad: 17 años
Puntos: 6
Re: Problema con implode

Como te dice jaronu si haces un echo antes del error como te imprime los valores de $ex_correcta

asi:
A,B,C,D

o asi

ABCD
__________________
"Eres grande por que caminas entre gigantes"
  #12 (permalink)  
Antiguo 24/03/2008, 11:46
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 17 años, 7 meses
Puntos: 3
Re: Problema con implode

esto me la alternativa correcta pero sin ,

ej: ACBDA
  #13 (permalink)  
Antiguo 24/03/2008, 11:59
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: Problema con implode

pues si $ex_correcta contiene ya los valores de las respuestas correcta no le hagas el implode

prueba a hacer lo contrario

$resp2 = explode('',$ex_correcta);//y despues el implode

$resp2 = implode(',',$ex_correcta);//

Última edición por jaronu; 24/03/2008 a las 13:01
  #14 (permalink)  
Antiguo 24/03/2008, 12:01
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Problema con implode

¿El print_r lo haces antes del implode?

Saludos.
  #15 (permalink)  
Antiguo 24/03/2008, 12:53
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 17 años, 7 meses
Puntos: 3
Re: Problema con implode

Emm, tengo una pagina de puro codigo y otra del diseño, la pagina del codigo llama la de diseño, es decir lo llamo "despues".
  #16 (permalink)  
Antiguo 24/03/2008, 12:57
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Problema con implode

Lo que pasa es que si $ex_correcta ya es un string, no puedes llamarlo con implode, ya que implode solo trabaja con arreglos.

Saludos.
  #17 (permalink)  
Antiguo 24/03/2008, 13:02
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: Problema con implode

Cita:
Iniciado por jaronu Ver Mensaje
pues si $ex_correcta contiene ya los valores de las respuestas correcta no le hagas el implode

prueba a hacer lo contrario

$resp2 = explode('',$ex_correcta);//y despues el implode

$resp2 = implode(',',$ex_correcta);//
Has provado ha hacerlos asi??

creo que asi rompes el string ABCD en trozos, en un array
y despues con el implode unes el array con comas, que creo es lo que buscas.

Prueba, es solo una idea, pero lo intentaste??

Un saludo
  #18 (permalink)  
Antiguo 24/03/2008, 13:02
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 17 años, 7 meses
Puntos: 3
Re: Problema con implode

que me recomiendas gatorv?

gracias por su tiempo
  #19 (permalink)  
Antiguo 24/03/2008, 13:55
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Problema con implode

Puedes insertar directo $ex_correcta en la base de datos, ya que es un string, no necesitas usar implode.

Saludos.
  #20 (permalink)  
Antiguo 24/03/2008, 15:32
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Problema con implode

Si seguimos así no llegaremos a ningún lado.

Si lo que te dice GatorV no es lo que buscas, dinos... cómo y dónde declaras la variable $ex_correcta? Proviene de un formulario? La extraes de una BD?

Y, qué es lo que deseas hacer con el contenido de esta variable? (Sea array o sea string)

Un saludo,
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 18:02.