Здравствуйте Гость [ Вход | Регистрация ] | Форум в сети 6830-й день

Шановні користувачі! Запрошуємо вас до офіційного телеграм-канала 0day Community. Тут ви зможете поспілкуватися одне з одним та дізнатися про останні новини щодо роботи ресурса, поставити запитання до адміністрації, тощо. Перейти до телеграм-канала можна відсканувавши QR-код або натиснувши на посилання: @zeroday_ua

 Вопросы по PHP

Glavar
Dec 12 2010, 20:35
  
Пост #1



Репутация:   10  
Активист
*

Группа: Пользователи
Сообщений: 379
С нами с: 11-May 08


Доброго время суток!
1. Скажите как мне обрезать первых 7 знаков, а остальные занести в базу?
2. У меня есть максимальное число голосов припустим 50, как мне присвоить ему 1 место
15 глосов - 5 место
43 голоса - 2 место
28 голосов - 3 место
24 - 4 место и т.д. и что бы место записывалось и обновлялось автоматически в базе данных?

Тема для обговорення мови програмування PHP, всі сторонні коментарі будуть видалятися, а їх автори отримувати %

Сообщение отредактировал BoyKot - Feb 3 2011, 13:22
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
20 Страницы  « < 5 6 7 8 9 > »   
Reply to this topicStart new topic
Ответов(120 - 139)
Glavar
Jan 27 2011, 9:42
  
Пост #121



Репутация:   10  
Активист
*

Группа: Пользователи
Сообщений: 379
С нами с: 11-May 08


(AnNE DoM.ini @ Jan 27 2011, 1:40) Перейти к цитате

мускул-же небось
select name,sum(count(name)) from table group by name

Чет я не понял как оно работает. Но эту проблему решил.

Сообщение отредактировал Glavar - Jan 27 2011, 18:52
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
YoGi
Jan 29 2011, 20:26
  
Пост #122



Репутация:   39  
Активист
*

Группа: Пользователи
Сообщений: 435
С нами с: 21-March 08


подскажите, вот к примеру есть форма

<select name=operation>
<option value=1>Умножение</option>
<option value=2>Деление</option>
<option value=3>Сложение</option>
<option value=4>Вычитание</option>
</select>

и есть такая функция

function matchOperation ($a, $b, $operation) {

switch ($operation) {

case "Сложение" :
echo $a + $b ;
break;
case "Умножение" :
echo $a * $b ;
break;
case "Вычитание" :
echo $a - $b ;
break;
case "Деление" :
echo $a / $b ;
break;
}

вопрос как подвязать выбор действия в форме, к действию в функции и вывести результат?
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
iProphet
Jan 29 2011, 20:56
  
Пост #123



Репутация:   39  
Активист
*

Группа: Пользователи
Сообщений: 358
С нами с: 5-September 09


<script>
function matchOperation (form) {

var operation = form.operation.value;
var a = число, можно достать из поля;
var b = тоже любое число, можно написать просто, можно откуда-то вытащить;
switch (operation) {
case "3" :
alert (a+b);
break;
case "1" :
alert (a*b);
break;
case "4" :
alert (a-b);
break;
case "2" :
alert (a/b);
break;
}
</script>


<form action="" name="qwe">
<select name="operation" onchange="matchOperation (this.form)">
<option value=1>Умножение</option>
<option value=2>Деление</option>
<option value=3>Сложение</option>
<option value=4>Вычитание</option>
</select>
</form>


Это если хочешь на Javascript осуществить, если на php, то подругому.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
YoGi
Jan 29 2011, 21:18
  
Пост #124



Репутация:   39  
Активист
*

Группа: Пользователи
Сообщений: 435
С нами с: 21-March 08


хочу на пхп)
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
iProphet
Jan 29 2011, 21:38
  
Пост #125



Репутация:   39  
Активист
*

Группа: Пользователи
Сообщений: 358
С нами с: 5-September 09


Содержимое html:
<form action="путь к php файлу" method="post">
<select name=operation>
<option value=1>Умножение</option>
<option value=2>Деление</option>
<option value=3>Сложение</option>
<option value=4>Вычитание</option>
</select>
</form>



Содержимое php файла:

function matchOperation ($a, $b, $operation) {

switch ($operation) {
case "1" :
echo $a * $b;
break;
case "2" :
echo $a / $b;
break;
case "3" :
echo $a + $b;
break;
case "4" :
echo $a - $b;
break;
}
}

if($_POST['operation']) {

$operation = intval ($_POST['operation']);
$a = 2; //Может быть любое другое число
$b = 2; //Может быть любое другое число

matchOperation ($a, $b, $operation);
}
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
vGamBIT
Jan 29 2011, 21:42
  
Пост #126



Репутация:   95  
Активист
*

Группа: Пользователи
Сообщений: 327
С нами с: 19-June 10


(YoGi @ Jan 29 2011, 21:18) Перейти к цитате

хочу на пхп)

