Имя:    Пароль:      Помнить меня       
Unsorted   ~  Software  ~  Development and Design  ~  Помощь по PHP Все вопросы по PHP сюда
На страницу «  1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25  »
Doctor_Mozg
Сообщение  21 Ноя 2006, 16:37  Ссылка : Ответить с цитатой
Возраст: 37 Пол: Мужской  Доверенный пользователь
C нами с 25.01.2005
Репутация: 133

Язык программирования, разработанный специально для динамической генерации веб-страниц. Намного превосходит возможности SSI. Имеет функции работы с базами данных (MySQL), создания графических файлов Jpeg и PNG (библиотека GD), обработки XML-документов и многие другие.
В начало
Профиль : Фотоальбом : Личное Сообщение : ICQ
Олег
Сообщение  14 Июл 2009, 16:14  Ссылка : Ответить с цитатой
Возраст: 45 Пол: Мужской  Доверенный пользователь
C нами с 27.03.2005
Репутация: 204.2

Павлин, у Вас в запросе записи из таблицы `tovars` никак не связаны с записями из других таблиц. Надо либо в "WHERE" добавить условие связи, либо соединять таблицы, как у Вас это сделано для `users` и `sales`.

P.S.: И лучше задавать подобные вопросы в отдельнй теме про SQL, как предложил NarWhal (впрочем, я здесь не модератор).

_____________________________
Уточняйте значение слов, и вы избавите человечество от половины своих заблуждений. Рене Декарт
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение : E-mail
4t0m
Сообщение  14 Июл 2009, 16:20  Ссылка : Ответить с цитатой
Возраст: 38 Пол: Мужской 
C нами с 08.10.2005
Репутация: 77.1

veloadmin писал(а):
Если вы используете форму INPUT FILE, то tmp файл создается атоматически в папке /tmp с уникальным имененм и удаляется по закрытию скрипта.

Добавлено спустя 3 минуты 50 секунд:

ЗЫ данные надо брать из массива FILE:

В каждом элементе массива $_FILE будет размещена следующая информация:
$_FILE['ufile']['name'] — имя выбранного файла (например, uploadme.txt)
$_FILE['ufile']['type'] — тип выбранного файла (например, image/jpg)
$_FILE['ufile']['size'] — размер выбранного файла в байтах
$_FILE['ufile']['tmp_name'] — имя и каталог для временного размещения файла на сервере
$_FILE['ufile']['error'] — код ошибки, возникает в том случае, если попытка загрузки была неудачной

Здесь 'ufile' это соответственно name в вашем INPUT - e

$_FILE? Разве есть такая предопределенная переменная? Насколько я знаю в PHP есть только $_FILES
http://ru2.php.net/manual/ru/reserved.variables.php
В любом случае, вы мой код просмотрели полностью? Я беру данные из "tmp_name", при этом аттач к письму не крепиться. Больше того: размерность массива, хранящего данные о файле всегда - 0!
В начало
Профиль : Личное Сообщение : Сайт
veloadmin
Сообщение  14 Июл 2009, 16:31  Ссылка : Ответить с цитатой
Пол: Мужской  Доверенный пользователь
C нами с 02.03.2007
Репутация: 108

Конечно FILES Улыбочка

$uploaddir = '/public_html/site/html/uploads/'; (путь к папке uploads)

if ($_FILES['attach']['name'] != '') 
{ 
    $filename = $uploaddir.basename($_FILES['attach']['name']); 

    if (!move_uploaded_file($_FILES['attach']['tmp_name'], $filename)) 
    { 
         $echo = 'Не удалось загрузить файл.';  
     } 
     else
    {
         function XMail( $_POST['from'], $_POST['to'], $_POST['subj'], $_POST['text'], $filename)
     }
}
+ сама функция


Главное тут это move_uploaded_file а остальное дополнительно Улыбочка
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение : E-mail : Сайт : ICQ
4t0m
Сообщение  14 Июл 2009, 18:20  Ссылка : Ответить с цитатой
Возраст: 38 Пол: Мужской 
C нами с 08.10.2005
Репутация: 77.1

