Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Вопросы по PHP (для новичков)

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Вопросы по PHP (для новичков)
Имя
Сообщение << Старые топики   Новые топики >>
Вопросы по PHP (для новичков) - 2008-09-01 02:16:50.180000   
AdReNaL1Ne

Сообщений: 8027
Оценки: 350
Присоединился: 2005-09-11 06:38:05
Сабж только тут, топы с подобной тематикой будут удаляться.
Post #: 1
RE: Вопросы по PHP (для новичков) - 2008-09-01 09:48:02.120000   
koro

Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
mysql_query возвращает индефикатор , mysql_result строку по индефикатору, а как проверить наличие строки, что-то типа:
$query="IF(".$log."='login' from user,0,1);"
или
"select case ".$log." when login then 1 else 0 end" - выдаёт что поля login нет field list в mysql, дык какой командой его туда внести?
Post #: 2
RE: Вопросы по PHP (для новичков) - 2008-09-01 11:13:35.343333   
magistr_bender

Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
вообще эту проверку надо выполнять перед запросом в виде if (isset($login)) {а тут действие если логин задан}
Post #: 3
RE: Вопросы по PHP (для новичков) - 2008-09-01 12:26:24.026666   
koro

Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
нда, почитай ещё раз пост , плз…
проверку в мускуле надо сделать а не в пхп, средствами пхп или мускула - if используетя в мускуле тоже…
Post #: 4
RE: Вопросы по PHP (для новичков) - 2008-09-01 20:48:17.596666   
magistr_bender

Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
ну дык тогда всё ещё проще if (".$log."<>'' from user,0,1);
вот только как ставится знак неравно в мускле непомню… или так <> или так !=
Post #: 5
RE: Вопросы по PHP (для новичков) - 2008-09-01 21:43:21.533333   
koro

Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
не так понял =)
IF(".$log."='login' from user,0,1) - это не верный запрос, я имел ввиду надо составить запрос к мускулу с ТАКИМ ЖЕ смыслом НО с правельным синтаксисом, т.е. как внести  поле из таблици в данное условие, а именно как это поле вставить в field list???

+
quote:

if (".$log."&lt;&gt;'' from user,0,1); - а с чем в данном случае сравнивается&nbsp; переменная лог?, с from user?



И вторая часть вопроса - как добиться такогоже результата средствами пхп 
Post #: 6
RE: Вопросы по PHP (для новичков) - 2008-09-01 22:00:40.606666   
magistr_bender

Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
може я дурак но ничё непонял чё тебе надо..
а как добиться того же результата на пхп я написал
if (isset($login))
{
$query="SELECT чтото FROM таблица WHERE login='".$login."'";
}
Post #: 7
RE: Вопросы по PHP (для новичков) - 2008-09-01 22:26:57.633333   
koro

Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
да не проверка наличия переменной в пхп , а запрос через пхп к мускулу и там уже в таблице узверей  проверка  совпадения строки в поле login  с переменной $log
Post #: 8
RE: Вопросы по PHP (для новичков) - 2008-09-01 22:40:40.826666   
oRb

Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
ну и?
Разве так не подходит?
"SELECT 1 FROM `users` WHERE `login`='".addslashes($_POST['login'])."'"
Post #: 9
RE: Вопросы по PHP (для новичков) - 2008-09-01 23:07:44.210000   
koro

Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
quote:

ORIGINAL: oRb

ну и?
Разве так не подходит?
"SELECT 1 FROM `users` WHERE `login`='".addslashes($_POST['login'])."'"



$query="SELECT 1 FROM 'user' WHERE 'login'='".addslashes($_POST['log'])."'";
$res=mysql_query($query, $connect);
$result=mysql_result($res,0);

