<?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;
}
}
}
?>
|