php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 02-10-2007, 11:25
KRambo
 Newbie
Links : Onlinestatus : KRambo ist offline
Registriert seit: Dec 2006
Beiträge: 10
KRambo ist zur Zeit noch ein unbeschriebenes Blatt
Standard Select Query mit Datumsfilter

Hi

Hab mal ne Frage. Und zwar hab ich einen MySql String, der wie folgt aussieht:
PHP-Code:
$sql "SELECT post_id, post_subject, post_text FROM table 
        WHERE post_subject LIKE 'd.m.y%'"

Ich möchte damit alle Datensätze auslesen, deren post_subject mit einem Datum im Format "d.m.y" anfängt. Blöderweise findet er dabei keinen Datensatz obwohl einer vorhanden ist. Wenn ich aber 'd.m.y%' durch '30.09.07%' ersetze (das is das Datum was im Datensatz steht) dann funktioniert es.

Wie geht das?
Mit Zitat antworten
  #2 (permalink)  
Alt 02-10-2007, 11:29
xkl1986
 Member
Links : Onlinestatus : xkl1986 ist offline
Registriert seit: May 2007
Ort: NRW
Beiträge: 215
xkl1986 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
$sql "SELECT post_id, post_subject, post_text FROM table 
        WHERE post_subject LIKE '%.%.%'"

und so ?
__________________
"Nicht jeder Mensch kann und soll Programmieren[...]".
Mit Zitat antworten
  #3 (permalink)  
Alt 02-10-2007, 11:34
KRambo
 Newbie
Links : Onlinestatus : KRambo ist offline
Registriert seit: Dec 2006
Beiträge: 10
KRambo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Stimmt wäre ne einfache Lösung. Aber geht das nicht auch anders?
Mit Zitat antworten
  #4 (permalink)  
Alt 02-10-2007, 11:40
xkl1986
 Member
Links : Onlinestatus : xkl1986 ist offline
Registriert seit: May 2007
Ort: NRW
Beiträge: 215
xkl1986 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Mit Sicherheit aber warum
__________________
"Nicht jeder Mensch kann und soll Programmieren[...]".
Mit Zitat antworten
  #5 (permalink)  
Alt 02-10-2007, 11:40
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Regex kann auch mysql - Manual weiß Rat.
(Ist natürlich dann ein Fullselect und demnach tödlich für jeden Server...)
Mit Zitat antworten
  #6 (permalink)  
Alt 02-10-2007, 11:49
KRambo
 Newbie
Links : Onlinestatus : KRambo ist offline
Registriert seit: Dec 2006
Beiträge: 10
KRambo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Weil ich nur die filtern möchte, die mit einem Datum anfangen. Mit obiger Lösung kommen aber auch die, die ein Datum mitten drin haben

Edit: Ok hab ne einfache Lösung für das Problem gefunden. Ich nehme einfach beim WHERE nur die ersten 8 Zeichen und vergleiche sie mittels LIKE mit '%.%.%', somit sind nur die dabei, die das Datum am Anfang haben. Danke euch

PHP-Code:
$sql "SELECT post_id, post_subject, post_text FROM table 
        WHERE LEFT(post_subject,8) LIKE '%.%.%'"


Geändert von KRambo (02-10-2007 um 12:02 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 02-10-2007, 12:20
xkl1986
 Member
Links : Onlinestatus : xkl1986 ist offline
Registriert seit: May 2007
Ort: NRW
Beiträge: 215
xkl1986 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ein Datum hat mit den Punkten aber 10 Stellen

P.S. Ich weiß es ist Wurst
__________________
"Nicht jeder Mensch kann und soll Programmieren[...]".
Mit Zitat antworten
  #8 (permalink)  
Alt 02-10-2007, 12:28
KRambo
 Newbie
Links : Onlinestatus : KRambo ist offline
Registriert seit: Dec 2006
Beiträge: 10
KRambo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Naja eigentlich schon aber in meinem Fall hat das Datum immer das Format d.m.y somit sind es nur 8 Stellen weil das Jahr nur aus 2 Stellen besteht
Mit Zitat antworten
  #9 (permalink)  
Alt 02-10-2007, 21:33
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von KRambo
Edit: Ok hab ne einfache Lösung für das Problem gefunden. Ich nehme einfach beim WHERE nur die ersten 8 Zeichen und vergleiche sie mittels LIKE mit '%.%.%', somit sind nur die dabei, die das Datum am Anfang haben. Danke euch
Einfach für dich. Der Datenbank-Server macht ein Fullselect.
Mit Zitat antworten
  #10 (permalink)  
Alt 03-10-2007, 08:00
KRambo
 Newbie
Links : Onlinestatus : KRambo ist offline
Registriert seit: Dec 2006
Beiträge: 10
KRambo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Was ist eigentlich genau ein Fullselect? Kenne mich mit SQL schon ein wenig aus, allerdings liegt meine Erfahrung eher beim MS SQL Server, von daher is das ein wenig neu für mich.

Wenn man es nicht anders machen kann bleibt mir auch nichts anderes. Zumindest kann ich mich über die Geschwindigkeit der Abfrage nicht beklagen, die Seite wird sehr schnell geladen.

Sind aber auch immer nur wenige Datensätze, vor allem hab ichs über die Kriterien ja schon stark eingeschränkt. Er hat dann im Normalfall nur 1-5 Datensätze, die er durchsuchen muss.
Mit Zitat antworten
  #11 (permalink)  
Alt 03-10-2007, 09:36
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von KRambo
Er hat dann im Normalfall nur 1-5 Datensätze, die er durchsuchen muss.
Da kannst du die Performance vernachlässigen. Dann würde ich aber auch mit einem REGEXP das Format genauer einschränken:
Code:
WHERE post_subject REGEXP '^[0-3][[:digit:]]\.[01][[:digit:]]\.[[:digit:]]{2}'";
__________________
Gruss
H2O
Mit Zitat antworten
  #12 (permalink)  
Alt 03-10-2007, 10:52
tontechniker
 PHP Senior
Links : Onlinestatus : tontechniker ist offline
Registriert seit: Jul 2005
Beiträge: 1.972
tontechniker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Was ist eigentlich genau ein Fullselect?
Fullselect heißt, dass alle Datensätze ausgelesen und dann auf entsprechende Kriterien durchsucht werden. Das versucht man normalerweise mit einem Index zu verhindern, diesen kann der MySQL Server deutlich schneller durchsuchen.
__________________
Die Regeln | rtfm | register_globals | strings | SQL-Injections | []
Mit Zitat antworten
  #13 (permalink)  
Alt 03-10-2007, 11:17
KRambo
 Newbie
Links : Onlinestatus : KRambo ist offline
Registriert seit: Dec 2006
Beiträge: 10
KRambo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Achso alles klar danke. Da die Datensätze aber schon arg eingegrenzt sind spielt das bei mir ja keine Rolle. Und Indizes kenn ich schon vom SQL Server

Werd den Regexp mal versuchen.

Edit: funzt perfekt, danke!

Geändert von KRambo (03-10-2007 um 11:44 Uhr)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

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