PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (289): В начало « ... 281 282 283 284 285 286 287 288 [289]

> Найдено сообщений: 4334
Champion Отправлено: 02 Сентября, 2008 - 12:09:42 • Тема: отключить клавиши • Форум: JavaScript & VBScript

Ответов: 1
Просмотров: 1656
Извини что не подробно; просто подскажу что искать: у инпутов на форме или у самой формы тебе с помощья яваскрипта надо обработать событие onkeypress (заодно и onkeydown и onkeyup). По умолчанию, если нажат энтер (вросде #13) происходит сабмит. Если ты укажешь пустой обработчик, думаю, получится.
Champion Отправлено: 02 Сентября, 2008 - 12:01:08 • Тема: сложный UPDATE • Форум: SQL и Архитектура БД

Ответов: 16
Просмотров: 156
Цитата:
Интересно. Пример!


UPDATE `DOCUMENTS` SET `ONTOP` = 1 WHERE `ID` = '36' OR `DOCNAME` = (SELECT FIRST 1 `DOCNAME` FROM `DOCUMENTS` where таким же полем DOCNAME )

UPDATE `DOCUMENTS` SET `ONTOP` = 1 WHERE `ID` = '36' OR `DOCNAME` in (SELECT `DOCNAME` FROM `DOCUMENTS` where таким же полем DOCNAME )

только я не совсем понял фразу "таким же полем DOCNAME". Таким же как что?
(Добавление)
ААА, понял! либо id 36, либо dockname такой же, как один из тех, что с id 36?
Тогда вот:
UPDATE `DOCUMENTS` SET `ONTOP` = 1 WHERE `ID` = '36' OR `DOCNAME` = (SELECT FIRST 1 `DOCNAME` FROM `DOCUMENTS` where id = 36)

UPDATE `DOCUMENTS` SET `ONTOP` = 1 WHERE `ID` = '36' OR `DOCNAME` in (SELECT `DOCNAME` FROM `DOCUMENTS` where id = 36 )

По поводу того, что часть запроса всегда true - вроде я ошибся
Champion Отправлено: 02 Сентября, 2008 - 11:52:43 • Тема: Поиск совпадений по базе без id • Форум: SQL и Архитектура БД

Ответов: 13
Просмотров: 142
проверь селектом, существует ли уже такая строка. (если он вернет пустой набор, значит строки нет). И если таоке тебе часто прийдется делать, советую создать индекс по проверяемым полям
Champion Отправлено: 02 Сентября, 2008 - 11:29:10 • Тема: создание архивов на php • Форум: Напишите за меня, пожалуйста

Ответов: 3
Просмотров: 70
tar - это *nix-овый архиватор. В винде такая команда не прокатит.
Я для создания ZIP-ов этим пользуюсь:
сама фунция внизу. Просто сохраняешь это в отдельный файл, инклюдишь его, вызываешь append_to_zip($in_files, $arc_file, $compress) и всё! только переменные не забудь определить
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. class zipfile
  4. {
  5.         var $filename;
  6.         var $ctrl_dir  =  array() ;
  7.         var $eof_ctrl_dir  =  "\x50\x4b\x05\x06\x00\x00\x00\x00";
  8.         var $old_offset  =  0;
  9.  
  10.         function add_dir($name)
  11.         {
  12.                 $name  =  str_replace("\\",  "/",  $name) ;
  13.                 $fr  =  "\x50\x4b\x03\x04";
  14.                 $fr .=  "\x0a\x00";
  15.                 $fr .=  "\x00\x00";
  16.                 $fr .=  "\x00\x00";
  17.                 $fr .=  "\x00\x00\x00\x00";
  18.  
  19.                 $fr .=  pack("V", 0) ;
  20.                 $fr .=  pack("V", 0) ;
  21.                 $fr .=  pack("V", 0) ;
  22.                 $fr .=  pack("v",  strlen($name)  ) ;
  23.                 $fr .=  pack("v",  0 ) ;
  24.                 $fr .=  $name;
  25.                 $fr .=  pack("V",  0) ;
  26.                 $fr .=  pack("V",  0) ;
  27.                 $fr .=  pack("V",  0) ;
  28.  
  29.                 $f  =  fopen($this->filename, "a+") ;
  30.                 fwrite($f, $fr) ;
  31.                 fclose($f) ;
  32.  
  33.                 $new_offset  =  filesize($this->filename) ;
  34.  
  35.                 $cdrec  =  "\x50\x4b\x01\x02";
  36.                 $cdrec .= "\x00\x00";
  37.                 $cdrec .= "\x0a\x00";
  38.                 $cdrec .= "\x00\x00";
  39.                 $cdrec .= "\x00\x00";
  40.                 $cdrec .= "\x00\x00\x00\x00";
  41.                 $cdrec .=  pack("V", 0) ;
  42.                 $cdrec .=  pack("V", 0) ;
  43.                 $cdrec .=  pack("V", 0) ;
  44.                 $cdrec .=  pack("v",  strlen($name)  ) ;
  45.                 $cdrec .=  pack("v",  0 ) ;
  46.                 $cdrec .=  pack("v",  0 ) ;
  47.                 $cdrec .=  pack("v",  0 ) ;
  48.                 $cdrec .=  pack("v",  0 ) ;
  49.                 $ext  =  "\x00\x00\x10\x00";
  50.                 $ext  =  "\xff\xff\xff\xff";
  51.                 $cdrec .=  pack("V",  16 ) ;
  52.                 $cdrec .=  pack("V",  $this -> old_offset ) ;
  53.                 $cdrec .=  $name;
  54.  
  55.                 $this -> ctrl_dir[]  =  $cdrec;
  56.                 $this -> old_offset  =  $new_offset;
  57.                 return;
  58.         }
  59.  
  60.         function add_file($data,  $name,  $compression  =  6)
  61.         {
  62.                 $name  =  str_replace("\\",  "/",  $name) ;
  63.                 $unc_len  =  strlen($data) ;
  64.                 $crc  =  crc32($data) ;
  65.                 $zdata  =  gzcompress($data,  $compression) ;
  66.                 $zdata  =  substr ($zdata,  2,  -4) ;
  67.                 $c_len  =  strlen($zdata) ;
  68.  
  69.                 $fr  =  "\x50\x4b\x03\x04";
  70.                 $fr .=  "\x14\x00";
  71.                 $fr .=  "\x00\x00";
  72.                 $fr .=  "\x08\x00";
  73.                 $fr .=  "\x00\x00\x00\x00";
  74.                 $fr .=  pack("V", $crc) ;
  75.                 $fr .=  pack("V", $c_len) ;
  76.                 $fr .=  pack("V", $unc_len) ;
  77.                 $fr .=  pack("v",  strlen($name)  ) ;
  78.                 $fr .=  pack("v",  0 ) ;
  79.                 $fr .=  $name;
  80.                 $fr .=  $zdata;
  81.                 $fr .=  pack("V", $crc) ;
  82.                 $fr .=  pack("V", $c_len) ;
  83.                 $fr .=  pack("V", $unc_len) ;
  84.  
  85.                 $f  =  fopen($this->filename, "a+") ;
  86.                 fwrite($f, $fr) ;
  87.                 fclose($f) ;
  88.  
  89.                 $new_offset  =  filesize($this->filename) ;
  90.  
  91.                 $cdrec  =  "\x50\x4b\x01\x02";
  92.                 $cdrec .= "\x00\x00";
  93.                 $cdrec .= "\x14\x00";
  94.                 $cdrec .= "\x00\x00";
  95.                 $cdrec .= "\x08\x00";
  96.                 $cdrec .= "\x00\x00\x00\x00";
  97.                 $cdrec .=  pack("V", $crc) ;
  98.                 $cdrec .=  pack("V", $c_len) ;
  99.                 $cdrec .=  pack("V", $unc_len) ;
  100.                 $cdrec .=  pack("v",  strlen($name)  ) ;
  101.                 $cdrec .=  pack("v",  0 ) ;
  102.                 $cdrec .=  pack("v",  0 ) ;
  103.                 $cdrec .=  pack("v",  0 ) ;
  104.                 $cdrec .=  pack("v",  0 ) ;
  105.                 $cdrec .=  pack("V",  32 ) ;
  106.                 $cdrec .=  pack("V",  $this -> old_offset ) ;
  107.  
  108.                 $this -> old_offset  =  $new_offset;
  109.  
  110.                 $cdrec .=  $name;
  111.                 $this -> ctrl_dir[]  =  $cdrec;
  112.         }
  113.  
  114.         function file()
  115.         {
  116.                 $ctrldir  =  implode("",  $this -> ctrl_dir) ;
  117.                 $datasize  =  filesize($this->filename) ;
  118.                 $f  =  fopen($this->filename, "a+") ;
  119.                 fwrite($f, $ctrldir.
  120.                                         $this -> eof_ctrl_dir.
  121.                                         pack("v",  sizeof($this -> ctrl_dir) ) .
  122.                                         pack("v",  sizeof($this -> ctrl_dir) ) .
  123.                                         pack("V",  strlen($ctrldir) ) .
  124.                                         pack("V",  $datasize) ."\x00\x00") ;
  125.                 fclose($f) ;
  126.         }
  127.  
  128. }
  129. //******************************************
  130. //$in_files - массив имен файлов, которые мы арх-ем
  131. // $arc_file - имя получившегося архива
  132. // $compress - степень сжатия. до 9
  133. ///////////////////////
  134. function append_to_zip($in_files, $arc_file, $compress)
  135. {
  136.         $zip  =  new zipfile();
  137.         if (file_exists($arc_file))
  138.                 unlink($arc_file);
  139.         $zip->filename  =  $arc_file;
  140.         for ($i = 0; !is_null($in_files[$i]); $i++) {
  141.                 $file  =  $in_files[$i];
  142.                 $src_file  =  fopen($file , 'rb') ;
  143.                 $compression  =  $compress;
  144.                 $zip->add_file(fread($src_file, 30000000) ,  $file,  $compression) ;
  145.                 if(is_dir($file) )  $zip->add_dir($file) ;
  146.         }
  147.         $zip->file() ;
  148.         fclose($src_file);
  149. }
  150.  
  151. ?>
  152.  
Champion Отправлено: 02 Сентября, 2008 - 11:22:59 • Тема: Помогите • Форум: Программирование на PHP

Ответов: 10
Просмотров: 466
И все равно, если таким образом считается количество открываний страницы, то так делать не хорошо.
Во-первых, пока этот скрипт выполняется один раз, кто-то может еще открыть страницу несколько раз, и ему достанутся неизмененные данные из файла, и пошла цепочка...
Во-вторых, переполнение. Она обнулится. Правда, ждать этого долго может оказаться.

Ну а вывести переменную внутри текста "blablabla $trr blablabla" или 'blablabla'. $trr .'blablabla'. C точки зрения быстродействия второй вариант предпочтительнее. Читал на этом сайте статью, что в этом случае до 40% быстрее команда вып-ся
Champion Отправлено: 02 Сентября, 2008 - 11:11:10 • Тема: HelP) как округлить $var до 1000, 10 000, 1 000 000 • Форум: Программирование на PHP