так ?
вроде все просто, но где-то тут ошибка=(
Post #: 10
RE: Вопросы по PHP (для новичков) - 2008-09-01 23:40:12.770000   
magistr_bender

Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
ыы.. а это что такое? mysql_query($query, $connect); как я помню у квери один параметр только .. сам запрос и всё
Post #: 11
RE: Вопросы по PHP (для новичков) - 2008-09-02 01:41:53.940000   
Панда

Сообщений: 232
Оценки: 0
Присоединился: 2008-03-05 07:38:35.890000

quote:

ORIGINAL: brtn

quote:

ORIGINAL: oRb

ну и?
Разве так не подходит?
"SELECT 1 FROM `users` WHERE `login`='".addslashes($_POST['login'])."'"



$query="SELECT 1 FROM 'user' WHERE 'login'='".addslashes($_POST['log'])."'";
$res=mysql_query($query, $connect);
$result=mysql_result($res,0);

так ?
вроде все просто, но где-то тут ошибка=(



$res=mysql_query($query, $connect);
$num_rows = mysql_num_rows($res);
if ($num_rows==1) {
//пользователь есть
}
elseif ( $num_rows==0) {
//нету пользователя
}
else {
// DROP trable users. кривая база
}


Post #: 12
RE: Вопросы по PHP (для новичков) - 2008-09-02 06:23:23.720000   
koro

Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
спс
quote:

$num_rows = mysql_num_rows($res);

с количеством рядов ясно, но почему через mysql_result нельзя?
Post #: 13
RE: Вопросы по PHP (для новичков) - 2008-09-02 07:08:10.946666   
Панда

Сообщений: 232
Оценки: 0
Присоединился: 2008-03-05 07:38:35.890000
все можно, но это стандартный вариант
да и более быстрый походу
Post #: 14
RE: Вопросы по PHP (для новичков) - 2008-09-02 17:19:05.583333   
magistr_bender

Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
как загрузить картинку размером до 1 мб и переименовать её сразуже при загрузке?
Post #: 15
RE: Вопросы по PHP (для новичков) - 2008-09-02 17:24:04.976666   
koro

Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource
вот ошибку выдаёт однако.
Post #: 16
RE: Вопросы по PHP (для новичков) - 2008-09-02 20:49:28.180000   
oRb

Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
quote:

ORIGINAL: magistr_bender

как загрузить картинку размером до 1 мб и переименовать её сразуже при загрузке?
работай так же как и с обычным аплоадом файлов
quote:

ORIGINAL: brtn

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource
вот ошибку выдаёт однако.
напиши mysql_query("твой запрос") or die(mysql_error());
Тогда станет понятно в чем у тебя ошибка
Post #: 17
RE: Вопросы по PHP (для новичков) - 2008-09-02 21:16:01.316666   
magistr_bender

Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
помогите написать скриптик голосования, желательно с базой… может у кого есть пример? а то я просто в ступоре незнаю как его написать чтоб считал количество голосов за каждый пункт да ещё и собирал ники юзеров чтоб повторно нельзя было голосовать
Post #: 18
RE: Вопросы по PHP (для новичков) - 2008-09-02 22:04:39.943333   
koro

Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
quote:


напиши mysql_query("твой запрос") or die(mysql_error());
Тогда станет понятно в чем у тебя ошибка


You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''user' WHERE 'login'='gg'' at line 1

$query="SELECT 1 FROM 'user' WHERE 'login'='".addslashes($_POST['log'])."'";
$res=mysql_query($query, $connect) or die(mysql_error());
Post #: 19
RE: Вопросы по PHP (для новичков) - 2008-09-02 22:47:03.993333   
oRb

Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
ну дык правильно, кавычки, в которые вписываются названия столбцов или таблиц должны быть другими: вместо ' надо ` (клавиша тильда (под ескейпом) )
Post #: 20
RE: Вопросы по PHP (для новичков) - 2008-09-03 00:25:08.746666   
AdReNaL1Ne

Сообщений: 8027
Оценки: 350
Присоединился: 2005-09-11 06:38:05
quote:

ORIGINAL: magistr_bender

помогите написать скриптик голосования, желательно с базой… может у кого есть пример? а то я просто в ступоре незнаю как его написать чтоб считал количество голосов за каждый пункт да ещё и собирал ники юзеров чтоб повторно нельзя было голосовать


http://woweb.ru/load/69
Post #: 21
RE: Вопросы по PHP (для новичков) - 2008-09-04 17:03:53.493333   
koro

Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
Неправильный синтаксис или дело в ф-ции fopen(), если в
$fh=fopen('brut.txt','r');
$n=0;
while(!feof($fh)){
$n++;
}
fclose($fh);

очень долго выполняется запрос.
Fatal error: Maximum execution time of 9 seconds exceeded

з.ы. в brut.txt 3 строчки
Post #: 22
RE: Вопросы по PHP (для новичков) - 2008-09-04 17:27:37.143333   
FriLL

Сообщений: 2539
Оценки: 335
Присоединился: 2007-08-11 17:14:26.703333
$n=0;
while(!feof($fh)){
$n++;
}
странная вешь
скока раз цикл то должен мотаться
конечно запрос долго выполняется если цикл бесконечный
и мотается он потому что указатель в начеле файла
Post #: 23
RE: Вопросы по PHP (для новичков) - 2008-09-04 20:54:52.193333   
AdReNaL1Ne

Сообщений: 8027
Оценки: 350
Присоединился: 2005-09-11 06:38:05
Вообще-то кол-во строчек в файле считается гораздо проще - $n=count(file('brut.txt'));
Post #: 24
RE: Вопросы по PHP (для новичков) - 2008-09-04 22:06:43.033333   
koro

Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
FriLL, указатель должен быть в начале файла, он ставится туда ф-цией, не понял , можно поподробнее?

AdReNaL1Ne, спасиб
Post #: 25
RE: Вопросы по PHP (для новичков) - 2008-09-05 09:14:26.283333   
oRb

Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000

quote:

ORIGINAL: AdReNaL1Ne

Вообще-то кол-во строчек в файле считается гораздо проще - $n=count(file('brut.txt'));

надеюсь файл будет не более 8 мб ;)
Post #: 26
RE: Вопросы по PHP (для новичков) - 2008-09-05 09:51:39.080000   
Панда

Сообщений: 232
Оценки: 0
Присоединился: 2008-03-05 07:38:35.890000
для 3-х строчек в самый раз
Post #: 27
RE: Вопросы по PHP (для новичков) - 2008-09-05 15:32:55.960000   
AdReNaL1Ne

Сообщений: 8027
Оценки: 350
Присоединился: 2005-09-11 06:38:05
quote:

ORIGINAL: oRb

quote:

ORIGINAL: AdReNaL1Ne

Вообще-то кол-во строчек в файле считается гораздо проще - $n=count(file('brut.txt'));

надеюсь файл будет не более 8 мб ;)


Если инфы так много, врядли её будут в файле хранить)

Ну а извращенцы могут post_max_size увеличить.
Post #: 28
RE: Вопросы по PHP (для новичков) - 2008-09-05 15:33:17.850000   
koro

Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
quote:

надеюсь файл будет не более 8 мб ;)


возможно более, как в этом случае реализовать? )

quote:

Если инфы так много, врядли её будут в файле хранить)

БД не подойдёт, а где ещё текст хранить кроме файла в таком случае?
Post #: 29
RE: Вопросы по PHP (для новичков) - 2008-09-05 15:49:19.296666   
FriLL

Сообщений: 2539
Оценки: 335
Присоединился: 2007-08-11 17:14:26.703333
quote:

FriLL, указатель должен быть в начале файла, он ставится туда ф-цией, не понял , можно поподробнее?

ты ставиш указатель в начало файла
а функцией feof($fh) проверяет достигнут ли конец
quote:

$fh=fopen('brut.txt','r');
$n=0;
while(!feof($fh)){
$n++;
}
fclose($fh);


те получется - если конец функции не достигнут то мотается цикл (причем бесконечный почемуто)
но конец функции у тебя не достигается НИКОГДА тк стоит "r"
Решение - либо убрать 'r' либо !feof($fh)
Post #: 30
RE: Вопросы по PHP (для новичков) - 2008-09-05 15:55:44.580000   
koro

Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
quote:

ты ставиш указатель в начало файла

естественно потому что нужно с начала файла делать цикл, получается что указатель должен изменяться по ходу выполнения цикла?

quote:


либо убрать 'r' либо !feof($fh)

Если убрать r то как явно указать именно на ночало файла?

+вдогонку =) :
$text=$parse_url[query];
settype($text,"string");
$preg_replace=preg_replace("from","[from table]",$text);

