Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Stück eines Datensatzes abschneiden [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Stück eines Datensatzes abschneiden


 
Tex
07-11-2005, 21:04 
 
Hallo,

ich habe eine Tabelle in einer Datenbank in der einiges an Daten steht. Ein Datensatz hat vereinfacht folgende Struktur:

Bezeichnung Inhalt Variante

Ein Beispiel:

Flasche1 10% 0,7l

Bisher erzeuge ich eine Liste aller Datensätze und verlinke sie mit einer Detailansicht.

Ein Beispiel:

Flasche1 10% 0,3l
Flasche1 10% 0,5l
Flasche1 10% 0,7l
Flasche2 20% 0,3l
Flasche2 20% 0,5l
Flasche3 20% 0,7l

Ich würde aber gerne eine Änderung vornehmen. Und zwar so, dass die Liste nun nur noch folgendes anzeigt:

Flasche1 10%
Flasche2 20%

Somit meine Frage:

Wie kann ich den letzten Ausdruck abschneiden und doppelte Einträge ignorieren?

Ich müsste also alle ausgelesenen Datensätze durchsuchen, ob sie ein x,xl enthalten. Falls ja abschneiden. Dann doppelte rausschmeißen.

Ich weiß es klingt etwas kompliziert. Reduziert sich aber hoffentlich auf eine einfache Lösung, auf welche ich einfach nicht komme.

Auch für Ansätze wäre ich sehr dankbar.

Beste Grüße,
Tex

 
Mr_Blonde
07-11-2005, 21:09 
 
Also die doppelten bekommst du schon mal mit einem GROUP BY weg

was du sonst noch erreichen wolltest verstehe ich jetzt nicht so ganz

 
Tex
07-11-2005, 21:23 
 
Danke schonmal.

Ich möchte dass anstatt

Flasche1 10% 0,3l
Flasche1 10% 0,5l
Flasche1 10% 0,7l

lediglich

Flasche1 10%

ausgegeben wird. Also erst einmal das 0,3l und 0,5l und 0,7l abschneiden (wenn vorhanden) und dann das GROUP BY.

 
Mr_Blonde
07-11-2005, 21:30 
 
dann musst du doch einfach eine Spalte weniger auslesen.
Oder steht in einer Spalte etwa der ganze Datensatz? Flasche1 10% 0,3l

 
Tex
07-11-2005, 21:32 
 
Original geschrieben von Mr_Blonde
Oder steht in einer Spalte etwa der ganze Datensatz? Flasche1 10% 0,3l

Ja. So ist es.

 
Mr_Blonde
07-11-2005, 21:38 
 
[PHP]
$string = Flasche1 10% 0,3l

preg_match("/(.*%)/",$string,$treffer);


mit $treffer[1] bekommst du dann
Flasche1 10%

 
asp2php
07-11-2005, 21:48 
 
Original geschrieben von Mr_Blonde
[PHP]
$string = Flasche1 10% 0,3l

preg_match("/(.*%)/",$string,$treffer);


mit $treffer[1] bekommst du dann
Flasche1 10%
und das in einer SQL-Abfrage? :goth:

@Tex, schau dir die Strings Funktionen (http://dev.mysql.com/doc/refman/5.0/en/string-functions.html) mal an, in Kombination mit DISTINC wird du das haben was du willst

 
Tex
07-11-2005, 23:16 
 
Danke euch erst einmal. Werde es mal genauer nachsehen und testen.

 
Mr_Blonde
08-11-2005, 09:14 
 
Nagut direkt in dem Mysql Befehl geht es dann wirklich nicht :p

Aber ich dachte er wollte die Tabelle dann updaten.

 
Tex
09-11-2005, 20:00 
 
Also DISTINCT beachtet doppelte Einträge nicht. Soweit habe ich verstanden :D

Aber wie kann ich nach einem bestimmten Zeichen suchen (hier: l) und dann dieses inklusive der vorangestellten bis zum Leerzeichen (hier z.B.: 0,7l) abschneiden?

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:37 Uhr.