Приблизительно так(код на наличие опечаток не проверял):

<select name="operation">
<option value=1>Умножение</option>
<option value=2>Деление</option>
<option value=3>Сложение</option>
<option value=4>Вычитание</option>
</select>
к html надо добавить еще форму для отправки параметров(в данном случае a и b )
<?php

function matchOperation ($a, $b, $operation) {

switch ($operation) {

case 3:
echo $a + $b;
break;
case 1:
echo $a * $b;
break;
case 4:
echo $a - $b;
break;
case 2 :
echo $a / $b;
break;
}
if(isset($_GET['operation']) && isset($_GET['a']) && isset($_GET['b'])) //проверка ли переданы данные
  matchOperation($_GET['a'], $_GET['b'], $_GET['operation')  );
?>

UPD: Вижу меня уже опередили, но мой вариант немного отличается, т.к. использован метод GET, а он предпочтительней в ситуациях когда значения параметров не изменяют данные.

Сообщение отредактировал vGamBIT - Jan 29 2011, 21:46
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
YoGi
Jan 29 2011, 22:20
  
Пост #127



Репутация:   39  
Активист
*

Группа: Пользователи
Сообщений: 435
С нами с: 21-March 08


спасибо сейчас попробую

vGamBIT приблизительно так и думал, а если вместо GET использовать POST? мы ведь isset проверяем прописана ли переменная, а переменная через форму передается POSTом?

использовал POST, получилось smile.gif



Сообщение отредактировал YoGi - Jan 29 2011, 22:34
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Glavar
Jan 30 2011, 20:15
  
Пост #128



Репутация:   10  
Активист
*

Группа: Пользователи
Сообщений: 379
С нами с: 11-May 08


есть код:
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «

Он показывает все файлы что есть в данной папке, как ограничить формат файлов?
как тут использоватьpreg_match('/[.](JPG)|(jpg)') ?
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
vGamBIT
Jan 30 2011, 20:19
  
Пост #129



Репутация:   95  
Активист
*

Группа: Пользователи
Сообщений: 327
С нами с: 19-June 10


function printQueue($queue, $path)
    {
        foreach ($queue as $file)
        {
            if(preg_match( ....BLAHBLAHBLAH....))
             printFile($file, $path);
        }
    }

Даже наверное лучше так:

  while (false !== ($file = readdir($handle)))
            {
                if (is_dir($path.$file) && $file != '.' && $file !='..')
                    printSubDir($file, $path, $queue);
                else
                   if(preg_match( ....BLAHBLAHBLAH....))
                     $queue[] = $file;
            }


Сообщение отредактировал vGamBIT - Jan 30 2011, 20:21
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Glavar
Jan 30 2011, 20:23
  
Пост #130



Репутация:   10  
Активист
*

Группа: Пользователи
Сообщений: 379
С нами с: 11-May 08


(vGamBIT @ Jan 30 2011, 20:19) Перейти к цитате

function printQueue($queue, $path)
    {
        foreach ($queue as $file)
        {
            if(preg_match( ....BLAHBLAHBLAH....))
             printFile($file, $path);
        }
    }

Даже наверное лучше так:

  while (false !== ($file = readdir($handle)))
            {
                if (is_dir($path.$file) && $file != '.' && $file !='..')
                    printSubDir($file, $path, $queue);
                else
                   if(preg_match( ....BLAHBLAHBLAH....))
                     $queue[] = $file;
            }



спс помогло и там, и там написал(навсяк)

Сообщение отредактировал Glavar - Jan 30 2011, 20:26
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
vGamBIT
Jan 30 2011, 20:33
  
Пост #131



Репутация:   95  
Активист
*

Группа: Пользователи
Сообщений: 327
С нами с: 19-June 10


Достаточно одной проверки, лишние действия - лишняя нагрузка на сервер, потеря быстродействия, больший размер кода.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Glavar
Jan 30 2011, 21:09
  
Пост #132



Репутация:   10  
Активист
*

Группа: Пользователи
Сообщений: 379
С нами с: 11-May 08


спс за совет


Сообщение отредактировал Glavar - Jan 30 2011, 21:15
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Cach
Jan 31 2011, 18:16
  
Пост #133



Репутация:   63  
Dividing by Zero
*

Группа: Пользователи
Сообщений: 202
С нами с: 5-September 10


Может кто-то помочь с сортировкой?
Есть код, плана:
$result = mssql_query("SELECT a,b FROM table ORDER BY a DESC, b DESC");

Хочется, что бы выводимый результат сортировался (a/b)*100 DESC (В формуле a и b тоже должны быть DESC)
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
thisisit
Jan 31 2011, 18:21
  
Пост #134



Репутация:   116  
Постоялец
***

Группа: Пользователи
Сообщений: 1 367
С нами с: 6-March 07


А ты вычисляй значения (a/b*100) при добавлении записи в таблицу, назови его каким-то z и тогда сортировка будет ORDER BY z DESC и даже можно будет использовать индекс по полю z и не грузить базу тупыми запросами.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Cach
Jan 31 2011, 18:27
  
Пост #135



Репутация:   63  
Dividing by Zero
*

Группа: Пользователи
Сообщений: 202
С нами с: 5-September 10


(thisisit @ Jan 31 2011, 18:21) Перейти к цитате

А ты вычисляй значения (a/b*100) при добавлении записи в таблицу, назови его каким-то z и тогда сортировка будет ORDER BY z DESC и даже можно будет использовать индекс по полю z и не грузить базу тупыми запросами.

В том то и проблема, что таблица уже готова и заполнена. Изменять её нельзя не при каких условиях
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
AnNE DoM.ini
Jan 31 2011, 18:35
  
Пост #136



Репутация:   173  
Постоялец
***

Группа: Пользователи
Сообщений: 1 412
С нами с: 30-June 07


select *,(a/b*100) as order_field from table order by order_field
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
thisisit
Jan 31 2011, 18:39
  
Пост #137



Репутация:   116  
Постоялец
***

Группа: Пользователи
Сообщений: 1 367
С нами с: 6-March 07


Всегда можно изменять. Изучай ALTER TABLE. Если не хочется, можно создать вторую таблицу, где хранить (id, z).
Капец, это же реляционная база данных, она создана для этого.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Cach
Jan 31 2011, 18:42
  
Пост #138



Репутация:   63  
Dividing by Zero
*

Группа: Пользователи
Сообщений: 202
С нами с: 5-September 10


(thisisit @ Jan 31 2011, 18:39) Перейти к цитате

Всегда можно изменять. Изучай ALTER TABLE. Если не хочется, можно создать вторую таблицу, где хранить (id, z).
Капец, это же реляционная база данных, она создана для этого.

Что изменять можно - я знаю. Только если что-то там трону, выхвачу по шее)))

