|
MySQL.RU - Webboard
Вернуться
Поиск (Coffin) 18/05/2004 - 12:53:30
Re: Поиск (Coffin) 18/05/2004 - 12:54:59
Re: Поиск (haron) 18/05/2004 - 14:43:54
Re: Поиск (haron) 18/05/2004 - 14:47:25
Re: Поиск (Coffin) 21/05/2004 - 23:35:23
> Original message text:
> From: Coffin - 18/05/2004 - 12:53:30
> Subject:Поиск
> -----------------
> Вообщем есть 3 свзязанных базы
> надо выполнить посик по ним
> --------Все просиходит через класс db_driver---------
> вот функции из него
> class db_driver {
>
> var $obj = array ( "sql_database" => "" ,
> "sql_user" => "root" ,
> "sql_pass" => "" ,
> "sql_host" => "localhost",
> "sql_port" => "" ,
> "persistent" => "0" ,
> "sql_tbl_prefix" => "" ,
> "cached_queries" => array(),
> );
>
> var $query_id = "";
> var $connection_id = "";
> var $query_count = 0;
> var $record_row = array();
> var $return_die = 0;
> var $error = "";
> var $failed = 0;
>
> function connect() {
>
> if ($this->obj['persistent']) {
> $this->connection_id = mysql_pconnect( $this->obj['sql_host'] ,
> $this->obj['sql_user'] ,
> $this->obj['sql_pass']
> );
> }
> else {
> $this->connection_id = mysql_connect( $this->obj['sql_host'] ,
> $this->obj['sql_user'] ,
> $this->obj['sql_pass']
> );
> }
>
> if ( !mysql_select_db($this->obj['sql_database'], $this->connection_id) ) {
> echo ("ОШИБКА: Невозможно найти базу ".$this->obj['sql_database']);
> }
> }
> function query($the_query, $bypass=0) {
>
> $this->query_id = mysql_query($the_query, $this->connection_id);
>
> if (! $this->query_id ) {
> $this->fatal_error("mySQL query error: $the_query");
> }
>
> $this->query_count++;
>
> $this->obj['cached_queries'][] = $the_query;
>
> return $this->query_id;
> }
>
>
> // Использование функции fetch_row
> function fetch_row($query_id = "") {
>
> if ($query_id == "")
> {
> $query_id = $this->query_id;
> }
>
> $this->record_row = mysql_fetch_array($query_id, MYSQL_ASSOC);
>
> return $this->record_row;
>
> }
>
>
> // Использование функции get_affected_rows
> function get_affected_rows() {
> return mysql_affected_rows($this->connection_id);
> }
>
>
> // Использование функции get_num_rows
> function get_num_rows() {
> return mysql_num_rows($this->query_id);
> }
>
>
> // Использование функции get_insert_id
> function get_insert_id() {
> return mysql_insert_id($this->connection_id);
> }
>
>
> // Использование функции get_query_cnt
> function get_query_cnt() {
> return $this->query_count;
> }
>
>
> // Освобождение памяти MySQL
> function free_result($query_id="") {
>
> if ($query_id == "") {
> $query_id = $this->query_id;
> }
>
> @mysql_free_result($query_id);
> }
>
>
> // Закрытие соединения с MySQL
> function close_db() {
> return mysql_close($this->connection_id);
> }
>
>
> // Возвращает массив таблиц
> function get_table_names() {
>
> $result = mysql_list_tables($this->obj['sql_database']);
> $num_tables = @mysql_numrows($result);
> for ($i = 0; $i < $num_tables; $i++)
> {
> $tables[] = mysql_tablename($result, $i);
> }
>
> mysql_free_result($result);
>
> return $tables;
> }
>
>
> // Возвращает массив полей
> function get_result_fields($query_id="") {
>
> if ($query_id == "")
> {
> $query_id = $this->query_id;
> }
>
> while ($field = mysql_fetch_field($query_id))
> {
> $Fields[] = $field;
> }
>
> //mysql_free_result($query_id);
>
> return $Fields;
> }
>
>
> //Сообщение об ошибке
> function fatal_error($the_error) {
> global $INFO;
>
> if ($this->return_die == 1)
> {
> $this->error = mysql_error();
> $this->error_no = mysql_errno();
> $this->failed = 1;
> return;
> }
>
> $the_error .= "\n\nmySQL error: ".mysql_error()."\n";
> $the_error .= "mySQL error code: ".$this->error_no."\n";
> $the_error .= "Date: ".date("l dS of F Y h:i:s A");
>
> $out = "<html><head><title>Invision Power Board Database Error</title>
> <style>P,BODY{ font-family:arial,sans-serif; font-size:11px; }</style></head><body>
> <br><br><blockquote><b>There appears to be an error with the {$INFO['board_name']} database.</b><br>
> You can try to refresh the page by clicking <a href=\"javascript:window.location=window.location;\">here</a>, if this
> does not fix the error, you can contact the board administrator by clicking <a href='mailto:{$INFO['email_in']}?subject=SQL+Error'>here</a>
> <br><br><b>Error Returned</b><br>
> <form name='mysql'><textarea rows=\"15\" cols=\"60\">".htmlspecialchars($the_error)."</textarea></form><br>We apologise for any inconvenience</blockquote></body></html>";
>
>
> echo($out);
> die("");
> }
>
> function compile_db_insert_string($data) {
>
> $field_names = "";
> $field_values = "";
>
> foreach ($data as $k => $v)
> {
> $v = preg_replace( "/'/", "\\'", $v );
> //$v = preg_replace( "/#/", "\\#", $v );
> $field_names .= "$k,";
> $field_values .= "'$v',";
> }
>
> $field_names = preg_replace( "/,$/" , "" , $field_names );
> $field_values = preg_replace( "/,$/" , "" , $field_values );
>
> return array( 'FIELD_NAMES' => $field_names,
> 'FIELD_VALUES' => $field_values,
> );
> }
> function compile_db_update_string($data) {
>
> $return_string = "";
>
> foreach ($data as $k => $v)
> {
> $v = preg_replace( "/'/", "\\'", $v );
> $return_string .= $k . "='".$v."',";
> }
>
> $return_string = preg_replace( "/,$/" , "" , $return_string );
>
> return $return_string;
> }
> function field_exists($field, $table) {
>
> $this->return_die = 1;
> $this->error = "";
>
> $this->query("SELECT COUNT($field) as count FROM $table");
>
> $return = 1;
>
> if ( $this->failed )
> {
> $return = 0;
> }
>
> $this->error = "";
> $this->return_die = 0;
> $this->error_no = 0;
> $this->failed = 0;
>
> return $return;
> }
>
> }
> ------------вообщем тут класс заканчивается----------
>
> значит как я делаю
> ....подключение класса и тд....
> //--------скока всего записей
> $sql="Select count(id) as count from maint";
> $DB->query($sql);
> $row=$DB->fetch_row();
> $total=$row['count'];
> //--------
> for($i=1;$i<=$total;$i++){
> $sql_maint = "SELECT * FROM maint WHERE 'fname,sname' LIKE '%что_то_для_поиска%'";
> if($DB->query($sql_maint)){
> echo "good <br>";
> }
> else{
> echo "bad<br>";
> }
> }
> ----- вот собственно и все----
> как проверить что вернулось на запрос от Like ???
> если положительно , то вывести что нашлось
> ---
> p.s. класс не мой :)
> Если кто нить может помогите :) ДИПЛОМ ГОРИТ :)
>
>
From: Coffin - 18/05/2004 - 12:54:59
Subject:Поиск
-----------------
еще забыл добавить :%) мне хотяб в 1 таблице найти т.е. в maint, потом то я уже смогу в других :)
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
15048
|
|