Для вступления в общество новичков и профессионалов домен-индустрии, пожалуйста нажмите здесь ...

   
 Купля-продажа и обсуждение доменных имён
        

  
Вернуться   Форум о доменах > Дизайн и развитие проектов > Программирование
Регистрация Реноме Правила форума Справка Пользователи Социальные группы Все разделы прочитаны
Программирование PHP, Perl, HTML, XHTML, CSS, JavaScript, MySQL и другие языки кодирования.

Ответ
 
Опции темы
Сегодня
от 149р за .RU
Аренда сервера
2x Intel Hexa-Core Xeon E5-2420
Всего 79 евро!

с видеокартой GeForce GTX 1080 Ti
всего 99 евро!

от 149р за .РФ Реклама на DomenForum.net
Старый 14.02.2005, 15:53   #1
 
Аватар для wolandino
 
Регистрация: 31.12.2004
Адрес: Russia, Astrakhan
Сообщений: 293
Доменные сделки: 5
Реноме: 216
Одобрения
Спасибо (Отдано): 0
Спасибо (Получено): 0
Отправить сообщение для wolandino с помощью ICQ
FAQ по PHP

Здесь публикуются основные вопросы по PHP и интересные ссылки на источники. Внимание! публикуются лишь интересные вопросы, решить которые просто прочтением мануала не получится!

ВСЕ сообщения не в тему будут удаляться! Авторы будут предупреждаться.

Разбивка на страницы, вариант взят с http://forum.woweb.ru

kernel.php
Код:
<?php
error_reporting(E_ALL);
$page=@$_GET['page'];
/*
Скрипт для постраничного вывода записей из MySql
выводом колва страниц с результатами
ссылкой на каждую страницу
*/
$maxpage=ceil(SQL_N_RES_SEARCH()/$maxlines);
if (!isset($page) || $page=='' || $page<1 || $page>$maxpage){
$page=1;}
//------------------------- // SQL //------------------------- //
// SQL запрос для поиска записей  .
function SQL_RES_SEARCH() {
global $table, $sql_select, $order_by, $order, $maxlines, $page;
$limit=$page*$maxlines-$maxlines;
$sql_res_search = mysql_query("select * from $table order by $order_by $order limit $limit, $maxlines ");
return $sql_res_search;}
// Количество записей возвращаемых $sql_res_search .
function SQL_N_RES_SEARCH(){
global $table, $sql_select;
$sql_res_search_num = mysql_query("select count(*) from $table ");
$row = mysql_fetch_row($sql_res_search_num);
$sql_n_res_search =$row[0];
return $sql_n_res_search;}
// функция вывода списка страниц.
function PRINT_NUM_PAGE($t){
global $page, $maxpage, $maxpages, $maxlines, $type, $like, $ask;
// сколько всего страниц с записями
$l=$page*$maxlines-$maxlines+1;
$r=$l+$maxlines-1;
if ($r>SQL_N_RES_SEARCH())$r=SQL_N_RES_SEARCH();
echo '<hr width=90% color=ff0000><table align=center width="90%" border="1" cellpadding="0" cellspacing="0" bordercolor="#6699FF"><tr><td width="15%" align="center">';
echo '<strong><font color="#0000FF" size="-1">Записи с </font><br>'.$l.' по '.$r.'</font></strong></td>';
echo '<td width="70%" align="center"><font size="-1"><strong>';
if ($t=='1'){
    $l = ceil($page/$maxpages)*$maxpages+1- $maxpages;
    $r = ceil($page/$maxpages)*$maxpages ;
    if ($page>$maxpages) { $ll=$l-1; echo"<a href=\"?page=$ll\">...</a>";}
    }else{
    $l=$page - floor($maxpages/2);
    $r=$page + floor($maxpages/2);
    if ($l<1){$l='1'; $r=$maxpages;}
    if ($r>$maxpage){$r=$r+$r/2;}
    if (($page-1)>$maxpages/2){ $ll=$l-1; echo "<a href=\"?page=$ll\">...</a>";}
    }

for ($l; $l<=$r; $l++){
     if ($l>$maxpage)break;
   if ($l == $page){
  print " <b>$page</b> ";
    }else{
     echo " <a href=\"?page=$l\">$l</a> ";}
     }
     if ($maxpage>$r) { $ll=$r+1; echo "<a href=\"?page=$ll\">...</a>";}
echo '</strong></font><br /><font color=#0000FF >Всего страниц:</font> <font size=-1><a href=?page='.$maxpage.'>'.$maxpage.'</a></font></td>';
echo '<td width="15%" align="center"><font size="-1"><strong><font color="#0000FF">Всего записей</font><br>';
echo '<font size="-1">';
echo SQL_N_RES_SEARCH();
echo '</font> </strong></font></td></tr></table><hr width=90% color=ff0000>';
}
$currnumber=$page*$maxlines-$maxlines+1;
?>
1.php
Код:
<?php
// для MySql connect() //
$host='localhost';    // хост
$user='user';    // имя пользователя
$password='pass';  // пароль к базе
$dbname='dbname';   // имя базы
####### Установки, Эти значения ставите сами ############
// sql select //
$table='podp'; // имя таблицы в вашей бд
$sql_select='*';     // столбцы через запятую или * если все
$order_by='ind';  // сортировка по (столбец) !! НЕ должен быть пустым!!!
$order='ASC';     // сортировка: ASC - убывание, DESC - возрастание
$maxlines=9; // Максимальное количество записей на странице возвращаемых SQL запросом
$maxpages=4;     // максимальное колво страниц на вывод.