Ответов: 5
Просмотров: 713
ALEN пишет:
Когда-то на этом сайте я скачивал себе полный манул, вот там все конкретно описано и не нужно так перенапрягаться.


Только опечаточка: мануАл)

round(1241757, -3) - по-моему, никакого напряжения))
Champion Отправлено: 01 Сентября, 2008 - 12:18:23 • Тема: Перенос данных в таблицу бд • Форум: Программирование на PHP

Ответов: 18
Просмотров: 1100
проще так (коннекиты к бд не пишу):
в $file считали файл;
$file = str_replace("START FILE", "", $file); //и с END то же
$lines = explode('* *', $file); //теперь lines[0] - первая потенциальная запись в таблицу [1]-2я и тд
for ($i=0; !is_null($lines[$i]); $i++) {
....$fields = explode ('*', $lines);
....$query = 'INSERT INTO table (qw,e,q,w,e,wewe) VALUES ($fields[0], $fiends[1]...)'
...............
}

кстати, записи разделяются **, а поля *, насколько я вижу, а в предыдущем скрипте ** не заметили
[i](Добавление)

коннекиты - это я "коннэкты" криво написал случайно))
Champion Отправлено: 01 Сентября, 2008 - 12:00:52 • Тема: Связано с DISTINCT • Форум: Программирование на PHP

