| 
<?php
/***
 **** @class: mysql_dialog
 **** @version: 1.4;
 **** @author: Giorgos Tsiledakis;
 **** @date: 2004-08-25;
 **** @license: GNU GENERAL PUBLIC LICENSE;
 ***/
 class mysql_dialog {
 var $msg1="Not connected to MySQL Server! Please check your connection data or call function \"connect()\" first";
 var $msg2="Please check your SQL statement or call function \"speak()\" first!";
 
 var $errors=""; // the last error occured;
 var $rows="";  // number of rows of the query, created by listen();
 var $fields=""; // number fields of the query, created by listen();
 var $printerror=false;
 var $error_id=false;
 var $con=false;
 var $sql_id=false;
 
 /*##
 #### Call first Class Constructor mysql_dialog() to beginn;
 #### If some value!=0 is passed to mysql(),
 #### the errors occured, after each function is called, will be printed in the main script
 ##*/
 function mysql_dialog($mode=false) {
 if ($mode){
 $this->printerror=true;
 }
 }
 
 /*##
 #### Call then connect("mysqlhost","mysqluser","mysqlpasswd","name of mysql database")
 #### it returns some public $con or creates errors;
 ##*/
 function connect($host=false, $user=false, $pass=false, $dbname=false) {
 $con=@mysql_connect($host, $user, $pass);
 if (!$con) {
 $this->makeerror();
 return false;
 }
 $this->con=$con;
 $db=@mysql_select_db($dbname, $con);
 if (!$db) {
 $this->makeerror();
 return false;
 }
 return $this->con;
 }
 
 /*##
 #### Call speak("SQL STRING") to send some sql query to the database;
 #### it returns some public $sql_id, or creates errors;
 ##*/
 function speak($sql=false) {
 if (!$this->con) {
 $this->error_id=$this->msg1;
 $this->makeerror();
 return false;
 }
 if ($this->sql_id) {
 @mysql_free_result($this->sql_id);
 }
 $sql_id=mysql_query($sql, $this->con);
 $this->sql_id=$sql_id;
 return $this->sql_id;
 }
 
 /*##
 #### Call listen() to get the result of the query;
 #### it returns an array with the results of the query, or creates errors;
 #### listen() must be called after speak("SQL STRING") was called;
 ##*/
 function listen() {
 if (!$this->con) {
 $this->error_id=$this->msg1;
 $this->makeerror();
 return false;
 }
 if (!$this->sql_id) {
 $this->error_id=$this->msg2;
 $this->makeerror();
 return false;
 }
 $data=@mysql_fetch_array($this->sql_id, MYSQL_BOTH);
 $this->rows=@mysql_num_rows($this->sql_id);
 $this->fields=@mysql_num_fields($this->sql_id);
 return $data;
 }
 
 /*##
 #### Call onscreen("SQL STRING") to print a table with the result of the query;
 ##*/
 function onscreen($sql=false) {
 $this->speak($sql);
 echo ("<table border=\"1\" cellpadding=\"4\"><tr>");
 while ($fields=@mysql_fetch_field($this->sql_id)) {
 echo ("<th align=\"left\">$fields->name</th>");
 }
 echo ("</tr>\n");
 while ($rows = $this->listen()) {
 echo ("<tr>");
 for ($x=0; $x<@mysql_num_fields($this->sql_id); $x++) {
 echo ("<td align=\"left\">".htmlentities($rows[$x])."</td>");
 }
 echo ("</tr>\n");
 }
 echo ("</table>");
 }
 
 /*##
 #### Function makeerror() is called whenever some error has occured;
 #### If there is any error_id, it returns the user specified messages $msg1, $msg2,
 #### else it returns the mysql error number and message;
 #### If $printerror is true, the error message will be printed in the main script;
 ##*/
 function makeerror() {
 if (!$this->error_id) {
 if (mysql_errno()){
 $result="<b>" .mysql_errno(). " :<font color=\"red\">" . mysql_error(). "</font></b><br>";
 $this->errors=$result;
 if ($this->printerror){
 echo $result;
 }
 return $result;
 exit;
 }
 }
 else {
 $result="<b><font color=\"red\">$this->error_id</font></b><br>";
 $this->errors=$result;
 if ($this->printerror){
 echo $result;
 }
 return $result;
 }
 }
 
 }
 ?>
 |