Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71

Открыть новую тему     Написать ответ в эту тему

ManderX



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
поставил PHP и APACHE.  
написал index.html:  
<html><body> <form action=test.php> Name: <input type=text name="name"><br>  
Year: <input type=text name="year"><br> <input type=submit value="ГОТОВО"> </form>  
</body></html>  
И test.php в том же каталоге:  
echo "$name i $year";  
выполняю, говорит, что переменыее undefined  
в чём трабла??? и ещё гдя взять extensions???




Цитата:
 
Внимание!
 
Эта тема будет закрыта, поэтому по конкретным вопросам по PHP
создаём новые темы, либо используем существующие (один вопрос — одна тема)

Кто-нибудь пытался что-то в этих сeмидесяти страницах найти?
 
В этой теме только отвечаем на оставшиеся без ответа вопросы...

 
 

Всего записей: 84 | Зарегистр. 11-06-2002 | Отправлено: 05:36 11-06-2002 | Исправлено: Svarga, 04:17 23-07-2003
smirnoff123



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто-нибудь может сказать - это баг или так должно быть
Пишу
$var1 = "var1";
$var2 = "var2";
$obj = new CTest($var1, $var2);
 
class CTest {
var $attr1;
var $attr2;
 
function CTest($var1, $var2) {
$this->$attr1 = $var1;
print "\$this->\$attr1 = " . $this->$attr1;
$this->$attr2 = $var2;
print "\$this->\$attr1 = " . $this->$attr1;
}
}
 
Получается  
$this->$attr1 = var1
$this->$attr1 = var2
 
Почему поменялось значение $attr1?

Всего записей: 269 | Зарегистр. 28-03-2003 | Отправлено: 18:01 12-05-2003
hamshen

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
smirnoff123

Цитата:
Кто-нибудь может сказать - это баг или так должно быть  

Так должно и быть.  
В твоем случае $this->$attr1 и $this->$attr2 - одна и та же переменная.
У тебя ошибки в коде, второго $ не должно быть. Вместо

Код:
$this->$attr1 = $var1;

должно быть так

Код:
$this->attr1 = $var1;

 


----------
Хорошие умирают молодыми, но плохие умирают уродливо.

Всего записей: 614 | Зарегистр. 22-04-2002 | Отправлено: 18:26 12-05-2003
Sergeant

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Holland,
Какие могут быть переносы строк в массиве? Функция file() возвращает массив, каждый элемент которого - строка из файла. Чтобы добавить, как ты выражаешься, новую строку, надо лишь добавить элемент в массив. См. ф-цию array_push(); к примеру или таким макаром забивай в массив: $array[]="new string"; - это добавит новый элемент в массив.
 
Соответственно затем при записи делаешь вот так:
fwrite($fp, implode("\n", $array));
Это переведет весь массив в строку, где разделителем элементов будет перенос (\n).

Всего записей: 1553 | Зарегистр. 06-08-2001 | Отправлено: 18:50 12-05-2003
Holland



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sergeant
 
Да ,выразился неправильно Вот этот /n - именно то, что мне надо, спасибо, а то в мануале нифига не нашел. Еще раз спасибо

Всего записей: 112 | Зарегистр. 15-08-2002 | Отправлено: 20:29 12-05-2003
KVCH



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
$a[1][1] = '11';
$a[1][2] = '12';
$a[1][3] = '13';
 
$a[2][1] = '21';
$a[2][2] = '22';
$a[2][3] = '23';
 
foreach ($a as $_1 => $_2) foreach ($_2 as $_3 => $_4) print "$_1 - $_3 - $_4<br>";
 
можно ли данный код оптимизнуть, так чтоб одним foreach'ом циклился массив $a ?

----------
FreeBSD лучше Linux !

Всего записей: 1741 | Зарегистр. 03-03-2002 | Отправлено: 08:10 14-05-2003
VolxV

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Цикл - явление линейное. Массив же в приведенном случае двумерен.

Всего записей: 898 | Зарегистр. 01-06-2001 | Отправлено: 08:16 14-05-2003
Brutus



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Как вытащить последний символ из строки $string?

----------
http://coding.pp.ru - Все кодеры сюда!
http://forum.web-hack.ru/ - Forum Web-Hack
irc.dal.net.ru #coders

Всего записей: 641 | Зарегистр. 18-11-2002 | Отправлено: 13:15 15-05-2003 | Исправлено: Brutus, 13:24 15-05-2003
Slippery



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Brutus

