php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 16.09.2011, 15:37  
Erfahrener Benutzer
 
Registriert seit: 23.06.2004
Beiträge: 139
Heart zeigte ein beschämendes Verhalten in der Vergangenheit
Standard Nur bestimmte Zeile aus einem MySQL-Feld auslesen

Hallo,

ich habe eine MySQL-Table, die in einem Feld "params" folgende Werte enthält:

Code:
cfg_edit_club_info_update_notify=0
cfg_edit_person_info_update_notify=0
cfg_standard_server_offset=1
JoomLeague updates=1
cfg_drop_joomleague_tables_when_uninstalled=0
show_debug_info=1
max_import_time=480
max_import_memory=256M
show_footer=1
cfg_google_api_key=
force_ranking_cache=1
usethumblib=1
thumbformat=PNG
defsportstype=1
image_max_size=120
cfg_be_show_matchdays_order=ASC
cfg_show_seasons_in_project_drop_down=0
statistic_views=roster,matchreport,player
Ich bräuchte nun als Ergebnis nur die Werte von statistic_views=...

Also "roster,matchreport,player".

Wie müsste der SQL-Befehl dazu aussehen?
Heart ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 16.09.2011, 15:50  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

erm .. du willst uns jetzt aber nicht erzählen, dass diese Werte alle in einer einzigen "Tabellenzelle" liegen?

Normalisiere mal deine Datenbank, dann ergibt dies da eine m:n Beziehung, die über eine zusätzliche RelationenTabelle aufgelöst wird - und in dieser Relationentabelle findest du diese gewünschte Information ganz schnell....

so, wie die Daten da bis jetzt liegen, müsstest du erst umständlichst mit substr(ing) zurecht schneiden .. das bringts nicht auf Dauer

also bitte normalisier deine Datenbank nach den SQL-Normalformen (bis Stufe 3), dann können wir weitersprechen, falls das Problem dann noch besteht
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 16.09.2011, 15:59  
Erfahrener Benutzer
 
Registriert seit: 23.06.2004
Beiträge: 139
Heart zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Das ganze hat schon so seine Richtigkeit, weil eben diese Werte aus einer .xml Datei stammen und jederzeit geändert/ergänzt werden können vom User.

Aber in diesem speziellen Fall bräuchte ich nun den o.g. speziellen Wert und das eben nicht wie üblich über php-Funktionen herausgefiltert, sondern ich bräuchte den Wert direkt als Ergebnis eines einzigen sql-SELECTS.
Heart ist offline   Mit Zitat antworten
Alt 16.09.2011, 16:15  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Stell die Position von "statistic_views=" fest und nimm den restlichen, rechts davon befindlichen Teil.

Das funktioniert aber ausschliesslich mit dem letzten Wert, für alle anderen Werte musst du zusätzlich noch die Position des nächsten Zeilenumbruchs nach dem gesuchten Wert ermitteln, und dann den Text zwischen den beiden Positionen selektieren.

Alles in allem ist das jedoch eine hässliche Krücke...
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 16.09.2011, 16:16  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

entschuldige bitte, aber DAS HAT NICHT SEINE RICHTIGKEIT - sondern ist vermurkstes Datendesign

es liegt doch offensichtlich an dir, das XML ANSTÄNDIG in die Datenbank einzutragen - jedenfalls sind 50 aggregierte Datenwerte in einer Tabellenzelle kompletter UNFUG und außerdem extrem schlecht zu verarbeiten, wie du nun an dieser höchst einfachen Fragestellung siehst, die dich vor große Probleme stellt. Die Ursache dieser Probleme ist eben dein vermurkstes Datendesign

Ich bitte dich nochmals, beschäftige dich mit Normalisierung und überarbeite deine Datenbank - die Probleme werden mit dem bestehenden Tabellendesgn nur größer, statt kleiner

@istegelitz: und dann macht der User Gebrauch von der Möglichkeit XML per Hand zu bearbeiten und der gewünschte Eintrag wird zukünftig dann als Eintrag 10 von 200 Einträgen in der Zelle auftauchen und es klemmt wieder
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 16.09.2011, 16:30  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.856
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Die Frage ist, wieso sind die Werte überhaupt in der Datenbank. Ich kann verständniss dafür aufbringen das man nicht dafür extra einer Tabelle anlegen möchte die eigentlich nur wertpaare speichert und eine ID zu einer Config-Gruppe. Aber das selbe kannst du auch in einer XML auf selbigen Webspace haben. In der Datenbank speicherst du dann einfach den Dateipfad zur XML.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 16.09.2011, 16:33  
Erfahrener Benutzer
 
