Seite 1 von 1

mySql Abfrage für Irc bot

Verfasst: 20.03.2004 15:39
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 ? :-?

Verfasst: 20.03.2004 17:03
von Pyramide
Ja, kann man.

Verfasst: 23.03.2004 16:21
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 :)

Verfasst: 23.03.2004 21:51
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

Verfasst: 24.03.2004 02:31
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 :-?

Verfasst: 24.03.2004 18:01
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.