Так, стоп. Т.е. прикрепить файл "на лету", без заливания в какую-то, пусть даже и временную директорию нельзя? Из того же tmp образа?
В начало
Профиль : Личное Сообщение : Сайт
nitro2005
Сообщение  15 Июл 2009, 19:54  Ссылка : Ответить с цитатой
Возраст: 40 Пол: Мужской 
C нами с 26.01.2005
Репутация: 112.5

4t0m писал(а):
Так, стоп. Т.е. прикрепить файл "на лету", без заливания в какую-то, пусть даже и временную директорию нельзя? Из того же tmp образа?


У него будет нечитаемое имя (типа a45fdg59ty54tggj8854g0).
В начало
Профиль : Фотоальбом : Личное Сообщение : SkypeID : ICQ
4t0m
Сообщение  15 Июл 2009, 21:25  Ссылка : Ответить с цитатой
Возраст: 38 Пол: Мужской 
C нами с 08.10.2005
Репутация: 77.1

Дело в том, что я вообще не могу получить информацию о файле из $_FILES['attach']['tmp_name'], на лету, без заливки на фтп.
Вернее не правильно выразился. Информация то есть. Путь и прочее. Но к аттачу файл все равно не крепится. Когда данные загоняю в массив, он постоянно показывает 0 размерность...
Получается, рабочий только вариант с move, отправкой и последующим удалением этого "временного" файла с фтп?! Это как-то не красиво Грустно
Вообще, с файлами, я чего-только не делал. Но к письмам не крепил, потому, для меня,- это темный лес.
В начало
Профиль : Личное Сообщение : Сайт
Павлин
Сообщение  16 Июл 2009, 14:22  Ссылка : Ответить с цитатой
Возраст: 37 Пол: Мужской 
C нами с 08.05.2009
Репутация: 5.6

Silicoid, Скажите пожалуйста как мне вставить <input type="text" maxlength="100" name="comment" size="15" value= что-бы попали только цифры т.е поля sales.stock, sales.number, sales.rest вот в этом написанном вами коде Улыбочка Юзер
<html>
<head>
<title>Опыт 1</title>
</head>

<center><A href="http://www.test1.ru/counter.php">Переход к анкеру COUNTER</A><h2>
<?php

function array_unique_slice($from) {
	$from = array_unique($from);
	$icount = count($from);
	
	$em = array();
	$d = 0;
    for ($i=0;$i<$icount;$i++) 
	    {
			$kv  = each($from);
			$key = $kv['key'];
			$value=$kv['value'];
			if (isset($value)) {$em[$d] = $value; $d++;} 
		}
	return $em; 
}

function db_query($query)
{//database_config
$mysql_host  	= 'localhost';
$mysql_user  	= 'root';
$mysql_dbs	= '128500';
$mysql_password = 'root';

$link = mysql_connect($mysql_host, $mysql_user, $mysql_password) or die("Could not connect");
		  mysql_select_db($mysql_dbs) 
		  or die("Could not select database <br> $mysql_dbs");  

  		$result = mysql_query($query) or die("Запос не выполнен!");
		return $result;
    	mysql_close($link);
} 

$per = 9;
$uid = 1;

$query = "SELECT	users.u_name, tovars.t_package, sales.t_name, sales.t_ypakovka, sales.klient, sales.stock, sales.number, sales.s_date, sales.rest, sales.period FROM sales LEFT JOIN users ON users.u_id = sales.u_id LEFT JOIN tovars ON tovars.t_name = sales.t_name WHERE sales.u_id ='1' AND sales.period = '9' GROUP BY sales.t_ypakovka, sales.klient ORDER BY sales.t_name,  sales.klient, sales.period";
$result     = db_query($query); 
$max_lines	= mysql_numrows($result);





