meter datos en una tabla a partir de texto con PHP

Iniciado por santi810, 8 Junio 2014, 00:51 AM

0 Miembros y 1 Visitante están viendo este tema.

santi810

Buenos dias, estoy atascado en mi proyecto de ciclo por lo que agradeceria enormemente ayuda en este tema.

Estoy haciendo un pequeño script relacionado con la web "comunio" algunos la conocereis...

Mi finalidad es meter en una tabla con las siguientes tuplas:
ID (numero identificador, autoincrement)
emisor
receptor
fecha
cantidad
Nombre jugador


a partir de frases como estas (pongo varios ejemplos, las frases las genera la web diariamente)


________________________________________________________
Rodrigo de Paul cambia por 320.004 € de Computer a adry.

05.06.14 05:52 – Computer > Fichajes
Benzema cambia por 3.676.202 € de Computer a adry.

Larrivey cambia por 1.153.600 € de Enrique a Computer.
______________________________________________________
04.06.14 05:53 – Computer > Fichajes
Giovani dos Santos cambia por 1.410.000 € de Computer a Enrique.
_____________________________________________________
03.06.14 05:52 – Computer > Fichajes
Charles cambia por 310.000 € de Computer a adry.
____________________________________________________





Creo que se entiende bien el problema. Cualquier ayuda sera muy agradecida.
Gracias de antemano

ivancea96

Tu problema es convertir las frases a las estructuras esas, ¿no?

Rodrigo de Paul cambia por 320.004 € de Computer a adry.

Lo que tienes que hacer, es ir partiendo la frase, es todo. Busca las palabras que tratas de aislar.

santi810

Eso estuve pensando, pero no se manipular texto con php

engel lex

sin querer sonar antipatico... aquí tienes php.net en español con todas las funciones de strings

http://php.net/manual/es/ref.strings.php

lee las descripciones y si alguna parece que te sirve adentro está bien explicada y con ejemplos
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

daryo

#4
es simple separas la cadena con la funcion explode  que permite dividir una cadena en trozos ,  con este se puede dividir en palabras asi

Código (php) [Seleccionar]
<?php
$str 
"Rodrigo de Paul cambia por 320.004 € de Computer a adry.";
print_r (explode(" ",$str));
?>

http://www.w3schools.com/php/func_string_explode.asp



Rodrigo de Paul cambia por 320.004 € de Computer a adry.



es meter las palabras correspondientes en las variables la primera seria el nombre = rodrigo la tercera = al apellido  y asi
buenas

ivancea96

La función explode no se yo si funcionaría, viendo que hay nombres compuestos, nombres con apellidos, nombres asecas, etc.

santi810

Creo que con explode si que se puede hacer. el tema es hacer varios bucles hasta llegar al formato deseado. Lo estoy haciendo aun en cuanto acabe lo cuelgo y me decis si hay una forma mejor o mas rapida.

Gracias por la ayuda!
Saludos

ivancea96

Yo primero haría explode de '€'. De ahí sacamos ya:

"Rodrigo de Paul cambia por 320.004 € de Computer a adry."

Ya habríamos separado el jugador y el precio.

Luego queda "Computer a adry."

El caso es, que si uno de los jugadores se llama por ejemplo "Adrian a Agra", no distinguiriamos la 'a' del nombre de la 'a' de separador. Lo único, que saques del código fuente de la web en caso de que los nombres esten en negrita o como enlaces.

daryo

#8
recuerden que lo que divide a la cadena pueden ser cadenas y no solamente carateres aca esta
Código (php) [Seleccionar]
<?php
$str 
"Rodrigo de Paul cambia por 320.004$ de Computer a adry.";
$cadena=explode(" cambia por",$str);
$nombre=$cadena[0];
$cadena2=explode("$",$cadena[1]);
$costo=$cadena2[0];
$hacia=str_replace("de ","",$cadena2[1]);
 
echo 
" nombre: ".$nombre;
echo 
" costo: ".$costo;
echo 
" hacia: ".$hacia;
 

?>


por cierto probe el codigo aca -write online php :P http://writecodeonline.com/php/
buenas

ivancea96

*Falta el "a: Adry"

Lo que propuse fue para el caso en que un jugador se llamase por ejemplo "Adrian cambia por". Es un caso remoto, pero me gusta asegurar todas las posibilidades. En ese caso, ese código fallaría.