// сам коннект // есесно логин и пароль можно вынести в отд. файл
mysql_connect( $host, $user, $password) or die("нет коннекта");
mysql_select_db($dbname)or die("базы нет");
include_once('kernel.php');


PRINT_NUM_PAGE('1');

$sql =SQL_RES_SEARCH(); // это обязательно

while ($row = mysql_fetch_array($sql)) {
// сдесь выводим строки
echo '<br />'.$currnumber.' - - '.$row['ind']; //вместо ind указывайте свои столбцы
//и так далее
$currnumber++;
} // закончили цикл
echo '<br />';
PRINT_NUM_PAGE('2');
// это вывод количества страниц
// 1 2 3 4 5 и так далее
// PRINT_NUM_PAGE(1); номера страниц выводятся как обычно
// если нужно чтоб номера страниц выводились как на яндексе
// установите значение PRINT_NUM_PAGE(2);
// попробуйте и так и так, и оставьте как вам больше нравится
mysql_close(); // закрыли соединение
?>
script.php просто инклудится в 1.php (include "script.php");
wolandino вне форума   Ответить с цитированием
Старый 18.02.2005, 16:58   #2
 
Аватар для wolandino
 
Регистрация: 31.12.2004
Адрес: Russia, Astrakhan
Сообщений: 293
Доменные сделки: 5
Реноме: 216
Одобрения
Спасибо (Отдано): 0
Спасибо (Получено): 0
Отправить сообщение для wolandino с помощью ICQ
Как записать файл в определенной кодировке?

Код:
<?php

$file = fopen("file.txt", "w");
$code = convert_cyr_string($code,"w","k") // Из win-1251 в koi-8
fwrite($file, $code);
fclose($file);

?>
wolandino вне форума   Ответить с цитированием
Старый 23.02.2005, 19:03   #3
 
Аватар для wolandino
 
Регистрация: 31.12.2004
Адрес: Russia, Astrakhan
Сообщений: 293
Доменные сделки: 5
Реноме: 216
Одобрения
Спасибо (Отдано): 0
Спасибо (Получено): 0
Отправить сообщение для wolandino с помощью ICQ
пример полезен для тех, у кого на сайте должно высвечиваться время, отличное от времени сервера или времени пользователя:

Код:
<?
$timezone=-5;//для МСК используйте +3, Украины +2
$time=time();
$gmttime= gmdate("M d Y H:i:s", $time);
$convertedtime=date("M d Y H:i:s",strtotime("$timezone hours",strtotime($gmttime)));
echo "$convertedtime <br> ";
?>
wolandino вне форума   Ответить с цитированием
Старый 23.02.2005, 19:46   #4
 
Регистрация: 14.02.2005
Сообщений: 94
Доменные сделки: 0
Реноме: 58
Одобрения
Спасибо (Отдано): 0
Спасибо (Получено): 0
Спасибо! Так держать!
Cheep вне форума   Ответить с цитированием
Старый 23.02.2005, 21:18   #5
 
Регистрация: 24.01.2005
Сообщений: 124
Доменные сделки: 0
Реноме:
Одобрения
Спасибо (Отдано): 0
Спасибо (Получено): 0
Отправить сообщение для Raziel с помощью ICQ
wolandino можеш найти-написать урок про опросы?
__________________
С уважением администрация scase.h14.ru
Raziel вне форума   Ответить с цитированием
Старый 24.02.2005, 09:16   #6
 
