php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.07.2011, 14:05  
Neuer Benutzer
 
Registriert seit: 27.12.2010
Beiträge: 19
PHP-Kenntnisse:
Fortgeschritten
automatix befindet sich auf einem aufstrebenden Ast
Standard Zeichenketten suchen und einzeln auflisten

Hallo zusammen!

Folgender Sachverhalt: Eine Content-Tabellenspalte mytable.mycolumn VARCHAR(255) enthält u.a. IMG-Tags (<img ... />). Nun sollen alle IMG-Tag-Vorkommnisse aufgelistet werden.

Die Lösung, die mir spontan als Erstes einfällt ist folgende:
1. SELECT `id`, `mycolumn` FROM `mytable` WHERE `mycolumn` LIKE '%<img%'
=> Zwischenergebnis: Tabelle nur mit Zellen, die mindestens ein IMG-Tag enthalten. (Eigentlich kann dieser Schritt weggelassen werden.)
2. Die restliche Auswertung und das Rausfischen von einzelnen IMG-Tags mit PHP.
=> Zwischenergebnis: Array mit IDs und IMG-Tags.
3. Ausgabe

Ich würde aber gerne mehr auf die DB-Ebene auslagern und idealerweise an PHP schon eine fertige Endergebnis-Tabelle übergeben. Ich finde es eleganter und es ist sicherlich auch performanter.

(Wie) Geht das?

Danke
automatix ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 26.07.2011, 14:20  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Nun sollen alle IMG-Tag-Vorkommnisse aufgelistet werden.
Definiere Vorkommnisse. Die Nur-Img-Daten wird Dir SQL nicht liefern können.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 26.07.2011, 14:36  
Neuer Benutzer
 
Registriert seit: 27.12.2010
Beiträge: 19
PHP-Kenntnisse:
Fortgeschritten
automatix befindet sich auf einem aufstrebenden Ast
Standard

D.h. es wird (auf der DB-Ebene) nicht möglich sein, aus einer Content-Tabelle wie dieser
__________________________________________________
| id | content
---------------------------------------------------------------------
| 1 | afasf <img src="fdfa" /> sdf <img src="sdfdfa" />
---------------------------------------------------------------------
| 2 | <img src="fa" /> <img src="dfa" />
---------------------------------------------------------------------
| 3 | <img src="fsa" />
---------------------------------------------------------------------

so eine Ergebnis-Tabelle zu bekommen?
__________________________________________________
| content -id | content-images
---------------------------------------------------------------------
| 1 | <img src="fdfa" />
---------------------------------------------------------------------
| 1 | <img src="sdfdfa" />
---------------------------------------------------------------------
| 2 | <img src="fa" />
---------------------------------------------------------------------
| 2 | <img src="dfa" />
---------------------------------------------------------------------
| 3 | <img src="fsa" />
---------------------------------------------------------------------
automatix ist offline   Mit Zitat antworten
Alt 26.07.2011, 14:43  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

SQL kennt zwar ein paar Stringbefehle, aber bspw. keine Schleifen, so dass Zeile 2 schon mal echte Probleme bereiten kann. K.A., ob das vielleicht mit Stored procedures möglich ist, aber trivial ist das sicher nicht. Ich denke, mit einer PHP-seitigen Lösung bist Du gut bedient. Oder Du legst die Daten normalisiert an.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 26.07.2011, 22:30  
Erfahrener Benutzer
 
Registriert seit: 01.06.2011
Beiträge: 389
PHP-Kenntnisse:
Anfänger
achtelpetit befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
sicherlich auch performanter.
Ganz gewiss, jedenfalls wenn es sich nicht nur ein Dutzend DS handelt.
Erzähl doch mal, wie die fraglichen Textketten in die DB rein kommen.
achtelpetit ist gerade online   Mit Zitat antworten
Alt 27.07.2011, 02:39  
Neuer Benutzer
 
Registriert seit: 27.12.2010
Beiträge: 19
PHP-Kenntnisse:
Fortgeschritten
automatix befindet sich auf einem aufstrebenden Ast
Standard

OK, hast Recht -- die Performance-Vorteile würden erst ab einer gewissen Zugriffsdichte spürbar.

Zur Frage, wie die Daten in die DB reinkommen: Als (Joomla!-)Artikel über einen Editor. (@nikosch: Eine Normalisierung i.S., dass Bilder einzeln abgespeichert werden, ist also leider nicht möglich.) Die Bilder bzw. IMG-Tags befinden sich also im Text einer VARCHAR-Spalte ([Joomla!-DB].jos_content.introtext) und die Zielsetzung lautet: Eine Übersicht über die Bilder-Artikel-Beziehungen (1. Für jedes (in den Artikeln geundene) Bild: In welchen Artikeln es wie oft enthalten ist; 2. Für jeden Artikel: Welche Bilder es wie oft enthält.)

Geändert von automatix (27.07.2011 um 02:42 Uhr).
automatix ist offline   Mit Zitat antworten
Alt 27.07.2011, 08:49  
Erfahrener Benutzer
 
Registriert seit: 01.06.2011
Beiträge: 389
PHP-Kenntnisse:
Anfänger
achtelpetit befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zur Frage, wie die Daten in die DB reinkommen: Als (Joomla!-)Artikel über einen Editor.
Heißt das, der ganze Artikel (Text mit HTML-Tags) muß zunächst auf IMG-Tags geflöht werden? Das wäre doch eine Aufgabe für RegEx.

Edit:
http://dev.mysql.com/doc/refman/5.1/...functions.html
http://dev.mysql.com/doc/refman/5.1/...statement.html

Geändert von achtelpetit (27.07.2011 um 09:35 Uhr).
achtelpetit ist gerade online   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Wörter aus .txt in php Wiedergeb (Würdter einzeln auf eine Zeile) Scheffi PHP Einsteiger 10 24.12.2010 14:00
[Erledigt] While - echo einzeln ausgeben iWest Datenbanken 22 15.11.2010 13:17
[Erledigt] Zeichenkette zwischen zwei Zeichenketten aus einer Datei in eine Variable johnnyg PHP Tipps 2009 3 05.01.2010 07:11
gelöschte Domains auflisten Doggy Off-Topic Diskussionen 21 30.06.2009 20:37
100 000 Datensätze. Nur die ersten 1000 auflisten, wie? beta02 Datenbanken 11 26.05.2009 07:44
Altes Script zum Auflisten und Download von Dateien geht nicht mehr majoo PHP Tipps 2009 3 06.05.2009 20:53
Php Strings einzeln aus Datei lesen Zorakh55 PHP Tipps 2009 2 06.05.2009 05:10
String nach Zeichenketten durchsuchen und teilen? Peppino PHP Tipps 2008 3 26.09.2008 22:14
Image hochladen -> Endung einzeln herausfinden? BartTheDevil89 PHP Tipps 2006 10 16.12.2006 15:42
Ordner auflisten PHP Tipps 2007 2 28.12.2005 15:12
verzeichnis auflisten und ev löschen PHP Tipps 2005-2 1 28.08.2005 19:29
Member auflisten Freeaak PHP Tipps 2005 11 17.04.2005 17:28
Daten aus MySQL-Datebank (einzeln) lesen PHP Tipps 2004 2 09.08.2004 10:12
wert1,wert2,wertn einzeln mit appendChild in XML PHP Tipps 2004 11 13.06.2004 15:26

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php suchen und auflisten, php img tag suchen, joomla , jos_content introtext auslesen, php img tag from html, string einzeln durchsuchen, inzeln auflisten, bestimmte tage in db suchen php, php img suchen, php img-tags aus string einzeln in db

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:19 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum