| | | | |
| | |
| Erfahrener Benutzer Registriert seit: 21.05.2008
Beiträge: 9.937
![]() | Hallo, ich bin gerade etwas am verhungern mit meinem Problem. In der Datenbank habe ich folgende Einträge: Code: id | lastname | firstname | nickname | showname 1 | Grabowski | NULL | Kalle | %nickname %lastname 2 | NULL | NULL | Ratte | NULL 3 | Kampmann | Mark | NULL | %firstname %lastname Dabei will ich nicht harcodet reinschreiben, welche Spaltentypen da sein könnten, sondern das in etwa so lösen: PHP-Code: Bei preg_replace_callback() habe ich ja scheinbar das Problem, dass die verwendete Funktion nur einen Parameter bekommen kann, den $matches-Array, dadurch also zwar der %xy Wert übergeben wird, $profile aber verloren geht. PHP-Code: http://de.php.net/manual/en/function.preg-replace.php konnte ich auch nicht für meine Bedürfnisse ummodeln Prinzipiell könnte ich wohl auch die Attribute von $profile extrahieren und in nen str_replace()-Array geben, die Lösung mit preg_replace(_callback)() würde mich aber trotzdem interessieren.. |
| |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | ||
| Gast
Beiträge: n/a
| Zitat:
1. einfach mit SQL erledigen: Code: CREATE TABLE `test1` (
`id` int(11) NOT NULL default '0',
`lastname` varchar(16) default NULL,
`firstname` varchar(16) default NULL,
`nickname` varchar(16) default NULL,
`showname` varchar(32) default NULL
) TYPE=MyISAM;
INSERT INTO `test1` (`id`, `lastname`, `firstname`, `nickname`, `showname`) VALUES (1, 'Grabowski', NULL, 'Kalle', '%nickname %lastname');
INSERT INTO `test1` (`id`, `lastname`, `firstname`, `nickname`, `showname`) VALUES (2, NULL, NULL, 'Ratte', '%nickname');
INSERT INTO `test1` (`id`, `lastname`, `firstname`, `nickname`, `showname`) VALUES (3, 'Kampmann', 'Mark', NULL, '%firstname %lastname');
SELECT concat_ws(' ', firstname, nickname, lastname) as ergebnis FROM `test1` WHERE id=1;
2. PHP: einige Templateklassen bieten den Luxus an, assiziative Arrays beim assign zu verwursten. Dann kannste Dir den Objektkram sparen. | |
| | ||
| Erfahrener Benutzer Registriert seit: 21.05.2008
Beiträge: 9.937
![]() | Hallo ignatz, grade ein einfaches CONCAT_WS will ich nicht benutzen, weil sich der Name eben immer mal anders zusammen setzen kann. Wenn natürlich nur einer der drei Namen lastname/firstname/nickname in der DB steht ist die Sache klar (siehe Ratte), daher showname=NULL. Wenn jedoch mehrere Namen eingetragen sind, kann es ja auch sein, dass sich "Heinz Becker" "Becker, Heinz" nennen möchte (showname="%lastname, %firstname"). Die Spalte showname möchte ich also schon behalten. Zitat:
Aber die Lösung mit str_replace() ist jetzt auch in Ordnung. | |
| |
| Themen-Optionen | |
| Thema bewerten | |
|
|
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| preg_replace() null, php preg_replace platzhalter beibehalten |

Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.