Autor Tema: ¿Como separar palabras en la mysql?  (Leído 4654 veces)

Desconectado Jumarras

  • PHPer@
  • **
  • Mensajes: 73
  • Karma: 3
  • Sexo: Masculino
  • Ten cerca a tus amigos, pero mas a tus enemigos
    • Ver Perfil
¿Como separar palabras en la mysql?
« en: 09 de Enero de 2010, 13:13:44 pm »
Hola, he estado pensando en crear un sistema de amigos, pero tengo un problema, es que no se como separas palabras en la mysql por comas, en una misma celda.

Es decir, quiero que los nombres de usuarios se guarden en una columna llamada "amigos", y separas cada nombre de usuario por comas, pero no se como hacerlo. ¿Alguna sugerencia?

He estado viendo por hay unos sistemas, pero no usan lo que quiero yo hacer, o no los puedo descargar para poder leerlos.

Gracias. salu2

Comunidad PHPeros

¿Como separar palabras en la mysql?
« en: 09 de Enero de 2010, 13:13:44 pm »

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:¿Como separar palabras en la mysql?
« Respuesta #1 en: 09 de Enero de 2010, 14:36:30 pm »
Para agregar una amigo haces una consulta y sacas los amigos actuales, luego le agregas al que acava de agregar y lo updateas.

Para mostrarles los amigos utiliza un explode y listo.
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado Siquillote

  • PHPero Master
  • ******
  • Mensajes: 4.229
  • Karma: 179
  • Sexo: Masculino
    • Ver Perfil
Re:¿Como separar palabras en la mysql?
« Respuesta #2 en: 09 de Enero de 2010, 15:24:13 pm »
Es muy facíl has de usar la función explode() como dijo Focux. por lo que veo quieres separar datos por comas en un dato de la BD entonces aquí te dejo una idea :) :


<?
$a mysql_query("SELECT * FROM tutabla");
$b mysql_fetch_array($a);
// Ahora vamos a ejecutar explode()
$hacer $b[&#39;campodetuBD&#39;];
$explode explode(&#39;,&#39;,$hacer);
echo $explode;
?>


Si quieres te lo puedo explicar :)

#Fdo. Physlet

Desconectado Jumarras

  • PHPer@
  • **
  • Mensajes: 73
  • Karma: 3
  • Sexo: Masculino
  • Ten cerca a tus amigos, pero mas a tus enemigos
    • Ver Perfil
Re:¿Como separar palabras en la mysql?
« Respuesta #3 en: 09 de Enero de 2010, 15:42:06 pm »
gracias siquillote, por ese ejemplo, creo k y ase como usarlo, asique no creo k necesites explicarmelo xD, es sencillo, gracias!!!


salu2

Desconectado Siquillote

  • PHPero Master
  • ******
  • Mensajes: 4.229
  • Karma: 179
  • Sexo: Masculino
    • Ver Perfil
Re:¿Como separar palabras en la mysql?
« Respuesta #4 en: 09 de Enero de 2010, 15:48:41 pm »
De nada , para eso estamos aquí. Si tu duda ha sido resuelta cierra el tema porfavor :)

#Fdo. Physlet

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:¿Como separar palabras en la mysql?
« Respuesta #5 en: 09 de Enero de 2010, 17:45:49 pm »
Si quieres ahorrarte acer miles de explodes cuando vayas a acer un buscador o algo asi, puedes usar
mysql_query("SELECT * FROM `usuarios` WHERE campo LIKE '%".$NOMBREAMIGO."%'");
esto selecciona los usuarios k tenga a $NOMBREAMIGO en el campo "campo"

Desconectado TheGeorge

  • PHPero Avanzado
  • ****
  • Mensajes: 351
  • Karma: 13
  • Sexo: Masculino
    • Ver Perfil
    • websources
Re:¿Como separar palabras en la mysql?
« Respuesta #6 en: 09 de Enero de 2010, 20:42:16 pm »
Es muy facíl has de usar la función explode() como dijo Focux. por lo que veo quieres separar datos por comas en un dato de la BD entonces aquí te dejo una idea :) :


