Foros del Web » Programando para Internet » PHP »

Se me resiste eliminar las comillas dobles

Estas en el tema de Se me resiste eliminar las comillas dobles en el foro de PHP en Foros del Web. Hola, he estado buscando por el foro como eliminar las comillas y en principio parece facil pero no se donde falla, utilizo str_replace, los datos ...
  #1 (permalink)  
Antiguo 23/03/2013, 04:28
 
Fecha de Ingreso: marzo-2013
Mensajes: 17
Antigüedad: 11 años, 8 meses
Puntos: 1
Se me resiste eliminar las comillas dobles

Hola, he estado buscando por el foro como eliminar las comillas y en principio parece facil pero no se donde falla, utilizo str_replace, los datos que obtengo se me guardan de la siguiente forma:

""dato1,"dato2","dato3","dato4","dato5","dato6","d ato7""

Y quiero eliminar totalmente todas las dichosas comillas, para ello se puede ver en el codigo he utilizado str_replace, pero entonces ya no me gurda nada en la base de datos

Código:
<?php
     


     $tag = isset($_POST['tag']) ? $_POST['tag'] : null;
       
        $value = isset($_POST['value']) ? $_POST['value'] : null;
       
        
         $val=explode(",",$value);     

         $vals=str_replace('"','',$val);
       

    $host = 'localhost';
        $user = 'Dani';
        $pass = 'xxxxxx';
        $dbname = 'efi_cc3';
         
        $link=mysql_connect($host,$user,$pass) or die("No se pudo establecer la conexión<br>".mysql_error());
        mysql_select_db($dbname) or die("no se puede acceder a la base de datos:<br>".mysql_error());  

     
     
    $query ="SELECT referencia FROM cc3_placas WHERE referencia='$tag'";
        $row = mysql_query($query,$link) or die (mysql_error());
        $ray = mysql_num_rows($row);
         
             
        if ($ray == 0 ){  //Si $ray es cero es que no esta
     
     
mysql_query("INSERT INTO cc3_placas(referencia,modelo,version,operario,estado,fecha,comentario) VALUES('$vals[0]','$vals[1]','$vals[2]','$vals[3]','$vals[4]','$vals[5]','$vals[6]')");


   
     
    }
    ?>
Saludos y gracias a todos por vuestra paciencia
  #2 (permalink)  
Antiguo 23/03/2013, 05:12
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Se me resiste eliminar las comillas dobles

str_replace es una función de cadena y estás tratando de aplicarla a un array; primero elimina las comillas (str_replace) y después separas por comas (explode).
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 23/03/2013, 05:23
 
Fecha de Ingreso: marzo-2013
Mensajes: 17
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Se me resiste eliminar las comillas dobles

Hola , muchas gracias por tu respuesta, he cambiado el orden para que primero eliminara las comillas y luego ya luego utilizar el explode, pero nada sigo igual.

Código:
 <?php
     


     $tag = isset($_POST['tag']) ? $_POST['tag'] : null;
       
        $value = isset($_POST['value']) ? $_POST['value'] : null;
       
        $val=str_replace('"','',$value);     


         $vals=explode(",",$val);     

       
         


    $host = 'localhost';
        $user = 'Dani';
        $pass = '26021980';
        $dbname = 'efi_cc3';
         
        $link=mysql_connect($host,$user,$pass) or die("No se pudo establecer la conexión<br>".mysql_error());
        mysql_select_db($dbname) or die("no se puede acceder a la base de datos:<br>".mysql_error());  

     
     
    $query ="SELECT referencia FROM cc3_placas WHERE referencia='$tag'";
        $row = mysql_query($query,$link) or die (mysql_error());
        $ray = mysql_num_rows($row);
         
             
        if ($ray == 0 ){  //Si $ray es cero es que no esta
     
     
mysql_query("INSERT INTO cc3_placas(referencia,modelo,version,operario,estado,fecha,comentario) VALUES('$vals[0]','$vals[1]','$vals[2]','$vals[3]','$vals[4]','$vals[5]','$vals[6]')");


   
     
    }
    ?>

Saludos
  #4 (permalink)  
Antiguo 23/03/2013, 05:31
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 16 años, 1 mes
Puntos: 175
Respuesta: Se me resiste eliminar las comillas dobles

WRONG.. primero recibe el array, y despues haz lo que tengas que hacer

$_POST['value'] no es que esté mal, solo que tiene varios datos...

Deberías tratar esa variable algo asi como $_POST['value'][$i] si lo vas a imprimir con un for... Tambien por foreach

Te recomiendo print_r($_POST['value']) para ver como te trae el arreglo.

y no se, se me ocurre que puedes crear una mini funcion para eliminar las comillas a medida que van cargandose, algo tipo

function eliminar_comillas($array)
{

return str_replace('"','',$array);
}

$variable_array= eliminar_comillas($variable_array);
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #5 (permalink)  
Antiguo 23/03/2013, 05:43
 
Fecha de Ingreso: marzo-2013
Mensajes: 17
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Se me resiste eliminar las comillas dobles

Hola gracias por la respuesta, pero no acabo de entenderte, ya que en principio recibo bien los datos , lo unico es las dichosas comillas, soy bastante novato en el tema y estoy aprendiendo a marchas forzadas.... Lo de la función si que lo comprendo, me pondre a mirar como hacerla ya que no tengo idea de como utilizarla.

Muchas gracias
  #6 (permalink)  
Antiguo 23/03/2013, 10:03
 
Fecha de Ingreso: marzo-2013
Mensajes: 17
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Se me resiste eliminar las comillas dobles

Bueno he avanzado y elimino todas las comillas excepto las de incio y las de fin de la cadena, y no se porque...

He utilizado : $val=str_replace('\"', '',$value); antes del explode y ahora se me queda de la sigiente forma:

"dato1,dato2,dato3,dato4,dato5,dato6,dato7"

¿Porque el str_replace no me elimina las comillas del inicio y del final????

¿Como puedo eliminarlas?

Nuevamente gracias
  #7 (permalink)  
Antiguo 23/03/2013, 10:11
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años, 7 meses
Puntos: 47
Respuesta: Se me resiste eliminar las comillas dobles

El porque no lo se pero para eliminarla haz otro str_replace y ya...
  #8 (permalink)  
Antiguo 23/03/2013, 10:24
 
Fecha de Ingreso: marzo-2013
Mensajes: 17
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Se me resiste eliminar las comillas dobles

Es lo primero que he pensado pero no me funciona....
hago lo siguiente:

$val=str_replace('\"', '',$value);
$valss=str_replace('\"', '',$val);
$vals=explode(",",$valss);

Estoy de las dichosas comillas....
  #9 (permalink)  
Antiguo 23/03/2013, 10:42
 
Fecha de Ingreso: noviembre-2012
Mensajes: 74
Antigüedad: 12 años
Puntos: 3
Respuesta: Se me resiste eliminar las comillas dobles

Intenta con este
Código:
$val=str_replace(chr(34),'',$value);
  #10 (permalink)  
Antiguo 23/03/2013, 10:53
 
Fecha de Ingreso: marzo-2013
Mensajes: 17
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Se me resiste eliminar las comillas dobles

Hola gracias, pero tampoco me funciona , de esta forma no me llega ningún dato a la tabla.

Malditas comillas!!
  #11 (permalink)  
Antiguo 23/03/2013, 10:55
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años, 7 meses
Puntos: 47
Respuesta: Se me resiste eliminar las comillas dobles

Mira entonces has algo, tu sabes que en la primera posicion y en la ultima van las comillas haz un substr apartir de la posicion 1 hasta la penultima posicion...
  #12 (permalink)  
Antiguo 23/03/2013, 10:57
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años, 7 meses
Puntos: 47
Respuesta: Se me resiste eliminar las comillas dobles

algo asi como
Código PHP:
Ver original
  1. $val=str_replace('\"', '',$value);
  2. $valss = substr($value,1,(strlen($val)-1))
  #13 (permalink)  
Antiguo 23/03/2013, 11:02
 
Fecha de Ingreso: marzo-2013
Mensajes: 17
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Se me resiste eliminar las comillas dobles

Parece que por fin ha funcionado!!!! Gracias

He probado con:

$valss = substr($val, 1, -1);
  #14 (permalink)  
Antiguo 23/03/2013, 11:06
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años, 7 meses
Puntos: 47
Respuesta: Se me resiste eliminar las comillas dobles

ok tambien es válido

Etiquetas: comillas, dobles, mysql, select, sql
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 09:20.