Registriert seit: 23.06.2004
Beiträge: 139
Heart zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

...weil das Joomla eben so macht

Ich kann bzw. darf hier nicht in die MySQL-DBs eingreifen, von daher wäre ich wirklich über eine Lösung meiner o.g. Frage dankbar.

Das zB ein wenig näher eräutert wäre interessant:
Zitat:
Zitat von lstegelitz
Stell die Position von "statistic_views=" fest und nimm den restlichen, rechts davon befindlichen Teil.
Heart ist offline   Mit Zitat antworten
Alt 16.09.2011, 16:43  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.856
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Ganzes Feld abholen, per PHP zuerst auf Zeile exploden, dann auf equal-sign. Alles andere ist meines erachtens Murks. Die Queries für die DB die dafür nötig wären das per MySQL zu machen ist weit mehr Aufwand als via PHP.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 16.09.2011, 17:01  
Erfahrener Benutzer
 
Registriert seit: 23.06.2004
Beiträge: 139
Heart zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

PHP kommt leider nicht in Frage... (in diesem Fall)
Heart ist offline   Mit Zitat antworten
Alt 16.09.2011, 19:43  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.856
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

na dann viel spass mit LOCATE() und SUBSTRING()
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   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
[Erledigt] Nur bestimmte Zeilen aus einer mysql tabelle auslesen Nimmo Gogh Datenbanken 3 30.12.2010 22:31
[Erledigt] mySQL Feld teilen ketchup PHP Einsteiger 3 09.12.2010 11:38
MySQL Mehrere Zeilen auslesen Fluxkompensator PHP Tipps 2010 2 29.08.2010 13:46
Mit MySql einen bestimmte Zeile UPDATEN Aydin PHP Tipps 2010 18 16.07.2010 14:37
[Erledigt] MySQL löschen einer zeile. CL90 PHP Tipps 2010 12 09.07.2010 09:23
[Erledigt] MySQL Link Resource in einer statischen Variablen speichern Lenki PHP-Fortgeschrittene 8 18.03.2010 16:37
Dynamisch Array aus MySQL mit PHP auslesen. Muuip PHP Tipps 2008 2 26.08.2007 21:19
Bestimmte Zeile aus Tabelle auslesen anhand von einer Angabe DerTschmi Datenbanken 6 18.03.2006 17:00
MySQL Server startet nicht mehr richtig... Datenbanken 16 03.03.2006 19:40
Mysql bestimmte Zeile aus Table duplizieren Datenbanken 1 04.02.2006 00:36
[Erledigt] nächste Zeile einer Db auslesen? PHP Tipps 2005-2 7 01.08.2005 00:11
Bestimmte Werte aus cvs Datei auslesen PHP Tipps 2005-2 1 20.06.2005 13:11
Bestimmte Zeile??? web2 PHP Tipps 2005 11 14.04.2005 11:24
[Erledigt] .reg Datei auslesen und bestimmte Zeile ändern PHP-Fortgeschrittene 19 27.10.2004 10:39
Multiple Select in einen Feld in MYSQL einfügen Datenbanken 4 22.09.2004 18:15

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php mysql nur ein feld, php sql nur bestimmte zeilen aus feld, mysql bestimmte zeile auslesen, php mysql feld auslesen, mysql bestimmte zelle auslesen, php sql nur 1 zeile auslesen, java mysql bestimmte zeile auslesen und löschen, php bestimmte reihe aus ergebnis auslesen, php mysql nur eine zeile, mehrere werte aus feld auslesen mysql, mysql nur eine zeile auslesen, php datenbank zeile auslesen, mysql nur feld auslesen, php mysql datenbank ergebnis erst erste zeile auslesen bearbeiten dann nächste zeile, sql bestimmte zeile auslesen, php sql eine zeile auslesen, sql wir nur eine zeile ausgelesen?, mysql feld auslesen, nur zahlen aus einem mysql feld auslesen, sql feld auslesen

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:20 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