Код:
 
 echo substr ( $string,-1)
 

Всего записей: 326 | Зарегистр. 31-10-2002 | Отправлено: 13:23 15-05-2003
VolxV

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Представь, что строка - это массив символов с индексами от [0] до [n-1].
 
Добавлено
Slippery, или так. :)

Всего записей: 898 | Зарегистр. 01-06-2001 | Отправлено: 13:24 15-05-2003
Brutus



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ага, пасиб
 
Добавлено
А как округлить число типа float до 1 знака после запятой?
 
Добавлено
Отбой, нашел уже:
round(N, количество знаков после запятой);

Всего записей: 641 | Зарегистр. 18-11-2002 | Отправлено: 13:25 15-05-2003
KVCH



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
А как округлить число типа float до 1 знака после запятой?

 
$i = 1.345345345;
 
print round ($i, 1);


----------
FreeBSD лучше Linux !

Всего записей: 1741 | Зарегистр. 03-03-2002 | Отправлено: 16:32 15-05-2003
Volgar



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вывод данных из таблиц mySQL в PHP-файл?
 
Подскажите, пожалуйста, как организовать такую вещь. Пользователи вводят свои данные в поля, которые попадают в базу данных. Здесь у меня всё в порядке. А вот потом админ должен эти данные, после проверки, опубликовать, т. е. должен создаваться PHP-файл с данными из базы по типу гостевой книги. Как всё это дело автоматизировать? Если не трудно, пожалуйста, в коде.
И как организовать поиск по различным критериям базы? Есть ли готовый, настраиваемый под конкретную базу, скрипт поиска?

Всего записей: 592 | Зарегистр. 16-03-2003 | Отправлено: 23:15 16-05-2003
Sergeant

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Volgar,
Сделай там в базе еще одно поле.. со значениями 0 и 1. При добавлении в базу пиши туда 0.. потом, когда админ просмотрит и скажет "одобрям", значение меняй на 1. Ну, и выводи в гостевую все сообщение, где это поле равно 1 (select * from bla-bla where approved='1').
 
Вот тебе и автоматизация

Всего записей: 1553 | Зарегистр. 06-08-2001 | Отправлено: 03:18 17-05-2003
DRon



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Volgar

Цитата:
как организовать поиск по различным критериям базы? Есть ли готовый, настраиваемый под конкретную базу, скрипт поиска?  

 
Запрос делай:
SELECT * FROM table WHERE pole1 LIKE '%что-то там%' AND pole2 LIKE '%что-то ещё%'
 
и т.д.
 
Если ненужно какой-нить спецефической штуки организовывать в поиске, то ты такого рода запросами вполне сможешь все сделать...

Всего записей: 168 | Зарегистр. 27-06-2001 | Отправлено: 08:50 17-05-2003
Volgar



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sergeant
DRon
Спасибо. Всё это пока сложно для меня реализовать, но буду пробовать. У меня есть толстая книга по PHP&mySQL с диском))

Всего записей: 592 | Зарегистр. 16-03-2003 | Отправлено: 10:48 17-05-2003
milka



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята плиз, нужна ваша помощь.
Нужно перетусовать два массива данных, т.е. имеем:
1. a[0],a[1],a[2],a[3],a[4],a[5]
2. b[0],b[1],b[2],b[3],b[4],b[5],b[6],b[7],b[8],b[9]
 
нужно получить массив с[i] с такой структурой:
a[0]
b[0]
a[1]
b[1]
a[2]
b[2]
a[3]
b[3]
a[4]
b[4]
a[5]
b[5]
 
Массив a[i] всегда меньше, чем b[i].
 
Заранее огромное спасибо!!!

Всего записей: 131 | Зарегистр. 26-07-2001 | Отправлено: 14:47 17-05-2003
Sergeant

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
milka,
array_merge(); должна тебя спасти.

Всего записей: 1553 | Зарегистр. 06-08-2001 | Отправлено: 15:18 17-05-2003
hamshen

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sergeant
Не думаю. У array_merge() другой алгоритм.
 
milka
Тебе поможет вот что (на красоту не претендует, первое что пришло в голову):

Код:
 
$c = array();
$as = count ($a);
$bs = count ($b);
for ($i=0; $i<$as; $i++)
{
$c[] = $a[$i];
$c[] = $b[$i];
}
 
for ($i=$as; $i<$bs; $i++)
{
$c[] = $b[$i];
}
 


----------
Хорошие умирают молодыми, но плохие умирают уродливо.

Всего записей: 614 | Зарегистр. 22-04-2002 | Отправлено: 16:03 18-05-2003
Holland



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Коллеги!
 
Имеем следующую проблему:
 
При записи содержимого массива в внешний файл в конце каждой строки ставится знак переноса (автоматом, ессно). После этого файл несколько раз перезаписывается с новыми значениями, и эти знаки множатся. Надо бы их как-то резать Пробовал trim() - нифига не выходит, как писал с знаками - так и пишет. Что посоветуете?
 
Вот код (примерно):
 
$open=fopen(file, "w+");
$array = file($fp);
$str=$array['0'];
$write=fwrite($open,implode("\n",$str),1000);
 
и всё это по циклу, пока всё что надо не запишем.
 
Пробовал так:
 
$open=fopen(file, "w+");
$array = file($fp);
$str=$array['0'];
$str=trim($str,"\n\r\t\0\x0B"); (или $trim=trim($str,"\n\r\t\0\x0B"); )
$write=fwrite($open,implode("\n",$str),1000);
 
один хрен не выходит
 
 
 
 

Всего записей: 112 | Зарегистр. 15-08-2002 | Отправлено: 18:06 18-05-2003
sp1ke

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
как это можно заставить рабоать быстрее, а то ругается что за 30 сек не успевает сделать и как решить проблему весокосного года

Код:
<form action="create.report.php" method="post">
<table cellpadding="1" cellspacing="0" class=text_normal>
<tr>
<td>
Префикс номера
<td>
<SELECT NAME=prefix class=form_normal>
<option>52
<option>58
<option>59
</SELECT>
<!-- дата / время ПО -->
<tr>
<td>
Дата ПО (DD:MM:YYYY)
<td>
<SELECT NAME=day class=form_normal>
<?
for($i=1;$i <= 31;$i++):
 if ($i < "10"):
  if ($i == date(d)) echo "<option selected>0".$i;
  else echo "<option>0".$i;
 else:
  if ($i == date(d)) echo "<option selected>".$i;
  else echo "<option>".$i;
 endif;
endfor;
?>
</SELECT>:
<SELECT NAME=month class=form_normal>
<?
for($i=1;$i <= 12;$i++):
 if ($i < "10"):
  if ($i == date(m)) echo "<option selected>0".$i;
  else echo "<option>0".$i;
 else:
  if ($i == date(m)) echo "<option selected>".$i;
  else echo "<option>".$i;
 endif;
endfor;
?>
</SELECT>:
<SELECT NAME=year class=form_normal>
<?
$year = date(Y);
for($i=1;$i <= $year[3];$i++):
 if ($i < "10"):
  if ($i == $year[3]) echo "<option selected>200".$i;
  else echo "<option>200".$i;
 else:
  if ($i == $year[3]) echo "<option selected>20".$i;
  else echo "<option>20".$i;
 endif;
endfor;
?>
</SELECT>
<tr><td><td><input type="submit" name="create_report" value="показать" class=form_button>
</table>
</form>
<hr>
 
<br>
<?
 