Ответов: 4
Просмотров: 257
str20 = substr ( исходная строка, номер символа(от) , количество символов)
в твоем случае substr ( исходная строка, 0, 20).
Champion Отправлено: 01 Сентября, 2008 - 11:56:55 • Тема: как фильтровать массив из таблицы бд? • Форум: Программирование на PHP

Ответов: 1
Просмотров: 214
А почему это надо делать средствами пхп? я в запрос не вчитывался, но по-моему если ты сделаешь where v.VehicleRegNumber = "A-21" то все будет ок
Champion Отправлено: 01 Сентября, 2008 - 11:40:24 • Тема: HelP) как округлить $var до 1000, 10 000, 1 000 000 • Форум: Программирование на PHP

Ответов: 5
Просмотров: 713
округлить до 1000: делишь на 1000 на цело и запоминаешь остаток. целую эту часть умножаешь на 1000. если остаток >500 результат+=1000
(Добавление)
а если без отсебятины, то round(1241757, -3); будет 1232000. -3
Champion Отправлено: 28 Августа, 2008 - 15:51:24 • Тема: помогите создать запрос • Форум: Регулярные выражения

Ответов: 12
Просмотров: 513
до конца файла
$line_elements =explode(' ', trim( fgets(....) ) );
$line_elements[0], [1], [2] - три поля
Champion Отправлено: 28 Августа, 2008 - 15:21:51 • Тема: сложный UPDATE • Форум: SQL и Архитектура БД