(AnNE DoM.ini @ Jan 31 2011, 18:35) Перейти к цитате

select *,(a/b*100) as order_field from table order by order_field

Мне бы так, что бы А и В были DESC. Мне нужно подставлять в формулу от большего к меньшему
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
thisisit
Jan 31 2011, 18:42
  
Пост #139



Репутация:   116  
Постоялец
***

Группа: Пользователи
Сообщений: 1 367
С нами с: 6-March 07


(AnNE DoM.ini @ Jan 31 2011, 18:35) Перейти к цитате

select *,(a/b*100) as order_field from table order by order_field

А вот так делать нельзя, когда-то такой перебор начнет ложить всю базу smile.gif
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
AnNE DoM.ini
Jan 31 2011, 18:46
  
Пост #140



Репутация:   173  
Постоялец
***

Группа: Пользователи
Сообщений: 1 412
С нами с: 30-June 07


Ну, таблицы разные бывают, если там 3 записи, то можно и забить
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

20 Страницы  « < 5 6 7 8 9 > » 
Reply to this topicStart new topic

 



- Упрощённая версия
Сейчас: 25th November 2024 - 17:34
Сайт не розміщує електронні версії творів, а займається лише колекціонуванням та каталогізацією посилань, що публікуються нашими користувачами. Якщо Ви є правовласником якоїсь частини опублікованого матеріалу та не бажаєте, щоб посилання на нього знаходилось в нашому каталозі, зв’яжіться з нами і ми видалимо його. Файли для обміну надані користувачами сайту і адміністрація не несе відповідальності за їх вміст.