if ($_POST['create_report'] != ""){
 
$day_po = $_POST['day'];
$month_po = $_POST['month'];
$year_po = $_POST['year'];
switch($_POST['month']):
case 1:
{
 $day_po++;
 if ($day_po < 10) $day_po = "0".$day_po;
 if ($day_po == '32')
 {
  $month_po++;
  if ($month_po < 10) $month_po = "0".$month_po;
  $day_po = '01';
 }
 break;
}
case 2:
{
 $day_po++;
 if ($day_po < 10) $day_po = "0".$day_po;
 if ($day_po == '29')
 {
  $month_po++;
  if ($month_po < 10) $month_po = "0".$month_po;
  $day_po = '01';
 }
 break;
}
case 3:
{
 $day_po++;
 if ($day_po < 10) $day_po = "0".$day_po;
 if ($day_po == '32')
 {
  $month_po++;
  if ($month_po < 10) $month_po = "0".$month_po;
  $day_po = '01';
 }
 break;
}
case 4:
{
 $day_po++;
 if ($day_po < 10) $day_po = "0".$day_po;
 if ($day_po == '31')
 {
  $month_po++;
  if ($month_po < 10) $month_po = "0".$month_po;
  $day_po = '01';
 }
 break;
}
case 5:
{
 $day_po++;
 if ($day_po < 10) $day_po = "0".$day_po;
 if ($day_po == '32')
 {
  $month_po++;
  if ($month_po < 10) $month_po = "0".$month_po;
  $day_po = '01';
 }
 break;
}
case 6:
{
 $day_po++;
 if ($day_po < 10) $day_po = "0".$day_po;
 if ($day_po == '31')
 {
  $month_po++;
  if ($month_po < 10) $month_po = "0".$month_po;
  $day_po = '01';
 }
 break;
}
case 7:
{
 $day_po++;
 if ($day_po < 10) $day_po = "0".$day_po;
 if ($day_po == '32')
 {
  $month_po++;
  if ($month_po < 10) $month_po = "0".$month_po;
  $day_po = '01';
 }
 break;
}
case 8:
{
 $day_po++;
 if ($day_po < 10) $day_po = "0".$day_po;
 if ($day_po == '32')
 {
  $month_po++;
  if ($month_po < 10) $month_po = "0".$month_po;
  $day_po = '01';
 }
 break;
}
case 9:
{
 $day_po++;
 if ($day_po < 10) $day_po = "0".$day_po;
 if ($day_po == '31')
 {
  $month_po++;
  if ($month_po < 10) $month_po = "0".$month_po;
  $day_po = '01';
 }
 break;
}
case 10:
{
 $day_po++;
 if ($day_po < 10) $day_po = "0".$day_po;
 if ($day_po == '32')
 {
  $month_po++;
  if ($month_po < 10) $month_po = "0".$month_po;
  $day_po = '01';
 }
 break;
}
case 11:
{
 $day_po++;
 if ($day_po < 10) $day_po = "0".$day_po;
 if ($day_po == '31')
 {
  $month_po++;
  if ($month_po < 10) $month_po = "0".$month_po;
  $day_po = '01';
 }
 break;
}
case 12:
{
 $day_po++;
 if ($day_po < 10) $day_po = "0".$day_po;
 if ($day_po == '32')
 {
  $month_po = '01';
  $day_po = '01';
  $year_po++;
 }
 break;
}
endswitch;
 
$DateTime = $_POST['year'].$_POST['month'].$_POST['day'];
 
switch($_POST['prefix']):
case 52:
{
$num_a_st = 2520000;
$num_a_en = 2529999;
break;
}
case 58:
{
$num_a_st = 2580000;
$num_a_en = 2589999;
break;
}
case 59:
{
$num_a_st = 2590000;
$num_a_en = 2599999;
break;
}
endswitch;
 
 
for ($num = $num_a_st;$num <= $num_a_en;$num++,$min_sum = 0)
{
 if (mssql_result(mssql_query("SELECT Tar FROM tarphone where PhoneA = ".$num.""),0,0) == 1)
 {
  $result = mssql_query("
SELECT CallLength FROM ".$tbl_store."
WHERE (PhoneA LIKE '%".$num."') AND (CallDateTime >= '".$DateTime."') AND
(CallDateTime < '".$year_po.$month_po.$day_po."')
");
 
/*
SELECT ".$tbl_store.".CallLength,".$tbl_store.".PhoneA
FROM ".$tbl_store." LEFT OUTER JOIN
tarphone ON tarphone.PhoneA = ".$tbl_store.".PhoneA
WHERE (".$tbl_store.".PhoneA LIKE '%".$num."') AND (".$tbl_store.".CallDateTime >= '".$DateTime."') AND
(".$tbl_store.".CallDateTime < '".$year_po.$month_po.$day_po."') AND (tarphone.Tar = 1)
 
*/
 
  if (mssql_num_rows($result) != 0)
  {
   echo "<br>".$num."<br>";
   for($i = 1; $i <= mssql_num_rows($result); $i++):
    $m = mssql_result($result,$i-1,0)/60;
    $m_a = explode(".",$m);
    if ($m_a[1] != "") $m_a[0]++;
    $min_sum += $m_a[0];
   endfor;
   echo $min_sum;
  }
 }
}
}
else echo "пусто";
?>
</tr></table></body></html>
<br>
</body></html>
 

Всего записей: 135 | Зарегистр. 12-11-2002 | Отправлено: 20:22 18-05-2003
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71

Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru