php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.09.2006, 22:54  
Neuer Benutzer
 
Registriert seit: 13.09.2006
Beiträge: 9
Teambyte
Standard Sql Datenbank durchsuchen und vergleichen

Hallo,

folgendes Problem besteht und keinen Plan .
Ich habe ein Sql Datenbank mit folgendem Inhalt

ID parent datum anfang ende ort contact vorzeit
1 0 2006-09-09 1200 1400 Berlin 15 4

usw..

jetzt möchte ich das eine php die später mit Cronjob gestartet werden soll eben diese Datenbank sie heist TERMIN ausliest.
Dabei soll herausgefunden werden ob aus der variable "vorzeit "der Termin eben noch 4 Stunden hat bis er in Kraft tritt.

Dsa heist im diesen Fall soll eine Aktion 4 Stunden vor 12.00 gemacht werden sprich um 8.00 Uhr .

Jetzt muss aber aus der variable Contact (15) eine weiter Datenbank diese heist "USER" eben der User 15 gesucht werden und dann die psasende Email gezogen werden.

Diese datenbank sieht so aus:

ID vorname nachname kurz pw firma gruppe email
15 Jochen Mustermann JM xjk 0 0 info@domaintld

wie bekomme ich das hin keine Ahnung bin um jede Hilfe dankbar.

Gruß

Teambyte
Teambyte ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 13.09.2006, 23:33  
Erfahrener Benutzer
 
Registriert seit: 25.08.2005
Beiträge: 250
PHP-Kenntnisse:
Fortgeschritten
FireFIghter
Standard

Du musst erst die Aktuelle Zeit nehmen und schauen ob der Zeitraum zwischen der Aktuellen Zeit und dem Anfang <= contact ist.

SQL Statemant
SELECT termine.*, user.email INNER JOIN termine.contact = user.id

PHP-Code:
if(($aktuellezeit $anfangszeit) <= $vorzeit
FireFIghter ist offline  
Alt 13.09.2006, 23:38  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.248
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

mein tipp: wenn man ne komplettlösung haben möchte:
1. die frage verständlich und auf deutsch stellen
2. mal mit den grundlagen von SQL und php beschäftigen

die aktuelle zeit kann auch direkt in sql mit NOW() bestimmt werden.
nikosch ist offline  
Alt 14.09.2006, 10:38  
Neuer Benutzer
 
Registriert seit: 13.09.2006
Beiträge: 9
Teambyte
Standard

@ nikosch77

etwas freundlicher könnte man ja sein oder?

zu 1) Bin ich Deutscher, habe aber Problem das schriftlich wiederzugeben was ich meine. Ist ja auch nicht einfach.
zu 2) Beschäftige ich mich mit SQL und PHP erst seit einigen Wochen und habe mir auch Bücher dazu gekauft. Man braucht eben eine gewisse Zeit alles zu vestehen.

Deshalb habe ich im Anfängerforum freundliche meine Frage gestellt.

Also noch einmal
Ich möchte in regelmässigen Abständen (Cronjob) einen PHPSript starten.
Das folgendes machen soll:

1 . eine Datenbank abfragen nach einem Wert in einer Spalte und vergleichen mit einem anderem Wert in der gleichen Spalte

Struktur der Datenbank:

ID parent datum anfang ende ort contact vorzeit
1 0 2006-09-09 1200 1400 Berlin 15 4


Es soll dort überprüft werden, ob die "vorzeit" zum "anfang" erfüllt ist sprich 4 Stunden vor 12.00 Uhr und eine Aktion auslösen.

2. Aktion:
Ist das der Fall dann soll aus der Spalte "contact" in diesem Fall "15" mit einer anderen Datenbank diese "15" gesucht werden in einer Spalte und daraus die E-Mail geholt werden.

Struktur dieser Datenbank:

ID vorname nachname kurz pw firma gruppe email
15 Jochen Mustermann JM xjk 0 0 info@domaintld

das ist alles. Evt noch ein Flag setzen das bei diesem Termin die E-Mail versendet worden ist.

Bitte freundlichst um Hilfe
Teambyte ist offline  
Alt 14.09.2006, 10:55  
Erfahrener Benutzer
 
Registriert seit: 09.03.2005
Beiträge: 219
webbi
Standard

Es wäre glaube ich sinnvoller, wenn du Start und Ende jeweils in einer DATETIME Spalte anlegen würdest, dann könntest du gut damit rechnen. Denn wenn du z.B. bei deiner aktuellen Struktur einen Termin um 2 Uhr morgens hättest und 4 Stunden davor eine Aktion auslösen willst, wirds etwas umständlich, weil du hier das Datumsfeld noch mit einbeziehen musst.

Deshalb einmal DATETIME für Anfung und für Ende.
Die Vorzeit würde ich gleich in Sekunden ablegen, dann hast du es einfacher wenn es mal nicht 4 Stunden sondern 4 Stunden und 30 Minuten sein sollten. (Optional als TIME Feld, wenns übersichtlicher sein soll)

In der Abfrage könntest du dann ganz Simpel eine Bedinung dafür formulieren:

SELECT ... WHERE UNIX_TIMESTAMP(anfang)-vorzeit >= UNIX_TIMESTAMP()

Du müsstest nur noch eine Zusatzspalte anlegen die speichert wo schon etwas verschickt wurde, damit ein Termin keine doppelte Benachrichtigung hat.

Wenn du in den Select noch einen Join mit der User-Tabelle einbaust bekommst du gleich die passende Mailadresse geliefert...

... LEFT JOIN user AS tabelle2 ON tabelle1.contact = tabelle2.id ...
webbi ist offline  
Alt 14.09.2006, 11:11  
Neuer Benutzer
 
Registriert seit: 13.09.2006
Beiträge: 9
Teambyte
Standard

@webbi

Danke für die Antwort erstmal:

Datetime ist doch richtig das dort ausser die Uhrzeit auch das Datum enthalten ist. Aber wie kann ich das im Formular umsetzen.

Ich habe einen Kalender dort klicke ich z.B Dienstag an um 9.00 dabei macht sich dann ein Formular auf wo ich die Anfangzeit und Endzeit im Format (anfang) 0900 (endzeit) 1200 eingebe. Wie schafe ich das diese Werte in Datetime umzuwandeln.

Werde ich noch am Termin eine Spalte anlegen ob die Email versendet worden ist oder nicht.

Was mir nicht klar ist wenn die Aktion zutrifft wie ich dann aus einer 2 Datenbank mir den rest suchen (user 15 und Email).

Gruß

Gert
Teambyte 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
Datenbank durchsuchen anonym01 PHP Tipps 2007 1 30.07.2007 14:09
MySQL Datenbank durchsuchen (2) Zergling-new Trash 4 27.12.2006 20:47
MySQL Datenbank -> komplett durchsuchen Soese Datenbanken 17 02.12.2006 11:33
Wert aus Datenbank vergleichen Spiff Datenbanken 8 18.05.2006 16:29
Die Datenbank durchsuchen V-Gee PHP Tipps 2006 7 28.02.2006 05:34
ganze datenbank durchsuchen notyyy PHP Tipps 2005-2 8 01.10.2005 23:04
Ist es möglich die gesamte Datenbank zu durchsuchen??? PHP Tipps 2005-2 2 25.07.2005 16:07
[Erledigt] Datenbank komplett durchsuchen Datenbanken 2 22.04.2005 11:00
[Erledigt] Variable mit Eintrag aus Datenbank vergleichen Datenbanken 3 31.03.2005 11:21
Texteingabe mit MySQl Datenbank vergleichen PHP Tipps 2005 2 15.01.2005 11:37
Datenbank durchsuchen mit Formular PHP Tipps 2004 14 06.11.2004 11:12
datenbank durchsuchen inu PHP Tipps 2004 2 26.09.2004 12:07
datenbank nach ähnlichen begriffen durchsuchen PHP Tipps 2004 3 24.07.2004 12:33
[Erledigt] Mysql Datenbank durchsuchen - Tutorial Datenbanken 5 10.07.2004 13:32
Datenbank durchsuchen wonderfull PHP Tipps 2004 5 02.06.2004 21:37

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
sql durchsuchen, sql datenbank durchsuchen, in sql datenbank suchen, mssql datenbank durchsuchen, http://www.php.de/php-tipps-2006/42085-sql-datenbank-durchsuchen-und-vergleichen.html, sql datetime vergleichen, sql datenbank durchsuchen php, datenbank nach wert durchsuchen, ms sql datenbank komplett durchsuchen, wert in sql datenbank suchen, sql 2005 durchsuchen, sql datenbank nach wert durchsuchen, sq durchsuchen php, innerhalb sql datenbank suchen, sql zeit vergleichen, eine gesamte datenbank nach einem wert durchsuchen, sql datenbank komplett suchen, wert in gesamter db suchen sql, sql begriff über gesamte datenbank suchen, termin in datenbank suchen per php

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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.