mySql Abfrage für Irc bot

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Mindscape
Mitglied
Beiträge: 33
Registriert: 15.01.2004 02:43
Wohnort: Ulm
Kontaktdaten:

mySql Abfrage für Irc bot

Beitrag von Mindscape »

Folgendes Problem.
Ich bekomme von einem Bot über eine Url folgenden Code geliefert.

Code: Alles auswählen

$irc_info = array(
  "channel" => "#Hexen-Avalon",
  "user" => 2,
  "owner" => 1,
  "admins" => 0,
  "ops" => 0,
  "halfops" => 0,
  "voices" => 0,
  "regulars" => 1,
  "userpeak" => 2,
  "topic" => ""
);
Einen PHP Code um das ganze einzubinden habe ich auch schon.
Dieser sieht so aus.

Code: Alles auswählen

<body>    
<?php    
  
$fp = fopen("http://webeye.euirc.net/infopanel/?request=Hexen-Avalon&key=hex","r");  
$fp_value = fread($fp,32768);  
$fp_value = preg_replace("°[^a-z] = °",'" => ',$fp_value);  
fclose($fp);  
  
$fp_who  = fopen("http://webeye.euirc.net/infopanel/?request=Hexen-Avalon&key=hex&type=who","r");  
$fp_who_value = fread($fp_who,32768);  
fclose($fp_who);  
  
eval ($fp_value);  // macht array $irc_info verfügbar  
eval ($fp_who_value); // macht array $irc_names verfügbar  
  
$counter = 1;  
$maxusersperrow = 4;  
echo "<center><br><b>folgende leute sind im channel:</b> <br><br>";    
while (list(,$thisusername) = each($irc_names)) {            
     echo $thisusername;    
     if ($counter == $maxusersperrow) {  
          echo "<br>";  
          $counter = 0;            
     } else {  
          echo " &nbsp;-&nbsp; ";  
     } 
     $counter++;    
}    
echo "<br><br>";  
echo "channel: ".$irc_info['channel']."<br>";  
echo "user: ".$irc_info['user']."<br>";  
echo "founder: ".$irc_info['owner']."<br>";  
echo "admins: ".$irc_info['admins']."<br>"; 
echo "operator: ".$irc_info['ops']."<br>";  
echo "halfops: ".$irc_info['halfops']."<br>"; 
echo "voices: ".$irc_info['voices']."<br>";  
echo "gaeste: ".$irc_info['regulars']."<br><br>"; 
echo "Unser topic: ".$irc_info['topic']."<br>";  
?>  </center>  
</body> 
Das Problem ist wenn ich diesen Code ins Portal einbaue und der Bot ist nicht verfügbar(URL) gibts ne saftige Fehlermeldung.
Nun zu der Idee:
Kann man nicht das ganze in der Datenbank zwischenspeichern und da die informationen abholen wenn der Bot mal nicht verfügbar ist und somit die Fehlermeldung vermeiden ? :-?
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Ja, kann man.
Mindscape
Mitglied
Beiträge: 33
Registriert: 15.01.2004 02:43
Wohnort: Ulm
Kontaktdaten:

Beitrag von Mindscape »

Ich habe mich anhand von tutorials daran versucht.
Leider ohne erfolg.
So langsam verzweifle ich.
Kann mir mal jemand nen Denkanstoss geben wie ich da anfangen soll ?

Schon mal Danke :)
Benutzeravatar
Mister_X
Ehemaliges Teammitglied
Beiträge: 7102
Registriert: 24.05.2001 02:00
Wohnort: Augsburg

Beitrag von Mister_X »

Es wäre eher informativ, was du schon gemacht hast und wo es jetzt hängt. Ansonsten klingt das nämlich so, als ob du nichts gemacht hast und jetzt hoffst, dass es dir jemand fertig programmiert :roll: (bitte nicht falsch verstehen :))

Du hast bereits eine Tabelle in deiner MySQL Datenbank erstellt?
Wie du mit einem Skript eine Verbindung zur MySQL Datenbank herstellst und dort dann vorhandene Daten änderst, bzw. neue einfügst weißt du bereits?
Wenn nein, sei dir dieses Tutorial ans Herz gelegt: http://www.schattenbaum.net/php/mstart.php
Mindscape
Mitglied
Beiträge: 33
Registriert: 15.01.2004 02:43
Wohnort: Ulm
Kontaktdaten:

Beitrag von Mindscape »

Naja wenn mir das jemand fertig liefert habe ich ja nichts gelernt :oops:
War eigentlich nicht zweck der übung :)
Ja die Tabelle habe ich erstellt.
Ich habe mal versucht das mit folgendem Code in die db zu schreiben:

Code: Alles auswählen

<?php    
include("db.php");
$fp = fopen("http://webeye.euirc.net/infopanel/?request=Hexen-Avalon&key=hex","r");  
$fp_value = fread($fp,32768);  
$fp_value = preg_replace("°[^a-z] = °",'" => ',$fp_value);  
fclose($fp); 

$fp_who  = fopen("http://webeye.euirc.net/infopanel/?request=Hexen-Avalon&key=hex&type=who","r");  
$fp_who_value = fread($fp_who,32768);  
fclose($fp_who);

eval ($fp_value);  // macht array $irc_info verfügbar  
eval ($fp_who_value); // macht array $irc_names verfügbar  

$fp_value = "INSERT INTO irc (channel) VALUES ('$irc_info')";
$fp_who_value = "INSERT INTO irc (user) VALUES ('$irc_names')";
$fp_value =  mysql_query($fp_value);
$fp_who_value = mysql_query($fp_who_value);
?>
Problem in der Db landet nur das "Array" und mehr nicht :-?
Benutzeravatar
Mister_X
Ehemaliges Teammitglied
Beiträge: 7102
Registriert: 24.05.2001 02:00
Wohnort: Augsburg

Beitrag von Mister_X »

a) von solchen Tabellennamen: irc (channel) oder irc (user) (also mir Leerzeichen) würde ich eher abraten.
b) Wie du schon in deinen Kommentaren schreibst: $irc_names und $irc_info sind Arrays. Also musst du auch jedes Arrayelement extra auslesen und in die Datenbank werfen.
Antworten

Zurück zu „Coding & Technik“