<?
$a mysql_query("SELECT * FROM tutabla");
$b mysql_fetch_array($a);
// Ahora vamos a ejecutar explode()
$hacer $b[&#39;campodetuBD&#39;];
$explode explode(&#39;,&#39;,$hacer);
echo $explode;
?>


Si quieres te lo puedo explicar :)

no le puedes aplicar la funcion "Echo" a la variable $explode ya que dicha variable es un array. lo que te exportará sera: Array

Para ver cada dato, debes usar un for, while, foreach.
Saludos
¡Solo sé, que nada sé...!

Desconectado Jumarras

  • PHPer@
  • **
  • Mensajes: 73
  • Karma: 3
  • Sexo: Masculino
  • Ten cerca a tus amigos, pero mas a tus enemigos
    • Ver Perfil
Re:¿Como separar palabras en la mysql?
« Respuesta #7 en: 10 de Enero de 2010, 17:21:37 pm »
me he pasado un buen rato buscando los for while y foreach, como usarlo, pero nada, solo he conseguido que me aparezcan todos los nombres, pero poniendo $explode[0] $explode[1], pero no es plan, porque si por ejemplo alguien tiene mas de 100 amigos y solo he puesto hasta $explode[20], no se veras todos los demas, alguna ayudita? algun manual, tutoria,l codigo de ejemplo... lo que sea  :-[.

salu2

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:¿Como separar palabras en la mysql?
« Respuesta #8 en: 10 de Enero de 2010, 17:27:30 pm »
for($i=0;$i<count($explode);$i++) {
echo $explode[$i];
}
for es un bucle en cual se define una variable con un valor, en este caso $i=0
Despues se establece una condicion, si se cumple se ejecuta el 3er parametro ($i++, se le suma 1 a $i)
La condicion en este caso es k si $i es menor k el numero de elementos de $explode (es.php.net/count), entonces se suma 1 a $i
asi, echo $explode[$i] mostraria cada elemento...

Desconectado TheGeorge

  • PHPero Avanzado
  • ****
  • Mensajes: 351
  • Karma: 13
  • Sexo: Masculino
    • Ver Perfil
    • websources
Re:¿Como separar palabras en la mysql?
« Respuesta #9 en: 10 de Enero de 2010, 17:29:40 pm »
Aqui te dejo un ejemplo:

$array
=array("elemento 1""elemento 2""elemento 3");
$cont count($array)-1// Cuentas cuantas posiciones tiene el array (3)
For ($i=0$i<=$cont$i++){
Echo 
$array[$i]."<br>";
}

Te mostrará:
elemento 1
elemento 2
elemento 3


Para el while, es algo menos facil pero muy simple...

$array
=array("elemento 1""elemento 2""elemento 3");
$cont count($array)-1// Cuentas cuantas posiciones tiene el array (3)
$i=0;
while(
$i<=$cont){
Echo 
$array[$i]."<br>";
$i++;
}

Te mostrará:
elemento 1
elemento 2
elemento 3
« Última modificación: 10 de Enero de 2010, 17:50:13 pm por TheGeorge »
¡Solo sé, que nada sé...!

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:¿Como separar palabras en la mysql?
« Respuesta #10 en: 10 de Enero de 2010, 17:46:00 pm »
Aqui te dejo un ejemplo:

$array
=array("elemento 1""elemento 2""elemento 3");
$cont count($array)-1// Cuentas cuantas posiciones tiene el array (3)
For ($i=1$i<=$cont$i++){
Echo 
$array[$i]."<br>";
}

Te mostrará:
elemento 1
elemento 2
elemento 3


Para el while, es algo menos facil pero muy simple...

$array
=array("elemento 1""elemento 2""elemento 3");
$cont count($array)-1// Cuentas cuantas posiciones tiene el array (3)
$i=1;
while(
$i<=$cont){
Echo 
$array[$i]."<br>";
$i++;
}

Te mostrará:
elemento 1
elemento 2
elemento 3
Ejecuta eso y veras como no va ... $i debe ser 0

Desconectado TheGeorge

  • PHPero Avanzado
  • ****
  • Mensajes: 351
  • Karma: 13
  • Sexo: Masculino
    • Ver Perfil
    • websources
Re:¿Como separar palabras en la mysql?
« Respuesta #11 en: 10 de Enero de 2010, 17:51:33 pm »
Cita de: westwest
Ejecuta eso y veras como no va ... $i debe ser 0
Listo ya lo arreglé, gracias...  :P

aunque hay maneras en que se deba usar iniciador 1, ya que el separador del explode está al principio de la cadena.
Hay que estar pendiente de eso.
¡Solo sé, que nada sé...!

Desconectado Jumarras

  • PHPer@
  • **
  • Mensajes: 73
  • Karma: 3
  • Sexo: Masculino
  • Ten cerca a tus amigos, pero mas a tus enemigos
    • Ver Perfil
Re:¿Como separar palabras en la mysql?
« Respuesta #12 en: 10 de Enero de 2010, 20:04:39 pm »
muchas gracias, por los ejemplos, me he pasao mas de 30 mins intentando hacer ese codigo, y total, todo por un }, por no cerrar el ***** while... equisdé  :-[

salu2