Аватар для wolandino
 
Регистрация: 31.12.2004
Адрес: Russia, Astrakhan
Сообщений: 293
Доменные сделки: 5
Реноме: 216
Одобрения
Спасибо (Отдано): 0
Спасибо (Получено): 0
Отправить сообщение для wolandino с помощью ICQ
2cheep, raziel у меня просьба здесь публиковать не отзывы, а реальные примеры, для сообщений или вопросов пользуйтесь внутренней почтой форума
wolandino вне форума   Ответить с цитированием
Старый 25.02.2005, 20:22   #7
 
Регистрация: 24.01.2005
Сообщений: 124
Доменные сделки: 0
Реноме:
Одобрения
Спасибо (Отдано): 0
Спасибо (Получено): 0
Отправить сообщение для Raziel с помощью ICQ
Хорошо вот реальный пример gta4.ovl.ru с права в верху выводятся скрины.....чето это и как поставить?
__________________
С уважением администрация scase.h14.ru
Raziel вне форума   Ответить с цитированием
Старый 15.03.2005, 08:58   #8
 
Аватар для wolandino
 
Регистрация: 31.12.2004
Адрес: Russia, Astrakhan
Сообщений: 293
Доменные сделки: 5
Реноме: 216
Одобрения
Спасибо (Отдано): 0
Спасибо (Получено): 0
Отправить сообщение для wolandino с помощью ICQ
Драйвер для работы с MySQL

Сам класс:
Код:
<?php
/* ---------------------------------------------------------------------------------
// Драйвер для работы с базой данных MySQL.
// Версия 1.1.4
--------------------------------------------------------------------------------- */
class db {
  /* ---------------------------------------------------------------------------------
  // Переменные
  --------------------------------------------------------------------------------- */
  var $connInfo   = array();  // private array @connInfo
  var $connSource   = null; // public resource @connSource
  var $querySource = null; // private resource @querySource
  
  var $lastQuery   = ''; // public string @lastQuery
  var $lastAction   = ''; // public string @lastAction
  var $lastResult   = array();  // public array @lastResult
  var $lastRow   = array();  // public array @lastRow
  
  var $numRows   = 0; // public int @NumRows
  var $numFields   = 0; // public int @NumFields
  var $affectedRows = 0; // public int @AffectedRows
  var $queryParams = array();  // private array @executeParams
  
  /* ---------------------------------------------------------------------------------
  // private constructor db (
  // [string connString]
  // )
  --------------------------------------------------------------------------------- */
  function db($connString = '') {
 if(!empty($connString))
   $this->setConnect($connString);
  }
  /* ---------------------------------------------------------------------------------
  // public source setConnect (
  // string connString
  // )
  --------------------------------------------------------------------------------- */
  function setConnect($connString) {
 
 if(!preg_match("%^([^,]*?)\s?,\s?([^,\s]*?)\s?,\s?([^,]*?)\s?,\s?([^,]*?)\s?,\s?([0-1]*?)$%", $connString, $Params)) {
   $this->setError(false, 'Передан неверный параметр для соеднинения с базой данных.');
 }
 
 $this->connInfo  = array(
   'connHost' => $Params[1],
   'connUser' => $Params[2],
   'connPswd' => $Params[3],
   'connBase' => $Params[4],
   'Persistent'  => ((empty($Params[5])) ? 0 : $Params[5]),
 );
 
 $this->connSource  = (1 == (int) $this->connInfo['Persistent']) ? 
   @mysql_pconnect($this->connInfo['connHost'], $this->connInfo['connUser'], $this->connInfo['connPswd']) : 
   @mysql_connect($this->connInfo['connHost'], $this->connInfo['connUser'], $this->connInfo['connPswd']);
 if(!is_resource($this->connSource))
   $this->setError(false);
 if($this->connInfo['connBase'] != '') {
   if(!@mysql_select_db($this->connInfo['connBase'], $this->connSource))
  return $this->setError();
 }
 
 return $this->connSource;
  }
  
  /* ---------------------------------------------------------------------------------
  // public selectBase ( string baseName )
  // Фнцкия выполняет соединения с базой данных переданной в аргументе
  --------------------------------------------------------------------------------- */
  function selectBase($baseName) {
 if(!mysql_select_db($baseName, $this->connSource))
   $this->setError();
  }
  
  /* ---------------------------------------------------------------------------------
  // public mixed sendQuery ( string query, mixed var ...)
  // Фунцкия выполняет передачу запроса к базе данных принимая в первом аргументе
  // строку шаблона SQL запроса, и переменные которые необходимо подставить
  // в шаблон в форматированном виде.
  // ----
  // Переменные подставляются в соответствии с указаниями последовательного номера
  // переменной, ее типа (если это тип с плавующей точкой, передается число после
  // точки), ее длинны.
  // ----
  // Формат подстановок:
  //   ${paramNumber type [dopOpt1[.dopOpt2]]}
  --------------------------------------------------------------------------------- */
  function sendQuery() {
 $this->queryParams  = func_get_args();
 if(!$this->lastQuery = array_shift($this->queryParams))
   return false;
   
 if(sizeof($this->queryParams) > 0) {
   $this->queryParams  = array_values($this->queryParams);
   $this->lastQuery  = preg_replace("|\\$\{([0-9]{1,2})\s*([0-9a-zA-Z]*)\s*?([0-9a-zA-Z,\.]*?)\}|ie", 
  "\$this->assemblyQueryParams(\"\\1\", \"\\2\", \"\\3\")", $this->lastQuery);
   $this->queryParams  = array();
 }
 
 $this->lastAction  = strtolower(substr($this->lastQuery, 0, strpos($this->lastQuery, ' ')));
 
 if(!$this->querySource  = @mysql_query($this->lastQuery, $this->connSource))
   return $this->setError();
 
 switch($this->lastAction) {
   case 'insert':
  $this->lastInsertID  = mysql_insert_id($this->connSource);
   case 'update':
   case 'delete': {
  $this->affectedRows  = mysql_affected_rows($this->connSource);
  return $this->affectedRows;
  break;
   }
   case 'select': {
  $this->numFields  = mysql_num_fields($this->querySource);
  $this->numRows = mysql_num_rows($this->querySource);
  return $this->numRows;
  break;
   }
 }
 return true;
  }
  
  /* ---------------------------------------------------------------------------------
  // public array nextRow ( [int rowMode] )
  // Функция возвращает записи по очереди после запроса на выборку
  --------------------------------------------------------------------------------- */  
  function nextRow($rowMode = null) {
 $this->lastRow  = @mysql_fetch_array($this->querySource, ((isset($rowMode)) ? $rowMode : MYSQL_ASSOC));
 return $this->lastRow;
  }
  
  function getOne($srcRow = false) {
 return @mysql_result($this->querySource, (($srcRow != false) ? $srcRow : 0));
  }
  
  /* ---------------------------------------------------------------------------------
  // public int getInsertID ( [int rowMode] )
  // Функция возвращает все записи после запроса на выборку
  --------------------------------------------------------------------------------- */
  function getResult($rowMode = null) {
 $this->lastResult  = array();
 $rowMode  = (isset($rowMode)) ? $rowMode : MYSQL_ASSOC;
 while($Row = @mysql_fetch_array($this->querySource, $rowMode)) {
   $this->lastRow = $Row;
   $this->lastResult[]  = $this->lastRow;
 }
 return $this->lastResult;
  }
  /* ---------------------------------------------------------------------------------
  // public int getInsertID ()
  // Функция возвращает автоинкрементный номер последней вставленной записи
  --------------------------------------------------------------------------------- */  
  function getInsertID() {
 return $this->lastInsertID;
  }
  
  /* ---------------------------------------------------------------------------------
  // private void assemblyQueryParams ( int num, string target, string length )
  // Приватная функция используемая при подстановке переменных в шаблоне SQL запроса
  --------------------------------------------------------------------------------- */
  function assemblyQueryParams($num, $target, $length) {
 
 if(!isset($this->queryParams[$num])) return "''";
  
 switch($target) {
   case 'i': {
  if(empty($this->queryParams[$num]))
    return 'NULL';
  if(!empty($length))
    $this->queryParams[$num] = substr($this->queryParams[$num], 0, $length);
  return intval($this->queryParams[$num]);
   }
   case 'f':
   case 'd': {
  if(empty($this->queryParams[$num]))
    return 'NULL';
    
  $options  = explode(',', $length);
  $precision  = (isset($options[1])) ? $options[1] : 30;
  if(!empty($length))
    $this->queryParams[$num] = substr($this->queryParams[$num], 0, $length);
  return (float) round($this->queryParams[$num], $precision);
   }
   case 'implode': {
  $options  = explode(',', $length);
  
  return " {$options[0]} = '".implode("' {$options[1]} {$options[0]} = '", $this->queryParams[$num])."' ";
   }
   case 'md5': {
  if(empty($this->queryParams[$num]))
    return 'NULL';
  return md5($this->queryParams[$num]);
   }
   case 'htmlsc' : {
  if(empty($this->queryParams[$num]))
    return 'NULL';
  if(!empty($length)) 
    $this->queryParams[$num] = substr($this->queryParams[$num], 0, $length);
  return "'".mysql_escape_string(htmlspecialchars($this->queryParams[$num]))."'";
   }
   default: {
  if(empty($this->queryParams[$num]))
    return 'NULL';
  if(!empty($length)) 
    $this->queryParams[$num] = substr($this->queryParams[$num], 0, $length);
  return "'".mysql_escape_string($this->queryParams[$num])."'";
   }
 }
  }
  /* ---------------------------------------------------------------------------------
  // public string viewResult ( )
  // Функция возвращает результат в форматированном виде.
  --------------------------------------------------------------------------------- */  
  function viewResult() {
 $__template = '<table cellspacing="0" cellpadding="5" style="font-family: Verdana; font-size: 11px; color: #666666;'.
   'border-width:1px; border-style:solid; border-color:#CCCCCC; background-color:#EFEFEF; border-collapse: collapse;">';
 $__template .= '<tr><th colspan="'.$this->numFields.'" align="left">Result: '
   .$this->numRows.' rows selected<br>Query: '.$this->lastQuery.'</th></tr>';
 $__template .= '<tr><th>num</th><th>'.implode('</th><th>', array_keys($this->lastResult[0])).'</th></tr>';
 for($i = 0; $i < $this->numRows; $i++) {
   $__template  .= '<tr><td style="border-width:1px; border-style:solid; border-color:#CCCCCC; padding:5px;">'.
   ($i+1).'</td><td style="border-width:1px; border-style:solid; border-color:#CCCCCC; padding:5px;">'.
   implode('</td><td style="border-width:1px; border-style:solid; border-color:#CCCCCC; padding: 5px;">', $this->lastResult[$i]).'</td></tr>';
 }
 $__template .= '</table>';
 return $__template;
  }
  
  /* ---------------------------------------------------------------------------------
  // private void setError ( [bool is] )
  // Приватная функция для вывода ошибок
  --------------------------------------------------------------------------------- */  
  function setError($is = true, $msg = null) {
 echo '<center><div align="justify" style="width:70%; background-color:#FAFAFA;';
 echo 'border-color:#CCCCCC; border-width:1px; border-style:solid; padding: 10px;';
 echo 'font-family: Verdana; color: 666666; font-size: 11px;">';
 echo '<b>MySQL - сообщение об ошибке:</b><br><br>'.str_repeat(' ', 4);
 if(isset($msg))
   echo $msg;
 if(is_resource($this->connSource))
   echo mysql_error($this->connSource);
 if($is === false) 
   echo mysql_error();
 if(!empty($this->lastQuery)) {
   echo '<p> <p><div id="sql" style=";background-color:#EFEFEF; border-color:#CCCCCC; border-width:1px; border-style:solid; padding: 5px;" name="sql">';
   echo '<b>Последний SQL запрос:</b><p>';
   echo str_repeat(' ', 4).'<span style="color:#FF6600;">'.$this->lastQuery.'</span></div>';
 }
 echo '</div></center>';
 exit;
  }
}
?>
Пример реализации
Код:
<?php
$db = new db('localhost, user1, , mainbase, 1'); 
// Коннект к localhost, юзер user1 без пароля, выбираем базу mainbase, постоянное соединение.
$db->sendQuery('select s.main, s.root, s.parent, t.name, t.views, t.logs, t.systems'.
  ' from sec_table as s left join tech_table as t on(t.id = ${0 i 11}) where s.prent = ${1 i 11}'.
  ' and s.sct = t.sc', $_GET['t_id'], $_GET['parent']
);
$db->getResult();
print_r($db->lastResult);
?>
Источник: http://forum.vingrad.ru/index.php?showtopic=44503
wolandino вне форума   Ответить с цитированием
Ответ



Реклама

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Закладки Добавить Тема в закладки

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 01:56. Часовой пояс GMT +4.