Ошибка:
Warning: preg_replace() : Delimiter must not be alphanumeric or backslash in
Post #: 31
RE: Вопросы по PHP (для новичков) - 2008-09-05 16:29:00.560000   
FriLL

Сообщений: 2539
Оценки: 335
Присоединился: 2007-08-11 17:14:26.703333
$fh=fopen('brut.txt','r');
$n=0;
while($n=0)){

$n++;

if ( feof($fh))
{
стоп цикла;
}
}

fclose($fh);


что то этого типа надо
Post #: 32
RE: Вопросы по PHP (для новичков) - 2008-09-05 16:48:31.196666   
koro

Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
FriLL, спс я так и думал ) +1
Post #: 33
RE: Вопросы по PHP (для новичков) - 2008-09-05 19:08:02.870000   
koro

Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
ошибка, наверное в регулярном выражении?

$text=$parse_url[query];
settype($text,"string");
$preg_replace=preg_replace("from","[from table]",$text);

Ошибка:
Warning: preg_replace() : Delimiter must not be alphanumeric or backslash in
Post #: 34
RE: Вопросы по PHP (для новичков) - 2008-09-05 19:18:19.843333   
magistr_bender

Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
пробелемма кажись в скобках.. попробуй так
$preg_replace=preg_replace("from","\[from table\]",$text);

Post #: 35
RE: Вопросы по PHP (для новичков) - 2008-09-05 19:56:43.403333   
oRb

Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000

quote:

ORIGINAL: brtn

ошибка, наверное в регулярном выражении?

$text=$parse_url[query];
settype($text,"string");
$preg_replace=preg_replace("from","[from table]",$text);

Ошибка:
Warning: preg_replace() : Delimiter must not be alphanumeric or backslash in

прежде чем юзать регулярки нужно понять, что это.
Для начало исправить на такое preg_replace("!from!","[from table]",$text);
Далее: использование регулярных выражений в данном случае не уместно, тк для таких целей созданна функция str_replace, которая и работать будет быстрее.
И наконец: http://ru2.php.net/manual/ru/regexp.reference.php
Post #: 36
RE: Вопросы по PHP (для новичков) - 2008-09-05 20:27:32.603333   
koro

Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
quote:

прежде чем юзать регулярки нужно понять, что это. http://ru2.php.net/manual/ru/regexp.reference.php

отложу это на завтра, на свежую голову так сказать )
quote:

на такое preg_replace("!from!","[from table]",$text);

и правда, с примерами использования этой ф-ции мне не повезло - там про символы ! и слова не было
quote:

str_replace, которая и работать будет быстрее.

да, сделаю через неё , хотя теперь и preg_replace();  работает, если быстрее будет)

спасибо, опять помог очень)
Post #: 37
RE: Вопросы по PHP (для новичков) - 2008-09-05 20:52:43.490000   
magistr_bender

Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
quote:

ORIGINAL: brtn
БД не подойдёт, а где ещё текст хранить кроме файла в таком случае?

это смотря какая бд… можно хранить в XML
Post #: 38
RE: Вопросы по PHP (для новичков) - 2008-09-05 20:56:48.710000   
koro

Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
magistr_bender, это морока лишняя, мне нужно чтобы  узер мог свои txt файлы кидать и усё, а создавать XML, форматировать присылаемые данные и заливать их туда это лишняя морока, да и не по знаниям моим =)
а если в БД  всё заливать - на хосте ограничение стоит на размер…. вот так =)
Post #: 39
RE: Вопросы по PHP (для новичков) - 2008-09-05 21:26:50.626666   
AdReNaL1Ne

Сообщений: 8027
Оценки: 350
Присоединился: 2005-09-11 06:38:05
quote:

ORIGINAL: brtn

БД не подойдёт, а где ещё текст хранить кроме файла в таком случае?


Если файл больше 8 Мб надо в php.ini post_max_size выставить до нужного размера, либо непосредственно в скрипте: ini_set ('post_max_size','20M');
Post #: 40
Страниц:  [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
Все форумы >> [Веб-программинг] >> Вопросы по PHP (для новичков)







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.