php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.02.2009, 16:46  
Erfahrener Benutzer
 
Registriert seit: 12.08.2008
Beiträge: 184
ketchup ist zur Zeit noch ein unbeschriebenes Blatt
Standard Feld suchen

Hallo
hab eine Datenbank mit 19 Spalten. Jetzt suche ich eine möglichkeit die datenbank abzufragen nach den zeilen , wo in spalte 1 die letzten 6 stellen gleich den Werten in Spalte 19 ist. Ist schwer zu erklären , irgendwie habe ich auch gerade eine Blockade

Code:
Zeile |Spalte1 | Spalte2 |...|Spalte19
Zeile1|xxxx23 |            |...|
Zeile2|xxxx45 |            |...|23
Zeile3|xxxx54 |            |   |
Zeile4|xxxx67 |            |   |23
Zeile5|xxxx78 |            |   |54
Ausgeben werden soll dann wie folgt
Zeile1
Zeile2
Zeile4
Zeile3
Zeile5
usw..

Hat jemand eine idee wie ich das verwirklichen kann.
Hoffe es ist verständlich ausgedrückt
ketchup ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 13.02.2009, 16:53  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Sowas ist zwar durchaus möglcih, aber ich würde dir eher raten dein DB-Design zu überarbeiten.

Momentan kannst du es ungefähr so lösen:
Code:
 .... WHERE RIGHT(spalte1, 6) = spalte19
Schau dir dazu einfach mal die MySQL-Stringfunktionen an: MySQL :: MySQL 5.1 Referenzhandbuch :: 12.3 String-Funktionen

EDIT: Ich glaube ich hab ich auch noch falsch verstanden. Dein Ausgabe-Beispiel und deine Beschreibung widersprechen sich irgendwie
agrajag ist offline  
Alt 13.02.2009, 17:26  
Erfahrener Benutzer
 
Registriert seit: 12.08.2008
Beiträge: 184
ketchup ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ja es ist schwer zu erklären
die ausgabe ist deswegen

zeile1
zeile2
zeile4

Spalte1 ist die basiseingabe
in zeile 2 und 4 wurde diese werte der basiseingabe geändert
muss bei der ausgabe dann sehen das zeile 1 die basis ist und zeile2 und zeile4 änderungen dazu
hoffe es ist jetzt verständlicher
ketchup ist offline  
Alt 13.02.2009, 19:24  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Dann musst du die Tabelle mit sich selbst JOINen. Und das wird wahrscheinlich höllisch langsam werdne, da bei Spalte1 kein Index verwendet werden kann (weil du ja nur die letzten 2 Ziffern für den Join heranziehen kannst....).
Irgendwie so könnte es gehen:
Code:
SELECT
	base.zeile, base.spalte1, edited.zeile, edited.spalte1
FROM
	tablexy AS base
LEFT JOIN
	tablexy AS edited
ON
	RIGHT(base.spalte1, 2) = edited.spalte19
WHERE
	base.spalte19 = ""
//bzw. base.spalte19 IS NULL, jenachdem ob da für eine Basiseingabe NULL oder ein Leerstring steht
Das heißt du JOINST auf die selbe Tabelle nochmal und nimmst als Kriterium die letzten beiden ziffern aus Spalte1 und die komplette Spalte19. Das führst du für alle Basisdatensätze durch (also für alle mit spalte19="").

Mit deinen kryptischen Bezeichnungen ("Spalte1", "Spalte19") tust du dir bzw. den Leuten die dir hier helfen wollen auch keinen gefallen
Ich würde dir trotzdem - auch wenn man dem Ding so nicht ansieht was wirklcih dahintersteckt - dringend raten das Tabellendesign zu ändern.
agrajag ist offline  
 


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
JavaScript zum automatischen Springen ins nächste Feld winfo_cologne HTML, Usability und Barrierefreiheit 8 29.09.2009 17:12
[Erledigt] Limit auf Ergebnissumme mehrerer Tabellen Frank Datenbanken 8 02.09.2008 11:33
Formular feld Black-Devil PHP Tipps 2008 12 05.03.2008 16:15
Select Feld Überlappungsproblem andrew22 HTML, Usability und Barrierefreiheit 22 30.11.2006 10:44
Cursorfokus automatisch in ein Input Feld setzen DDogg HTML, Usability und Barrierefreiheit 5 17.05.2006 22:48
5 IP-Aressen in ein MySQL Feld speichern PHP Tipps 2006 12 15.05.2006 17:17
Textarea Feld dynamisch vergrößern und verkleinern? php_frage HTML, Usability und Barrierefreiheit 5 25.04.2006 08:42
Automatischer Sprung ins nächste Feld winfo_cologne PHP Tipps 2005-2 7 13.09.2005 12:57
Select Feld nach Überprüfung PHP Tipps 2005-2 4 31.08.2005 22:22
Array nach Feld sortieren PHP Tipps 2005-2 2 07.08.2005 23:00
Feld uin DB um eins erhöhen PHP Tipps 2005 5 28.04.2005 10:53
NOT LIKE Abfrage bringt kein Ergebnis in leerem Feld PHP Tipps 2005 4 26.03.2005 15:25
Bei Abfrage leeres Feld erkennen und reagieren? Datenbanken 6 13.12.2004 15:21
text in ein input feld rein schreiben HTML, Usability und Barrierefreiheit 4 30.10.2004 12:45
ein feld aus datenbank auslesen ohne while PHP Tipps 2004 6 10.06.2004 15:58


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