#1 6. Mai 2008 auslesen + sortierung hey liebe Leute, folgendes Problem unser getway bekommt eine sms die er wie folgt abspeichert. id-nummer-smsdate-insertdate-text 1-4998473647-06-06-2008 16:00-06-06-2008 16:00-letz go raidrush.ws Jedoch wollen wir den sms text "filtern" vergleichen ob am anfang ein username vorkommt wenn ja soll er dem user in die tabelle pms kopiert werden. In diesem Falle wäre letz das keyword und es würde dem user letz weiter geleitet werden, fraglich nur wie realisiert man das am einfachsten und effektivsten wenn das 500 sms reinprasseln ohne das der Server die cpu kickt. Es soll jedoch gebrübt werden ob wie im beispiel "letz" ein user ist der existiert und wenn ja weiterleiten wenn NEIN dann schiebe die in ein default (admin). Hoffe ihr könnt mir helfen + Multi-Zitat Zitieren
#2 9. Mai 2008 AW: auslesen + sortierung kannste vielleicht mal mit farben markierne, was jetzt was ist in diesem string? also was die id ist, was die nummer, was das datum, ..... ich denke, dass lässt sich dann mit expressions ganz gut lösen --------------------- edit Kannst du vielleicht mal mit farben markieren, was jetzt was ist in diesem String? Also was die Id ist, was die Nummer, was das Datum, ..... Ist den der Username durch irgendwelche Zeichen vom Rest getrennt? Bei "letz" ist es nach rechts ja nur ein leerzeichen. Ich denke, insgesamt lässt sich das Auslesen dann mit Expressions ganz gut lösen. + Multi-Zitat Zitieren
#3 9. Mai 2008 AW: auslesen + sortierung Entweder mit "expressions" (bzw. regulären Ausdrücken) womit ich mich nicht auskenne, oder mit explode() doof ist dass das Datum genau wie der rest mit einem "-" getrennt wird... Aber Reguläre Ausdrücke sind da eine gute Lösung... + Multi-Zitat Zitieren
#4 9. Mai 2008 AW: auslesen + sortierung Code: (?P<id>(\d+))-(?P<nummer>(\d+))-(?P<smsdate>([\d]{2}-[\d]{2}-[\d]{4}\s[\d:]+))-(?P<insertdate>([\d]{2}-[\d]{2}-[\d]{4}\s[\d:]+))-(?P<text>(.*)) sollte drauf passen (geht nur in php), habs aber ned gestestet + Multi-Zitat Zitieren
#5 6. Juni 2008 AW: auslesen + sortierung Hallo, leider bin ich noch immer nicht selbst drauf gekommen .. Hier ein aktuelles beispiel aus meiner datenbank wie die sms eingetragen werden .. fehlt ja nur mehr die verarbeitung! CREATE TABLE `inbox` ( `id` int(10) unsigned NOT NULL auto_increment, `number` varchar(20) NOT NULL default '', `smsdate` datetime NOT NULL default '0000-00-00 00:00:00', `insertdate` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `text` varchar(160) default NULL, `phone` tinyint(4) default NULL, `processed` tinyint(4) NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=28 ; -- -- Daten für Tabelle `inbox` -- INSERT INTO `inbox` (`id`, `number`, `smsdate`, `insertdate`, `text`, `phone`, `processed`) VALUES (27, '6763875432', '2008-05-06 16:37:15', '2008-05-06 18:37:30', 'USERNAME ab gehts in den feierabend am Dienstag ) - - \n\n', NULL, 0), Sinn ist es USERNAME der am anfang der sms "textes" steht auszulesen zu chekken ob ein user mit diesem namen existiert und wenn ja verschiebe in irgend eine andere datenbank und ordner sie dem usernamen zu Bitte um hilfe reguläre ausdrucke bringen somit nicht wirklich was bei der verarbeitung mehr php & mysql büdde + Multi-Zitat Zitieren
#6 6. Juni 2008 AW: auslesen + sortierung PHP: <? php $message = 'USERNAME ab gehts in den Feierabend am Dienstag' ; $pos = strpos ( $message , ' ' ); $username = substr ( $message , 0 , $pos ); $text = substr ( $message , $pos + 1 , strlen ( $message )); print $username . "<br /> { $text } " ; ?> + Multi-Zitat Zitieren
#7 8. Juni 2008 AW: auslesen + sortierung Kann mir jemand eventuell das ganze so aufbauen das er direkt dann auch username chekkt aus der db ob Username = Username existiert in einer userdatenbank und WENN JA dann sms text in db eintragen und dem user zuordnen. mit mysql natürlich .. + Multi-Zitat Zitieren
#8 8. Juni 2008 AW: auslesen + sortierung PHP: $sql = sprintf ( "SELECT uid FROM users WHERE username = '%s'" , $username ); $query = mysql_query ( $sql );if( mysql_num_rows ( $query )== 1 ){ // wenn benutzer existiert $user = mysql_fetch_array ( $query ); mysql_free_result ( $query ); $sql = sprintf ( "INSERT INTO(uid,datum,sms,text) VALUES('%s','%s','%s','%s')" , $user [ 'uid' ], $datum , $sms , $text ); mysql_query ( $sql );} else { // wenn nicht } so sollte es gehen + Multi-Zitat Zitieren