//разгоняем все по массивам
for ($i=0;$i<$max_lines;$i++) 
	{ 
	 $line	= mysql_fetch_array($result, MYSQL_ASSOC);
	 $t_name[$i] = $line['t_name']; // тут будет весь список товаров
	 $klients[$i]= $line['klient']; // а тут список клиентов (из всех полей)
	 $package[$i] = $line['t_package']; // А тут список объёма товара
     $data[$i] = $line;
	 if (isset($line['s_date'])){
				 $date_p = explode(".",$line['s_date']);
				 $data[$i]['unix_timestamp'] = mktime(0,0,0,$date_p[1],$date_p[0],$date_p[2]); //тут все даты переводятся в формат Unix timestamp иначе потом находить самую свежую будет тааакой гемор!
				 }
	}   

// определяем название и кол-во клиентов динамические Y позиции  
$klients_names = array_unique_slice($klients);
$klients_pos  = array_flip($klients_names);
$klients_count = count($klients_names);



// определяем название и кол-во товаров динамические X позиции
$goods_names = array_unique_slice($t_name);
$goods_pos  = array_flip($goods_names);
$goods_count = count($goods_names);




// определяем название и кол-во товаров динамические X позиции
$goods_package = array_unique_slice($package);
$package_pos  = array_flip($goods_package);
$package_count = count($goods_package);



//сортируем массив, приняв во внимание, что 0 и 1 столбец используются 
// столбец 0 - для ввода названия 
// столбец 1 - для вывода типа упаковки
// столбец 2 - для вывода объема упаковки
// столбец 3...х+3 - это столбцы для соответствующих покупателей
// столбец х+4 - количество товара на складе
// столбец х+5 - остаток
// столбец x+6 - дата последней продажи

$output_table = array();
reset($data);
for ($x=0;$x<$max_lines;$x++) 
	{
	 $line = $data[$x];
	 $x_shift = $klients_pos[$line['klient']]+3;
	 $y_shift = $goods_pos[$line['t_name']];
	 $p_shift = $package_pos[$line['t_package']];
	//для каждого конкретного товара 
	 if (isset($output_table [$y_shift][$x_shift])) 
	 	{ // если в ячейке уже есть данные то суммируем их
		$curent_data = $output_table [$y_shift][$x_shift];
		$output_table [$y_shift][$x_shift] = $curent_data+ $line['number'];
		} else
		{ // создаем данные с нуля
		$output_table [$y_shift][$x_shift] = $line['number'];
		}

	//для "на складе"
	 if (isset($output_table [$y_shift][$klients_count+3])) 
	 	{ // если в ячейке уже есть данные то суммируем их
		$curent_stock = $output_table [$y_shift][$klients_count+3];
		$output_table [$y_shift][$klients_count+3] = $curent_stock+$line['stock'];
		} else
		{ // создаем данные с нуля
		$output_table [$y_shift][$klients_count+3] = $line['stock'];
		}

   //для "остатки"
	 if (isset($output_table [$y_shift][$klients_count+4])) 
	 	{ 
		$output_table [$y_shift][$klients_count+4] = $output_table [$y_shift][$klients_count+4] + $line['rest'];
		} else
		{ // создаем данные с нуля
		$output_table [$y_shift][$klients_count+4] = $line['rest'];
		}
	
	// находим дату последней продажи
	if (isset($output_table [$y_shift][$klients_count+5])) 
	 	{ 
		if ($line['unix_timestamp']>$output_table [$y_shift][$klients_count+5]){$output_table [$y_shift][$klients_count+5] = $line['unix_timestamp'];}
		} else
		{ // создаем данные с нуля
		$output_table [$y_shift][$klients_count+5] = $line['unix_timestamp'];
		} 
	 
	 $output_table [$y_shift][0] = $line['t_name'];
	 $output_table [$y_shift][1] = $line['t_ypakovka'];
	 $output_table [$y_shift][2] = $line['t_package'];
}

// перегоняем все таймстампы во время
for ($y=0;$y<$goods_count;$y++) 
	{
	$output_table [$y][$klients_count+5] = date ("d.m.Y",$output_table [$y][$klients_count+5]);
	}




//1. создаем заголовок таблицы
$table_header = '<body><table border="1" bgcolor="#FFFFb1" cellspacing="0" cellpadding="2"><tr><td colspan ="3" align = "center" >Отчет заполняется в коробах</td><td colspan ="200" align = "center">Период № '.$line[period].'</td></tr><tr><td width ="150">Наименование</td><td>Тип</td><td>Package</td>';
for ($y=0;$y<$klients_count;$y++) {$table_header = $table_header.'<td><input type="text" maxlength="100" name="comment" size="15" value="'.$klients_names[$y].'"</td>';}
$table_header = $table_header.'<td>На складе</td><td>Остаток</td><td>Изменено</td></tr>';
$table_futter='</table></body>';
$table_body='';

//создаем таблицу
for ($x=0;$x<$goods_count;$x++) 
	{ $table_body = $table_body.'<tr>';
		for ($y=0;$y<$klients_count+6;$y++) 
		{
		 if (isset($output_table[$x][$y]))	{ $data = $output_table[$x][$y];} else {$data='-';}
		 $table_body = $table_body.'<td>'.$data.'</td>';
		}
		$table_body = $table_body.'</tr>';
	}

echo $table_header.$table_body.$table_futter;
echo '<form  action="#">
   <p><input type="submit" name="submit" value="Сохранить"></p>
  </form>'


?>

</body>
</html>
А вообше огромное вам thanks!

_____________________________
Прошу не тыкать в мануал его и так предостаточно!!!
В начало
Профиль : Личное Сообщение : Сайт : SkypeID : ICQ
4t0m
Сообщение  20 Июл 2009, 13:11  Ссылка : Ответить с цитатой
Возраст: 38 Пол: Мужской 
C нами с 08.10.2005
Репутация: 77.1

Товарищи, был дико не прав, извиняюсь. Собс-но ошибок в коде не было никаких. Абсолютно - 100% рабочий и правильный код. Единственная неудобность, файлы, как и заметил уважаемый тов. nitro2005, прикрепляются с корявыми именами (собс-но этого и следовало ожидать от tmp_name). Вся проблема была в одном единственном месте, в котором я, ест-но, не догадался посмотреть. По-просту не был указан тип формы, из которой все эти данные и приходили.
enctype="multipart/form-data"

Вывод: Крепить файлы на лету можно без проблем, только внимательней смотрите на формы Подмигивание
В начало
Профиль : Личное Сообщение : Сайт
Silicoid
Сообщение  20 Июл 2009, 20:23  Ссылка : Ответить с цитатой
Возраст: 45 Пол: Мужской 
C нами с 28.07.2005
Репутация: 135.1

Павлин, хм задачка нетривиальная достаточно. А вообще, если честно, я не понял куда должно выводиться это поле.
точнее вместо чего. или вместе с чем
В начало
Профиль : Блог : Личное Сообщение : Сайт : ICQ
Павлин
Сообщение  21 Июл 2009, 7:17  Ссылка : Ответить с цитатой
Возраст: 37 Пол: Мужской 
C нами с 08.05.2009
Репутация: 5.6

Silicoid, Я задался мыслью теперь сделать таблицу чтоб можно было таблицу создавать и редактировать в онлайн и сохранять в базе, а это <input type="text" maxlength="100" name="comment" size="15" value= я просто подумал что этот вариан подойдёт, вот простите плиз если написал ерунду но умного на ум ничего не пришло Юзер.

_____________________________
Прошу не тыкать в мануал его и так предостаточно!!!
В начало
Профиль : Личное Сообщение : Сайт : SkypeID : ICQ
Silicoid
Сообщение  21 Июл 2009, 14:00  Ссылка : Ответить с цитатой
Возраст: 45 Пол: Мужской 
C нами с 28.07.2005
Репутация: 135.1

Павлин, во первых кол-во ячеек - не фиксировано, соответственно надо еще предварительно разъяснить скрипту кол-во обрабатываемых ячеек

в общем можно добавить вот сюда еще одну строку, которая будет замещать все значения в столбцах 3 и 4, например на ваши
// перегоняем все таймстампы во время
for ($y=0;$y<$goods_count;$y++) 
	{
	$output_table [$y][$klients_count+5] = date ("d.m.Y",$output_table [$y][$klients_count+5]);
        //вот сюда вставляем код...
$output_table [$y][$klients_count+2] = '<input type="text" maxlength="100" name="comment'.$y.'" size="15" value="'.[$y][$klients_count+2].'">";
	}

(код написан для примера)
а еще надо будет в конце формы создать поле count c параметром hidden из которого будет браться кол-во строк
В начало
Профиль : Блог : Личное Сообщение : Сайт : ICQ
Павлин
Сообщение  21 Июл 2009, 15:53  Ссылка : Ответить с цитатой
Возраст: 37 Пол: Мужской 
C нами с 08.05.2009
Репутация: 5.6

Silicoid, вот блин не могу разобрать где ошибка играться с запятыми и ковычками устал Parse error: syntax error, unexpected '[' in Z:\home\test1.ru\www\index4.php on line 153 ругается вот на эту строку $output_table [$y][$klients_count+2] = '<input type="text" maxlength="100" name="comment '.$y.'" size="15" value = "'.[$y][$klients_count+2].'">";
}

_____________________________
Прошу не тыкать в мануал его и так предостаточно!!!
В начало
Профиль : Личное Сообщение : Сайт : SkypeID : ICQ
Олег
Сообщение  21 Июл 2009, 16:30  Ссылка : Ответить с цитатой
Возраст: 45 Пол: Мужской  Доверенный пользователь
C нами с 27.03.2005
Репутация: 204.2

Павлин, а чего Вы ждёте от этой конструкции?
'...' . [$y][$klients_count+2] . '...'

_____________________________
Уточняйте значение слов, и вы избавите человечество от половины своих заблуждений. Рене Декарт
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение : E-mail
Malkom
Сообщение  21 Июл 2009, 17:56  Ссылка : Ответить с цитатой
Возраст: 46 Пол: Мужской 
C нами с 18.11.2006
Репутация: 119.1

Подскажите, можно ли унифицировать эту функцию, для применения во всех браузерах(данная конфигурация работает только в IE)

<script>

function click(e) 
   {
      if (document.all) 
        {
           if (event.button == 2) 
             { 
              alert("Правая кнопка мыши отключена!");
              return false;
             }
         }
    }

if (document.layers) 
{ document.captureEvents(Event.MOUSEDOWN); }

document.onmousedown=click;

</script>
В начало
Профиль : Блог : Личное Сообщение
Silicoid
Сообщение  21 Июл 2009, 19:49  Ссылка : Ответить с цитатой
Возраст: 45 Пол: Мужской 
C нами с 28.07.2005
Репутация: 135.1

Павлин, как я уже говорил, в рабочее время у меня для написания чего-либо, только форма ввода ансортеда, по этому вот я и допускаю таки баги.. сорри.
Как уже сказал Олег, в этой структуре ошибка. Должно быть $output_table [$y][$klients_count+2]
Malkom, Вы немного ошиблись разделом. Это в помощь по Javascript Подозреваю, что все проблемы в несовпадении синтаксисов (или вообще в поддержке функции мозилой) в первом случае необходимо ввести проверку типа браузера и правильный синтаксис. во втором случае - может как окольно можно..
но я в жабаскрипте вообще не сильно копенгаген по этому сразу так не помогу
В начало
Профиль : Блог : Личное Сообщение : Сайт : ICQ
Показать сообщения:   
На страницу «  1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25  »

Unsorted   ~  Software  ~  Development and Design  ~  Помощь по PHP

Ответить на тему

Перейти:  





Powered by phpBB   © Unsorted Team  support@unsorted.me  promo@unsorted.me  Полезные скрипты