php.de

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

 
 
LinkBack (1) Themen-Optionen Thema bewerten
Alt 28.08.2004, 14:26  
Erfahrener Benutzer
 
Registriert seit: 21.01.2008
Beiträge: 595
themonk ist zur Zeit noch ein unbeschriebenes Blatt
Standard DB automatisch durchsuchen

Hallo
kent jemand ein Script das die Datenbank die ganze Zeit auf neue beiträge durchsucht?
ich wollte das wenn jemand was schreibt das es in einem andern fenster gleich angezeigt wird
themonk ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 28.08.2004, 16:50  
Gast
 
Beiträge: n/a
Standard

das sind ja gleich 3 wünsche auf einmal .. immer langsam.
dauernd die ganze db durchsuchen ist sicherlich unsinnig. definier doch mal
genau was passieren soll wenn. in was für nem anderen fenster? zudem
wirst du in der regel bei so nem fall probleme mit der client-server-
kommunikation kriegen.
 
Alt 28.08.2004, 17:04  
Gast
 
Beiträge: n/a
Standard

ein script hab ich nicht, aber das kannst du doch auch selbst schreiben...

du mußt nur auf der entsprechenden Seite abfragen, ob ein neuer beitrag dazu gekommen ist, so dass wenn jemand drauf geht gleich den neue beitrag angezeigt bekommt....


mfg bassel
 
Alt 28.08.2004, 18:14  
Erfahrener Benutzer
 
Registriert seit: 21.01.2008
Beiträge: 595
themonk ist zur Zeit noch ein unbeschriebenes Blatt
Standard

also es sollen 2 Frames sein einmal einer wos rein geschreiben wird und dann der frame wos ausgegeben wird also es soll so funktuioniern wie ein chat ich betrete die seite jemand anderes schreibt hallo in die db über den inputframe und alle die die seite offen haben sehen nun im Output fenster hallo
themonk ist offline  
Alt 28.08.2004, 19:44  
Gast
 
Beiträge: n/a
Standard

das wirste nicht schaffen. wie gesagt kommt hier client - server ins spiel.
du müsstest vom server aus jeden client anweisen dass er die seite refreshen
soll. was de machen kannst: ne statische seite generieren lassen und in dem
entsprechenden frame mit meta-refresh arbeiten. alles andere is ziemlich
aussichtslos.
 
Alt 28.08.2004, 19:53  
Erfahrener Benutzer
 
Registriert seit: 21.01.2008
Beiträge: 595
themonk ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hi
ich habe von einem PHP chat mal die output da wo es angezeigt wird kopiert
PHP-Code:
<?
ob_end_flush
();
$starttime=time();
INCLUDE 
"./include/configuration.inc.php";
$header = new EasyTemplate("$basepath/templates/outputheader.tpl");
$header -> assign("OUTPUTCOL","$defoutputcol");
$header -> assign("OUTPUTTEXTCOL","$defoutputtextcol");
$header -> assign("OUTPUTLINKCOL","$defoutputlinkcol");
$header -> assign("OUTPUTALINKCOL","$defoutputalinkcol");
$header -> assign("OUTPUTVLINKCOL","$defoutputvlinkcol");
if(
$autoscroll == "nein"){
$header -> assign("SCROLLING","onmouseover=\"scrolling=false\" onmouseout=\"scrolling=true\"");}
if(
$autoscroll == "ja"){
$header -> assign("SCROLLING","");}
$header -> assign("BGURL","$defoutputbgpic");
$header -> assign("BGFIX","$outputbgfixed");
$header -> assign("TITLE",$title);
$header -> easy_print();
$db10=new db_local;
$db10->query("UPDATE ".$chatprefix."chatusers SET lastaction='".time()."',away='0' WHERE nick='$chatuser'");
usleep(50000);
//$db11=new db_local;
$db10->query("SELECT maxaway,maxnoaway,maxposts,greeting,werbe_news,werbe_news_col FROM ".$chatprefix."chat_options");
$db10->next_record();
$maxaway2 $db10->record[maxaway];
$maxnoaway2 $db10->record[maxnoaway];
$maxposts2 $db10->record[maxposts];
$greeting $db10->record[greeting];
$chatnews $db10->record[werbe_news];
$chatnews_col $db10->record[werbe_news_col];
echo 
"<script language=\javascript\">
         function oefnefenster(lol)
        {
        window.open(lol, 'fenster', 'toolbar=no,location=no,scrollbars=yes,resizable=yes');
        }
        </script>"
;
        function 
Stream($chatuser,$chatroom) {
 global 
$host,$database,$user,$password,$stoolonginactive,$maxaway,$maxnoaway,$awayschutz,$chatprefix;
 if(
$chatuser) {
  
ignore_user_abort(1);
  
$PingTime=1;
  
$Ping=0;
  
$query3="SELECT lastaction,away,ignorelist2,streamabort FROM ".$chatprefix."chatusers where nick='$chatuser'";
  
$db = new db_local;
  
$db2 = new db_local;
  
// Aktueller Stand wird einmalig ausgelesen
  
$db->query("SELECT id from ".$chatprefix."chatmessages_$chatroom order by id desc limit 1");
  
$lastpos=$db->result();
  while(!
connection_aborted()) {
   
$db5= new db_local;
   
$db5 -> query("UPDATE ".$chatprefix."chatusers SET streamabort='0' WHERE nick='$chatuser'"); // stream ist da
   // Autokick
   
$db->query("SELECT lastaction,away,ignorelist2,streamabort,clockview,mode FROM ".$chatprefix."chatusers where nick='$chatuser'");
   
$db->next_record();
   
$clockview $db->record[clockview];
   
$time time();
   
$onl $time $db->record[lastaction];
   
$min $onl/60;
   
$min sprintf("%.0lf",$min);
   
$away $db->record[away];
   
$active1 $db->record[active];
   
//$db5->query("SELECT lastaction,away,ignorelist2,streamabort,clockview,mode FROM ".$chatprefix."chatusers where nick='$chatuser'");
   //$db5->next_record();
   
$mode $db->record[mode];
   
$gastmins=$time-$starttime;
   
$gastmins=$gastmins/180;
   
$ignorelist $db->record[ignorelist2];
   
$streamabort =  $db->record[streamabort];
   
$clockview =  $db->record[clockview];
   
$streamchk mktime() - $streamabort;
   if (
$active1 == '0') {
    
?>
    <script language="javascript">top.window.location.href="index.php?logout=autokick";</script>
    <?
    
exit;
   }
   else
   {
        if(
is_int($gastmins) && $mode == '-1')
        {
        
$db_guest_mins=new db_local;
        
$db_guest_mins->query("INSERT INTO ".$chatprefix."chatmessages_$chatroom VALUES ('','privatemessagestring $chatuser <font color=#ff0000>Nachricht vom Chatbot: $chatuser bitte regestriere Dich, damit Du alle Funktionen des Chats benutzen kannst.(Klicke [url="index.php"]hier[/url].)</font>
','$chatuser','$date','$usersip','$usersxforwarded')"
);
        
sleep(1);
        }
   }
   if((
$min >= "$maxnoaway2" && $away == "0") || $min >= "$maxaway2") {
    if (
$mode >= '2' && $awayschutz=="ja") {
    } else {
     if (
$active1 >= '1') {
      
$db5=new db_local;
      
$db6=new db_local;
      
$db5->query("UPDATE ".$chatprefix."chatusers SET active='0', away='0', id='0', streamabort='0' WHERE nick = '$chatuser'");
      
$db6->query("INSERT INTO ".$chatprefix."chatmessages_$chatroom VALUES ('','<font color=#ff0000>$schatbotmessage $chatuser $sautokick</font>
','$chatuser','$date','$usersip','$usersxforwarded')"
);
      
$db5->query("DELETE FROM ".$chatprefix."security WHERE nick = '$chatuser'");
      
?>
      Du warst zulange Inaktiv ! <script language="javascript">top.window.location.href="index.php?logout=autokick";</script>
      <?
      
exit;
     }
    }
   }
   
// Ende Autokick
   // MSGs anzeigen
   // Aktuelle Position auslesen
   
$db->query("SELECT id from ".$chatprefix."chatmessages_$chatroom order by id desc limit 1");
   
$pos=$db->result();
   
// Mit alter Position vergleichen
   
if($lastpos $pos) {
    
$query2="SELECT message,user,datum FROM ".$chatprefix."chatmessages_$chatroom WHERE id > $lastpos";
    
$db->query($query2);
    
// Alle hinzugekommenen MSGs durchlaufen
    
while ($db->next_record()) {
     
$text=stripslashes($db->record[message]);
     
$schreiber=$db->record[user];
     
#$Text=$text;
     #INCLUDE"./include/bbcode.php";
     #$text=$Text;
     // Normale MSGs
     #Hier ignore Script einfügen/by Kaio
     
if($schreiber=="") {
      
$schreiber="scheißdrecksverdammel";
     }
     if(
eregi($schreiber,$ignorelist)) {
     } else {
      if(!
eregi("privatemessagestring",$text)) {
       echo 
"$text";
      }
      
// Private MSGs
       
else if(eregi("privatemessagestring $chatuser ",$text)) {
        
$text=eregi_replace("privatemessagestring $chatuser ","",$text);
        echo
" $text";
       }
      }
     
#Hier ende Ignore Script
     
}
     
$lastpos=$pos;
    } else {
     echo 
" ";
    }
    
// Neue Zeilen oder Leerzeichen an den Browser schicken
    
flush();
    
usleep(500000);
   } 
// while connection
   
$db->close();
  } 
//if user
// Function

//Autodel by progressive
 
$db10->query("SELECT count(id) from ".$chatprefix."chatmessages_$chatroom");
 
$anzposting=$db10->result();
 
$delposting $maxposts2;
  if (
$anzposting>=$delposting) {
  
$db10->query("SELECT id from ".$chatprefix."chatmessages_$chatroom ORDER BY id DESC LIMIT 1");
  
$db10->next_record();
  
$id=$db10->record[id];
  
$id $id 2//die letzten zeile stehen lassen
  
$db10->query("DELETE LOW_PRIORITY FROM ".$chatprefix."chatmessages_$chatroom WHERE id<'$id'");
  
$db10->query("OPTIMIZE TABLE ".$chatprefix."chatmessages_$chatroom");
 }
 
//Center Welcome Msg by Kaio
 
if($welcomecenter=="ja")
 {
 echo 
"<center>";
 }




//Autodel by progressive
if (!isset($clear) || $clear!=|| !eregi("sep_",$chatroom)) { // Zeigt die Meldungen nicht bei einem /clear-Befehl an
 
if($greeting=="1") {
  echo 
$welcomemsg2;
 } else {
?>
<SCRIPT language=JavaScript><!--
// begin script
function display_title() {
date = new Date();
var hours = date.getHours();
var message = '';
if (hours >= 0) { time_of_day = '<? echo $morningmsg1 ?>,'; message='Morning Message';}
if (hours >= 6) { time_of_day = '<? echo $morningmsg2 ?>,'; message='Morning Message';}
if ((hours >= 12) && (hours < 17)) { time_of_day = '<? echo $daymsg2 ?>,'; message='Afternoon Message'}
if (hours >= 17) { time_of_day = '<? echo $eveningmsg1 ?>,'; message='Evening Message';}
if (hours >= 22) { time_of_day = '<? echo $eveningmsg2 ?>,'; message='Evening Message';}
document.write('' + time_of_day + '');
}
// document.write('' + message + '');
//end display title
// --></SCRIPT>
<SCRIPT language=javascript>
<!-- begin script
display_title();
//--></SCRIPT>
<?
echo $welcomemsg;
}
$jetztip=getenv("REMOTE_ADDR");
//Was für user sind Online anzeige//
$db = new db_local;
$db2 = new db_local;
$db2->query("SELECT count(nick) FROM ".$chatprefix."chatusers WHERE mode like '3' AND active='1'");
$webbie_online=$db2->result();
$db2->query("SELECT count(nick) FROM ".$chatprefix."chatusers WHERE active='1'");
$usersonline=$db2->result();
if(
$db2->result == 1)
{
$oneormoreusers="ist";}
else{
$oneormoreusers="sind";}
if (
$webbie_online=='0') {
 
$webbie_online="0";
}
echo 
"Zurzeit $oneormoreusers <font color=red>$webbie_online</font> Webmaster, ";
$db2->query("SELECT count(nick) FROM ".$chatprefix."chatusers WHERE mode like '2' AND active='1'");
$admins_online=$db2->result();
if (
$admins_online=='0'){
 
$admins_online="0";
}
if (
$admins_online=='1') {
 
$adminbit="Admin";
} else {
 
$adminbit="Admins";
}
echo 
"<font color=red>$admins_online</font> $adminbit, ";
$db2->query("SELECT count(nick) FROM ".$chatprefix."chatusers WHERE mode like '1' AND active='1'");
$vip_online=$db2->result();
if (
$vip_online=='0') {
 
$vip_online="0";
}
if (
$vip_online=='1') {
 
$vipbit="VIP";
} else {
 
$vipbit="VIPs";
}
echo 
"<font color=red>$vip_online</font> $vipbit, ";
$db2->query("SELECT count(nick) FROM ".$chatprefix."chatusers WHERE mode like '0' AND active='1'");
$user_online=$db2->result();
if (
$user_online=='0') {
 
$user_online="0";
}
if (
$user_online=='1') {
 
$userbit="Normaler";
} else {
 
$userbit="Normale";
}
echo 
" <font color=red>$user_online</font> $userbit User ";
$db2->query("SELECT count(nick) FROM ".$chatprefix."chatusers WHERE mode like '-1' AND active='1'");
$gast_online=$db2->result();
if (
$gast_online=='0') {
 
$gast_online="0";
}
if (
$gast_online=='1') {
 
$gastbit="Gast";
} else {
 
$gastbit="Gäste";
}
echo 
"und <font color=red>$gast_online</font> $gastbit Online.
[b]<font color=$chatnews_col>$chatnews</font>[/b]
"
;
//noch Welcome Center adon by kaio
if($welcomecenter=="ja")
 {
 echo 
"</center>";
 }

// Gespeicherte Msgs anzeigen
$db = new db_local;
$db2 = new db_local;
$db->query("SELECT message,id FROM ".$chatprefix."msgs where sentto='$chatuser' ORDER BY datum asc,uhrzeit asc");
$num $db->num_rows();
if(
$num 0) {
echo 
"$fontprefixa Es wurden $num ungelesene Nachrichten an dich geschickt während du nicht da warst :</font>

"
;
 while (
$db->next_record()) {
  
$message $db->record[message];
  
$id $db->record[id];
  print 
$message;
  
$db2->query("delete from ".$chatprefix."msgs where id='$id'");
 }
}
// von clear
$jetztip=$HTTP_SERVER_VARS["REMOTE_ADDR"];
$db = new db_local;
$db->query("SELECT pass,lastip,id FROM ".$chatprefix."chatusers WHERE nick = '$chatuser'");
$db->next_record();
$dbid=$db->record[id];
$lastip=$db->record[lastip];
if (
$lastip==$jetztip && $chatid==$dbid) {
 
ignore_user_abort(1);
 
$db -> query("UPDATE ".$chatprefix."chatusers SET streamabort='0' WHERE nick='$chatuser'"); // stream ist da
if($last_ten=="ja"// die letzten 10 Zeilen Addon
{
 
####before stream
 
echo "<font size=-2>[b]<u>Die letzten 10 Zeilen:</u>[/b]</font>
"
;
 
$db_ten=new db_local;
  
$db_readten=new db_local;
 
$db_ten->query("SELECT id from ".$chatprefix."chatmessages_$chatroom order by id desc limit 1");
  
$lastpos=$db_ten->result()-"11";
  
$db_readten->query("SELECT * FROM ".$chatprefix."chatmessages_$chatroom WHERE id > '$lastpos' ");
  
$zaehler="0";
  while(
$db_readten->next_record() && $zaehler <= '10')
  {
  
$text=$db_readten->record[message];
  if(!
eregi("privatemessagestring",$text) && !eregi("<script language=\"javascript\">",$text))
  {
  
$text=stripslashes($text);
  echo 
"$text";
  }
  else { }
  
$zaehler++;
  }
  echo 
"<font color=ff0000>-----------------------------------------------------------------------------------------------------------------------------------</font>
"
;
  
########
}
 
Stream($chatuser,$chatroom); //stream starten
 //stream beendet..
 
sleep(5);
 if (
connection_aborted()) {
  
$db->query("SELECT active FROM ".$chatprefix."chatusers WHERE nick = '$chatuser'");
  
$db->next_record();
  
$aktiv=$db->record[active];
  if (
$aktiv == 1) {
   
$jetzt mktime();
   
$db -> query("UPDATE ".$chatprefix."chatusers SET streamabort='$jetzt' WHERE nick='$chatuser'");
  }
 }
$db10->close();
$db_guest_mins->close();
$db5->close();
$db6->close();
$db2->close();
$db->close();
} else {
 echo 
"Fehler, Chatid Stimmt nicht mit der Userid überein.
Möglicherweise wurde Ihre Verbindung zum Server Unterbrochen, Loggen sie sich Bitte Erneut ein!"
;
}
?>
quelle mymazenphp
ich konnte damit garnichts anfangen vielleicht kommt ihr ja weiter in der datei ist vieles dirn wie autokick und sowas hatte den chat mal instaliert und da funktioniert das mit dem durchsuchen nach neuen beiträgen
themonk ist offline  
Alt 29.08.2004, 19:42  
Erfahrener Benutzer
 
Registriert seit: 21.01.2008
Beiträge: 595
themonk ist zur Zeit noch ein unbeschriebenes Blatt
Standard

das hier müssten dei zeieln sein wo die db durchsucht wird
PHP-Code:
   $db->query("SELECT id from ".$chatprefix."chatmessages_$chatroom order by id desc limit 1"); 
   
$pos=$db->result(); 
   
// Mit alter Position vergleichen 
   
if($lastpos $pos) { 
    
$query2="SELECT message,user,datum FROM ".$chatprefix."chatmessages_$chatroom WHERE id > $lastpos"
    
$db->query($query2); 
    
// Alle hinzugekommenen MSGs durchlaufen 
    
while ($db->next_record()) { 
     
$text=stripslashes($db->record[message]); 
     
$schreiber=$db->record[user]; 
     
#$Text=$text; 
     #INCLUDE"./include/bbcode.php"; 
     #$text=$Text; 
     // Normale MSGs 
     #Hier ignore Script einfügen/by Kaio 
     
if($schreiber=="") { 
      
$schreiber="scheißdrecksverdammel"
     } 
     if(
eregi($schreiber,$ignorelist)) { 
     } else { 
      if(!
eregi("privatemessagestring",$text)) { 
       echo 
"$text"
      } 
      
// Private 
und das müsste auch noch dazu gehörn
PHP-Code:
Stream($chatuser,$chatroom); //stream starten 
//stream beendet.. 
sleep(5); 
if (
connection_aborted()) { 
  
$db->query("SELECT active FROM ".$chatprefix."chatusers WHERE nick = '$chatuser'"); 
  
$db->next_record(); 
  
$aktiv=$db->record[active]; 
  if (
$aktiv == 1) { 
   
$jetzt mktime(); 
   
$db -> query("UPDATE ".$chatprefix."chatusers SET streamabort='$jetzt' WHERE nick='$chatuser'"); 
  } 
könnt ihr damit mehr anfangen?
themonk 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

LinkBacks (?)
LinkBack to this Thread: http://www.php.de/php-tipps-2004/7874-db-automatisch-durchsuchen.html
Erstellt von For Type Datum
Suchen Sie im ganzen WorldWideWeb auf Croole. This thread Refback 03.12.2008 01:11

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Termine nach Ablauf automatisch aus der DB löschen oder ausblenden Teela PHP Tipps 2008 4 24.03.2008 12:29
"[code]" automatisch ins textfeld einfuegen Dilandau HTML, Usability und Barrierefreiheit 14 23.01.2007 20:10
Post Formular automatisch weiterleiten mansaylon PHP Tipps 2006 7 31.03.2006 10:46
deckkraft mit php automatisch ändern TaStEn PHP Tipps 2006 3 25.03.2006 20:46
Datei durchsuchen Wöllchen Beitragsarchiv 3 02.03.2006 22:23
radio button automatisch setzen HTML, Usability und Barrierefreiheit 2 11.10.2005 07:12
XML Tags automatisch schließen? tekknotrip PHP Tipps 2005-2 4 14.09.2005 11:51
Automatisch E-Mail Adressen erstellen lassen? Beitragsarchiv 5 24.08.2005 15:36
Textdatei durchsuchen CSS PHP Tipps 2005 3 26.02.2005 15:31
[Erledigt] Text automatisch einfügen lassen? PHP Tipps 2005 9 12.02.2005 20:22
bildgröße automatisch anpassen PHP Tipps 2004-2 9 10.12.2004 13:39
array auch automatisch erzeugt wenn.. PHP Tipps 2004-2 4 04.12.2004 12:33
Verzeichnis nach zuletzt erstelltem Subdirectory durchsuchen PHP-Fortgeschrittene 8 19.10.2004 14:03
[Erledigt] Zeilenumbrüche aus textarea automatisch ausgeben PHP Tipps 2004 7 22.08.2004 12:39
große XML-Datei in annehmbarer Zeit durchsuchen PHP-Fortgeschrittene 5 02.06.2004 15:44

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mymazenphp fehler db, script schreiben seite automatisch durchsuchen, fehler, chatid stimmt nicht mit der userid überein., db durchsucht scripte, deutsche bahn new date chat site, insert into \.$chatprefix.\, clockview in php

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:40 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.