php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 23.04.2005, 13:44  
Gast
 
Beiträge: n/a
Standard My SQL Abfrage & Ausführung per Cronjob

Dieses Script wird jeweils um 00.00 per Cronjob ausgeführt.

Das Script löscht zum einen alle Top User und listet die neuen Top User an Hand der Aktuellen Punkte auf.

Zum anderen bekommen alle User mit mehr als 300 Punkte eine free SMS gut geschrieben...

Ich möchte gerne eine Ergänzung für die Top User einfügen...

Es soll eine Abfrage zur Tabelle topUser gestartet werden und User von Platz 1 bis 5 die schon hier gelistet sind vom Vortag sind sollen nicht erneut wieder in der aktuellen Top User Liste gelistet werden.

Die Abfrage und Bedingung muss natürlich im Vorfeld der aus Führung zur Auflistung der akuellen Top Usterliste passieren ansonsten stehen die Top User nämlich wieder wieder oben falls Sie die Punkte dazu haben für die Ränge ...

Wie und wo muss ich die Abfrage und Bedingung einbauen?

Vielen Dank für eure Hilfe ....


Hier das komplette Script:
-------------------------------------------------------------------------------------

Code:
#!/usr/bin/perl

$path='/homepages/10/d105218769/htdocs/cgi-bin';
$emailspeichernin="/homepages/10/d105218769/htdocs/data";

use DBI ();

$database     = '000000000:localhost:000';
$dbuser         = '000000000000';
$dbpassword     = '000000000000000';

# 1 SMS pro erreichte Punkte z.B. 1000 ... 

$smsbeipunkte=300;

######### Datenbank connecten

print "Content-type: text/html\n\n";

&dbconnect;


$anfrage = "DELETE FROM Topuser";
datenbank($anfrage);

$anfrage = "DELETE FROM bewertunglock";
datenbank($anfrage);

$anfrage = "SELECT * FROM Userdaten where 1 ";
datenbank($anfrage);

$ergebnisse = $sth->fetchall_arrayref( { anznummer => 1, punkte => 1 } );
foreach(@$ergebnisse) 
   { 
	# Alle Userdaten auf Punktzahl prüfen

	$smsgutschrift=0;

	$anznummer = $_->{anznummer}; 
   	$punkte= $_->{punkte}; 


	
	if ($punkte >= $smsbeipunkte)
	{
		if ($punkte >= 300) { $smsgutschrift=1; }
		if (($punkte < 300))  { $smsgutschrift=0; }
		
		# $smsgutschrift=int(($punkte/$smsbeipunkte) - 0.5); # -0.5 wegen der aufrundung auch wenn keine volle summe erreicht ist
		
		$anfrage = "SELECT guthaben FROM smskonten where user='$anznummer'";
		datenbank($anfrage);
		$ergebnisse1 = $sth->fetchall_arrayref( { guthaben => 1 } );
		foreach(@$ergebnisse1) 
   		{ 
			$guthaben= $_->{guthaben};
			$guthaben=$guthaben+$smsgutschrift;
		
			$anfrage = "UPDATE smskonten set guthaben='$guthaben' where user='$anznummer'";
			datenbank($anfrage);

			# Haupt-Serverguthaben aktualisieren

			$anfrage = "SELECT guthaben FROM smsserverguthaben where id='1'";
			datenbank($anfrage);
			$ergebnisse2 = $sth->fetchall_arrayref( { serverguthaben => 1 } );
			foreach(@$ergebnisse2) 
   			{ 
				$serverguthaben= $_->{serverguthaben};
				$serverguthaben=$serverguthaben-$smsgutschrift;
				
				$anfrage = "UPDATE smsserverguthaben set guthaben='$serverguthaben' where id='1'";
				datenbank($anfrage);
			
			}
		

		}
		
	}

   }

   

$anfrage = "SELECT * FROM Userdaten order by punkte DESC LIMIT 0,60 ";
datenbank($anfrage);

$ergebnisse = $sth->fetchall_arrayref( { anznummer => 1, punkte => 1 } );
foreach(@$ergebnisse) 
   { 
   $anznummer = $_->{anznummer}; 
   $punkte= $_->{punkte}; 
   
	$anfrage = "INSERT INTO Topuser (anznummer, punkte) VALUES ('$anznummer','$punkte')";
	datenbank($anfrage);
    
	# Zum Ausschliessen von Topusern -> Nummer ändern
	#$anfrage = "DELETE FROM Topuser where anznummer='1'";
    #datenbank($anfrage);
	
	
   }

$anfrage = "SELECT * FROM Userdaten order by anznummer DESC";
datenbank($anfrage);

@allusers=();
@emails=();


$ergebnisse = $sth->fetchall_arrayref( { anznummer=>1, email=>1, punkte => 1 } );
foreach(@$ergebnisse) 
   { 
   $anznummer = $_->{anznummer}; 
   $email=$_->{email};
   push(@emails,"$email");
   }
   
open(db,">$emailspeichernin/email.dat");
foreach $zeile (@emails)
{
print db "$zeile\n";
}
close(db);


$anfrage = "UPDATE Userdaten SET punkte='0' WHERE 1";
datenbank($anfrage);
 
&dbdisconnect;

exit;

################## subs


 
sub dbconnect
{
$dbhandle = DBI->connect('DBI:mysql:'.$database, $dbuser, $dbpassword ) or die "Unable to connect to Contacts Database: $dbhandle->errstr\n"; 

return;
}


sub datenbank
{
my ($anfrage)=@_;
$sth= $dbhandle->prepare( $anfrage ) or die "Unable to execute query: $dbhandle->errstr\n";  
$dsnum=$sth->execute or die "Unable to execute query: $dbhandle->errstr\n";
return;
}

sub dbdisconnect
{
$sth->finish() or die "Unable to connect to Contacts Database: $dbhandle->errstr\n";
$dbhandle->disconnect() or die "Unable to connect to Contacts Database: $dbhandle->errstr\n";
return;
}
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 23.04.2005, 16:08  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

Der Beitrag wurde verschoben, wegen...
... Postings im falschen Forum.

Bemerkung:
Die gestellte Frage entspricht nicht dem Wissensstand eines/einer Fortgeschrittenen.

moved to PHP - Anfänger
__________________
mod = master of disaster
Waq 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
Abfrage von einer Abfrage Datenbanken 5 27.01.2011 23:31
mysql abfrage in Schleife havok PHP Tipps 2006 6 09.05.2006 08:39
CronJob für Abfrage Sebja PHP-Fortgeschrittene 6 23.04.2006 19:09
abfrage begrenzen Cyrus Datenbanken 4 26.10.2005 11:29
mysql abfrage über 4 Tabelle - bis 3 geht, bei der 4. habert Datenbanken 2 08.09.2005 11:59
[Erledigt] IF() abfrage in variable packen PHP Tipps 2005 14 01.04.2005 17:23
Abfrage von Char-Feldern Datenbanken 9 04.02.2005 14:06
[Erledigt] SQL Abfrage funzt nicht Datenbanken 2 04.02.2005 11:09
[Erledigt] Mysql Abfrage Problem! PHP-Fortgeschrittene 5 27.11.2004 10:22
Abfrage funktioniert zwar, aber nicht korrekt Datenbanken 2 16.08.2004 09:10
2 Tabellen 1 Abfrage nilsfeld Datenbanken 6 11.08.2004 11:18
Abfrage aus DB noch mal ausgeben und Abfrage aus mehrern Tab PHP Tipps 2004 4 12.07.2004 15:00
komplizierte mySQL Abfrage Datenbanken 6 25.06.2004 15:34
[Erledigt] Fehlerhafte Abfrage ? Datenbanken 15 24.06.2004 17:10
[Erledigt] mysql Abfrage Datenbanken 5 18.06.2004 14:16

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
cronjob datenbank aktualisieren, http://www.php.de/php-tipps-2005/21798-my-sql-abfrage-ausfuehrung-per-cronjob.html, cronjob mysql, mysql abfrage cronjob, cronjob mysql query, cronjob sql, sql job uhrzeit einschränken, cronjob auf sql express, sql query cronjob, sql abfrage mail, cronjob aktualisieren db, cronjob sql query, mysql cronjob, mysql query cronjob, cronjob db abfrage, sql cronjob, sql datenbank abfrage als mail schicken mit cronjob, linux cronjob mit sql abfrage, punkte einer user db abfragen, cron sql db

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