Ответов: 16
Просмотров: 156
WHERE `ID` = '36' OR `DOCNAME` = (SELECT `DOCNAME` FROM `DOCUMENTS` WHERE `ID` = '36')

А какой смысл? Часть запроса после OR всегда будет истина. кажется. И неплохо бы select first 1... или docname in (select...
Champion Отправлено: 28 Августа, 2008 - 15:09:35 • Тема: дабавление записи в 2 таблици с учётом связки • Форум: SQL и Архитектура БД

Ответов: 2
Просмотров: 49
триггеры
(Добавление)
на инсерт в одну таблицу запусается триггер, вставляющий соотв строку в другую. потом апдейт этой строки (найти ее та сможешь, раз таблицы связаны)
Champion Отправлено: 28 Августа, 2008 - 14:52:45 • Тема: Не работают header-ы • Форум: Корзина

Ответов: 2
Просмотров: 2861
[quote=M@X]Помогите мне пожалуйста разобраться с header-ми, они у меня отказываются работать, выдается ошибка:
Warning: Cannot modify header information - headers already sent by (output started at C:wampwwwtest.php:4) in C:wampwwwtest.php on line 13
Это значит, что хедеры уже были посланы скриптом C:wampwwwtest.php, а посылать их можно только однажды. Посмотри, возможно в скрипте до посылки хедеров присутствуют операторы вавода и убедись, что возле <? ?> снаружи нет пробелов, энтеров и пр.

Страниц (289): В начало « ... 281 282 283 284 285 286 287 288 [289]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB