CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren |
24.01.2005, 15:54:07
|
Anfänger
|
|
Registriert seit: Feb 2004
Beiträge: 130
|
|
Frage zur unnötigen überlasstsung mit einer mysql abfrage
Hi ich stell die Frage mal kurz und knackig. Ich hab einen Kalender programmiert und der zeigt mir die daten von 1 Jahr an. Er überprüft immer ob ein termin an dem tag ist.Wenn ja markiert er den Tag Rot. Das Problem seh ich nur auch wenn alles schnell lädt. Er muss 365 sql abfragen machen kann man das nicht irgendwie noch anders lösen oder ist das nicht schlimm weil da so ein Server lockker aushält?
__________________
"Wer im Leben kein Ziel hat, verläuft sich."
www.bedtke.com - Zitate, Urlaubs- und Überstundenplaner, Webadressbuch und vieles mehr!
|
24.01.2005, 16:08:45
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
|
|
Du bist ab sofort mein persönlicher Held! Habe noch nie von so vielen Abfragen auf einer Seite gehört... ;)
Meine Idee:
Alle Termine des Jahres Abfragen und dann so:
PHP-Code:
$result=mysql_query('SELECT datum, termin
FROM tab
WHERE YEAR(datum)=1975');
while ($data=mysql_fetch_assoc($result)) {
$tag=Tag_aus_datum($data['datum']);
$monat=Monat_aus_datum($data['datum']);
$temp[$monat][$tag]=$data['termin'];
}
// Hier die Ausgabe des Kalenders
while (irgendwas) {
if (isset($temp[$monat][$tag])) {
echo $temp[$monat][$tag];
}
}
Einleuchtend?
|
24.01.2005, 21:40:01
|
Anfänger
|
|
Registriert seit: Feb 2004
Beiträge: 130
|
|
also *g*
also falls du mir das nicht glaubts mit den mysql abfragen hier siehst du es
http://verrat.ve.ohost.de/calender
und hier ist nochmal der quellie dazu also ich zeig dir jetzt nur den Forschleifenbereich wo die sql abfrage stattfinden, damit du dich nicht totlesen musst.
PHP-Code:
for($iyz=0; $iyz<=3; $iyz++){
echo("<tr>");
for($im=0; $im<="2"; $im++){
echo("<td>");
echo("<table border>");
$aktuell=date("n",$startday);
echo("<tr>");
echo("<td colspan=7>$monat[$imm] </td>");
$imm++;
echo("</tr>");
echo("<tr>");
echo("<td>Mo</td>");
echo("<td>Di</td>");
echo("<td>Mi</td>");
echo("<td>Do</td>");
echo("<td>Fr</td>");
echo("<td>Sa</td>");
echo("<td>So</td>");
echo("</tr>");
for($i=1; $i<= 6; $i++){
echo("<tr>");
for($iw=1; $iw<=7; $iw++){
$dateformat=date("j", $startday);
$aktueller=date("n",$startday);
$startwochentag=date("w", $startday);
if($startwochentag == 0){
$startwochentag=7;
}
if($aktueller != $aktuell OR $startwochentag != $iw){
echo("<td align=right> </td>");
}else{
$checksql = "SELECT * FROM kalender WHERE userid='100' AND DATE_FORMAT(datum, '%d%m%Y')='" . date('dmY', $startday) . "'";
$querycheck=mysql_query($checksql);
$num_check=mysql_num_rows($querycheck);
if($num_check > 0){
echo("<td onMouseOver=this.bgColor='#008284' onMouseOut=this.bgColor='#FFFFFF' align=right><a href=edit.php?datum=$startday><b><font color=#FF0000>$dateformat</font></b></a></td>");
}else{
echo("<td onMouseOver=this.bgColor='#008284' onMouseOut=this.bgColor='#FFFFFF' align=right><a href=edit.php?datum=$startday>$dateformat</a></td>");
}
$startday=strtotime("+1 day", $startday);
} /* ende for Tag */
} /* ende for Woche */
echo("</tr>");
} /* ende for Monat */
echo("</table>");
echo("</td>");
} /* ende for, Zeigt drei Monate pro Spalte an */
echo("</tr>");
} /* ende for Quartal, wechselt nach drei Monaten die Zeile */
Werde mir deine Variante mal anschauen. Danke nochmal!
__________________
"Wer im Leben kein Ziel hat, verläuft sich."
www.bedtke.com - Zitate, Urlaubs- und Überstundenplaner, Webadressbuch und vieles mehr!
|
24.01.2005, 21:45:25
|
Anfänger
|
|
Registriert seit: Feb 2004
Beiträge: 130
|
|
jo
jo danke hab gerade dein ding da mal gelesen mir ist aber noch ne andere idee eingefallen, der Kalender wird mit Benutzerlogin sein, daher muss ich in meiner sqlabfrage noch die userid einarbeiten usw.
also ich hab mir gedacht
$select="SELECT * FROM kalender WHERE userid='$_SESSION[userid]' and YEAR(datum)='$aktuellesjahr'";
und das ich die ausgelesen werte in ein array packe und das array dann immer durchsuche mit array_search.
Was sagst du dazu und natürlich alle anderen Mitleser.
__________________
"Wer im Leben kein Ziel hat, verläuft sich."
www.bedtke.com - Zitate, Urlaubs- und Überstundenplaner, Webadressbuch und vieles mehr!
|
25.01.2005, 07:22:57
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
|
|
Nach was suchst Du mit array_search()?
|
25.01.2005, 08:53:59
|
Anfänger
|
|
Registriert seit: Feb 2004
Beiträge: 130
|
|
ja ich durchsuche das array nach einen datum.
ja ich durchsuche das array nach einen datum.
__________________
"Wer im Leben kein Ziel hat, verläuft sich."
www.bedtke.com - Zitate, Urlaubs- und Überstundenplaner, Webadressbuch und vieles mehr!
|
25.01.2005, 08:58:23
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
|
|
Da es vermutlich maximal 365 Einträge sein können, sollte die Performance das ohne weiteres mitmachen, aber unnötig ist es trotzdem.
Was gefällt Dir denn nicht an meinem Vorschlag? Ein isset() ist garantiert flotter als ein array_search()!
|
25.01.2005, 12:53:35
|
Anfänger
|
|
Registriert seit: Feb 2004
Beiträge: 130
|
|
jo gut
jo gut hast recht hab mich auch noch nicht so viel mit isset beschäftigt. Sag mal wie ist das denn welche grenzen hat denn so ein sql server?
__________________
"Wer im Leben kein Ziel hat, verläuft sich."
www.bedtke.com - Zitate, Urlaubs- und Überstundenplaner, Webadressbuch und vieles mehr!
|
25.01.2005, 12:58:30
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
|
|
Es gibt ein paar technisch bedingte Grenzen. Dateigrößen, adressierbare Bereiche, usw. Das steht irgendwie in den Dokumentationen zum Produkt.
Und wann das Ding unter seiner Last zusammenbricht ist abhängig vom Server/von den Servern, die die Last zu bewältigen haben und von der Konfiguration dieser.
|
25.01.2005, 21:40:46
|
Anfänger
|
|
Registriert seit: Feb 2004
Beiträge: 130
|
|
aber
aber jetzt mal erlich diese 365 abfragen sollten doch eigentlich keine wirkliche belasstung darstellen oder?
__________________
"Wer im Leben kein Ziel hat, verläuft sich."
www.bedtke.com - Zitate, Urlaubs- und Überstundenplaner, Webadressbuch und vieles mehr!
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 13:06:05 Uhr.
|