temp_late а почему ты не инициализировал переменную $t в самом цикле? и $t++ туда же не засунул? =\ Специально для таких целей существует функция str_split() ,которая бьёт строку на массивы и не нужно никаких извращений!) PHP: <?php $text = "ышвгфращфзышвгарзщыфшварышгвар"; $skoka = 3; //По сколько символов разбивать $arr = str_split($text, $skoka); for($i=0; $i < count($arr); $i++) { $str = $arr[$i]."-"; echo $str; } ?>
Всем привет, у меня такой вопрос: есть два sql запроса: Code: $sql1= SELECT min(count) FROM table1; $sql2= SELECT min(id) FROM table1 WHERE count=$sql1; Можно ли как-нибудь объединить это в один SQL запрос, пробывал так, но естественно не работает: Code: $sql=SELECT min(id) FROM table1 WHERE count=min(count);
я не очень понимаю зачем тут min(id) ведь если напимер min(count) - равен 10 то и выбора нет..значение id там только одно попробуй так PHP: $sql=SELECT min(id) FROM table1 WHERE count=(SELECT min(count) FROM table1);
Возникла такая задачка. На функцию передается переменная. А как в этой функции вывести названия переменной что ей передается, именно имя а не значение?
presidentua, ого, норкоман... ИМХО никак не сделать я вот погуглил не нащёл, да и неслышал о таком Х_Х
не наркоман, я на службе Ну в принципе это мне сдуру придумалось такое. Тоже в гугле ничего не нашел. Но как говориться, я тоже ежика не вижу, а он есть Мож кто знает как решить?
смотри допистим в таблице такие значения: Code: id count 1 5 2 6 3 4 4 4 запрос $sql1= SELECT min(count) FROM table1; вернет их так Code: id count 3 4 4 4 приведенный твой запрос, если даже он и прокатит делает два запоса в БД, а нужен один так всё таки возможно ли объединить эти два запроса в один: PHP: $sql1= SELECT min(count) FROM table1; $sql2= SELECT min(id) FROM table1 WHERE count=$sql1;
Мммм, видимо, я немного непонятно объяснил, нужно использовать как можно меньше обращений к БД, запрос: PHP: SELECT min(id) FROM table1 WHERE count=(SELECT min(count) FROM table1); также как и: PHP: $sql1= SELECT min(count) FROM table1; $sql2= SELECT min(id) FROM table1 WHERE count=$sql1; используют два обращения к БД, а нужно оптимизировать так что бы было одно...
По моему лучше сделать переменную - ключём массива. PHP: <?php $test['KEY_OF_ARRAY'] = 'VALUE_OF_ARRAY'; function var_get($arr) { $key = array_keys($arr); echo($key[0]); } var_get($test); //return 'KEY_OF_ARRAY' ?>
Спасибо NOmeR1! Так и сделаю. Думаю по другому никак.. -------------------------------- Сейчас запустил один скриптик для парсинга ГУГЛ страниц и мне периодически выбрасывает ошибку Error in my_thread_global_end() Что это вобще за ошибка. Я такую фукнуцию не юзаю и в глаза не видел
как можно грамотно проверить введённый логин юзера на наличие недопустимых символов в php? на ум приходит тока выдернуть регуляркой по паттерну, содержащему тока буквы и цифры, и если выдранный кусок не совпадает с полным логином - тогда фальс. но штото подсказывает мне, что это изврат. а также хотелось бы это проверить и на javascript
Неверно, делать предварительную проверку на клиетской стороне - как раз экономия серверного времени. Но это в тему по JS.
например, ложим хтаксесс в корень понятно что все достыпы походятчерез него, если взять прметивный пример, это защита от хотлинка родилась мысль, можно ли используя хтаксесс одать параллельно файлу обработчику на пхп
Есть предположение, что на подсчет длины через функцию на каждом цикле будет тратиться больше ресурсов, чем если подсчитать однажды и просто цеплять результат уже из переменной, если мое мнение ошибочно поправьте меня. Насчет $t++, согласен есть такое, можно, привычка.. вот научили на Pascale так делать. А что будет быстрее если сделать так?: PHP: <?php $text='! ышвгфращфзышвгарзщыфшварышгвар!!!'; $char=3;// насколько делить $sizet=strlen($text); $t=1; $out=''; for ($i=0;$i<$sizet;$i++,$t++){ if($t>$char){$t=1;$out.='-';} $out.=$text{$i}; } echo $out; ?> В твоем коде логическая ошибка, функция str_split() кромсает строку в масив по 3 символа, и потом собирает масив в едино, прибавляя в конце '-'. Ошибка в том что строка не всегда может делиться на три ровно, а тире по заданию нужно поставить через каждые 3 символа, $text='1234567'; так будет выполнять твой код 123- 456- 7- последние тире поставилось не через 3 символов, для этого нужно внести следующее условие в твой код: PHP: <?php $text = "ышвгфращфзышвгарзщыфшварышгва"; $skoka = 3; //По сколько символов разбивать $arr = str_split($text, $skoka); for($i=0; $i < count($arr); $i++) { if (strlen($arr[$i])==3){$str = $arr[$i]."-";} else{$str = $arr[$i];} echo $str; } ?> тогда будет правильно, но мне кажется мой код будет проще, и рациональней использовать системные ресусры. PS:Правильней было бы присвоить текст используя одинарный ковычки: $text = 'ышвга'; //а так : $text = "ышвга"; //он будет тратить больше ресурсов, ибо будет искать в текст переменные для их замены.