| Erfahrener Benutzer
Registriert seit: 08.08.2005
Beiträge: 272
| Performance Probleme... Hallo zusammen,
normalerweise bin ich ja im Anfängerforum unterwegs, doch heute hab ich mal etwas spezielles...
Ich habe einen Service für Sportler geschrieben, der nach Registrierung den Sportler benachrichtigt das seine Zeiten zum Abruf bereit stehen.
Er schickt dann seine Teilnehmernummer per SMS und erhält im Anschluß seine Ergebnisse.
Klappt an sich auch, nur beim letzten Event ist mir der Server abgeschmiert - das würde ich in Zukunft gerne vermeiden.
Da ich nicht soooooooo viel Erfahrung mit der Programmierung habe bin ich über jede Hilfe dankbar ! PHP-Code: <?php
$heute = date("Y-m-d");
include_once("connect/con1.inc");
$result = mysql_query("SELECT veranstnr FROM veranstaltung WHERE datum='$heute' AND ergaktiv='1'");
//--Wenn Ergebnisse online sind setze ERGAKTIV auf 1----------------
while($zeige = mysql_fetch_assoc($result)){
$veranstnr = $zeige['veranstnr'];
include_once("connect/con2.inc");
$update = mysql_query("UPDATE zielzeit SET ERGAKTIV='1' WHERE VNR='$veranstnr'");
}
include_once("connect/con2.inc");
//********************
$BILL = 0;
$PROJEKT = 15;
//********************
//--session für 4 Stunden aktiv--------------------
$datesession = date("Y-m-d H:i:s", time()+4*60*60);
$date_now = date("Y-m-d H:i:s");
$result = mysql_query("SELECT ANR,LID FROM zielzeit WHERE ERGAKTIV='1' AND STATUS='0' AND AKTIV='1'");
$num = mysql_num_rows($result);
while($zeige = mysql_fetch_assoc($result)){
$ANR = $zeige['ANR'];
$LID = $zeige['LID'];
$ausgabe = "sende Deine Startnummer...";
$MSGOUT = urlencode($ausgabe);
//--Eintrag in sessions------------------------------------------
$sms_session = mysql_query("INSERT INTO sessions (ANR,SESSLINK,GUELTIG) VALUES ('$ANR','zeiten.php','$datesession')");
//--Eintrag in smsout--------------------------------------------
$sms_backup = mysql_query("INSERT INTO smsout (UID,PW,PID,ANR,ZNR,MSG,ID,SZP,SMSC,DATE,BILL,Projekt) VALUES ('$UID','$UPW','$PID','$ZNR','$ANR','$MSGOUT','$ID','$SZP','$SMSC','$date_now','$BILL','$PROJEKT')");
$update2 = mysql_query("UPDATE zielzeit SET AKTIV='0' WHERE LID='$LID'");
$link2="UID=$UID&UPW=$UPW&PID=$PID&ZNR=$ANR&BILL=$BILL&MSG=$MSGOUT";
$output1=file("http://smserver.com/send.php?$link2");
usleep(3333);
}
mysql_close();
?> Das war nun der Cronjob, der die Teilnehmer benachrichtigt.
Mit usleep() wollt ich das ganze etwas abbremsen, damit der SMS-Server mitkommt...
Wenn nun eine SMS kommt wird die an folgendes Script weitergeleitet und dort verarbeitet: PHP-Code: <?php
include("connect/con1.inc.php");
$date_now = date("Y-m-d H:i:s");
$heute = date("Y-m-d");
$gestern = date("Y-m-d", time()-1*60*60*24);
$MSG = $_GET['MSG'];
//--Funktion zur entfernung von Leer, und Sonderzeichen wird inkludiert ----------
include("sonderzeichen.inc.php");
$STARTNR = sonderzeichen($MSG);
//*********
$BILL=0;
$PROJEKT=15;
//*********
//--Auslesen der Registrierungsdatenbank -----------------------------------
$result = mysql_query("SELECT VNR,LID,NN FROM zielzeit WHERE ANR='$ANR' and AKTIV='0' ORDER BY LID DESC")OR die(mysql_error());
$reihen = mysql_num_rows($result);
//-- Wenn mehr als ein Datensatz kommt hier weiter ----------------->>
if($reihen != 1){
while($zeige = mysql_fetch_assoc($result)){
$VNR = $zeige['VNR'];
$SATZ_ID = $zeige['LID'];
$NAME = $zeige['NN'];
include("connect/con2.inc.php");
$laufdatum = mysql_query("SELECT datum FROM veranstaltung WHERE veranstnr='$VNR'")OR die(mysql_error());
$datumcheck = mysql_fetch_assoc($laufdatum);
$eventdatum = $datumcheck['datum'];
//-- Wenn Eventdatum von heute oder gestern hier weiter --------------->>
if(($eventdatum == $heute) || ($eventdatum == $gestern)){
include("connect/con2.inc.php");
$zeiten = mysql_query("SELECT vorname,nachname,zeit,kmh,minkm FROM ergebnisse WHERE stnr like '$STARTNR' and nachname like '$NAME' ORDER BY veranstnr DESC LIMIT 1")OR die(mysql_error());
$num2 = mysql_num_rows($zeiten);
//-- Bei Rückgabe von 1 Datensatz hier weiter ----------------->>
if($num2 == 1){
$ergebnisse = mysql_fetch_assoc($zeiten);
$vn = $ergebnisse['vorname'];
$nn = $ergebnisse['nachname'];
$zeit = $ergebnisse['zeit'];
$kmh = $ergebnisse['kmh'];
$minkm = $ergebnisse['minkm'];
$ausgabe = "Name:".$vn." ".$nn."\nNr: ".$STARTNR."\nZeit: ".$zeit."\nkm/h: ".$kmh."\nmin/km: ".$minkm."\n";
$MSGOUT = urlencode($ausgabe);
include("connect/con1.inc.php");
//--Eintrag in smsout--------------------------------------------
$sms_backup = mysql_query("INSERT INTO smsout (UID,PW,PID,ANR,ZNR,MSG,ID,SZP,SMSC,DATE,BILL,Projekt) VALUES ('$UID','$UPW','$PID','$ZNR','$ANR','$MSGOUT','$ID','$SZP','$SMSC','$date_now','$BILL','$PROJEKT')");
$zlink = "UID=$UID&UPW=$UPW&PID=$PID&ZNR=$ANR&BILL=$BILL&MSG=$MSGOUT";
$zoutput = file("http://smserver.com/send.php?$link2");
//--STATUS wird auf 1 gesetzt als Sendebestätigung-------------------------------------
$status_backup = mysql_query("UPDATE zielzeit SET STATUS='1' WHERE LID='$SATZ_ID'");
mysql_close();
//-- Kommt mehr als ein Satz Fehlermeldung ------------------------->>
}else{
$error = "Abfrage ohne Ergebnis - Bitte senden Sie Ihre Startnummer in einigen Minuten erneut, es entstehen keine Kosten";
$MSGOUT = urlencode($error);
include("connect/con2.inc.php");
//--Eintrag in smsout-------------------------------------------->>
$sms_backup2 = mysql_query("INSERT INTO smsout (UID,PW,PID,ANR,ZNR,MSG,ID,SZP,SMSC,DATE,BILL,Projekt) VALUES ('$UID','$UPW','$PID','$ZNR','$ANR','$MSGOUT','$ID','$SZP','$SMSC','$date_now','$BILL','$PROJEKT')");
$zlink = "UID=$UID&UPW=$UPW&PID=$PID&ZNR=$ANR&BILL=$BILL&MSG=$MSGOUT";
$zoutput = file("http://smserver.com/send.php?$link2");
}
}
}
}else{
$zeige = mysql_fetch_assoc($result);
$VNR = $zeige['VNR'];
$SATZ_ID = $zeige['LID'];
$NAME = $zeige['NN'];
include("connect/con1.inc.php");
$zeiten = mysql_query("SELECT vorname,nachname,zeit,kmh,minkm FROM ergebnisse WHERE stnr like '$STARTNR' and nachname like '$NAME' ORDER BY veranstnr DESC LIMIT 1");
$num3 = mysql_num_rows($zeiten);
if($num3 == 1){
$ergebnisse = mysql_fetch_assoc($zeiten);
$vn = $ergebnisse['vorname'];
$nn = $ergebnisse['nachname'];
$zeit = $ergebnisse['zeit'];
$kmh = $ergebnisse['kmh'];
$minkm = $ergebnisse['minkm'];
$ausgabe = "Name:".$vn." ".$nn."\nNr: ".$STARTNR."\nZeit: ".$zeit."\nkm/h: ".$kmh."\nmin/km: ".$minkm."\n";
$MSGOUT = urlencode($ausgabe);
include("connect/con2.inc.php");
//--Eintrag in smsout-------------------------------------------->>
$sms_backup = mysql_query("INSERT INTO smsout (UID,PW,PID,ANR,ZNR,MSG,ID,SZP,SMSC,DATE,BILL,Projekt) VALUES ('$UID','$UPW','$PID','$ZNR','$ANR','$MSGOUT','$ID','$SZP','$SMSC','$date_now','$BILL','$PROJEKT')");
$zlink = "UID=$UID&UPW=$UPW&PID=$PID&ZNR=$ANR&BILL=$BILL&MSG=$MSGOUT";
$zoutput = file("http://smserver.com/send.php?$link2");
//--STATUS wird auf 1 gesetzt als Sendebestätigung------------------------------------->>
$status_backup = mysql_query("UPDATE zielzeit SET STATUS='1' WHERE LID='$SATZ_ID'");
mysql_close();
}else{
$error = "Abfrage ohne Ergebnis - Bitte senden Sie Ihre Startnummer in einigen Minuten erneut, es entstehen keine Kosten";
$MSGOUT = urlencode($error);
include("connect/con2.inc.php");
//--Eintrag in smsout-------------------------------------------->>
$sms_backup2 = mysql_query("INSERT INTO smsout (UID,PW,PID,ANR,ZNR,MSG,ID,SZP,SMSC,DATE,BILL,Projekt) VALUES ('$UID','$UPW','$PID','$ZNR','$ANR','$MSGOUT','$ID','$SZP','$SMSC','$date_now','$BILL','$PROJEKT')");
$zlink = "UID=$UID&UPW=$UPW&PID=$PID&ZNR=$ANR&BILL=$BILL&MSG=$MSGOUT";
$zoutput = file("http://smserver.com/send.php?$link2");
}
}
mysql_close();
?> Also, im voraus schonmal vielen Dank ! |