PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 8
csc4 Отправлено: 07 Января, 2015 - 11:37:21 • Тема: Выбор значений из двумерного массива sql • Форум: Вопросы новичков

Ответов: 3
Просмотров: 462
Мой косяк забыл включить мозг и полистать php manual.
на тот момент поста я ещё не весь код написал, всё решено.(спс Wooorker)
Я не один такой, мало ли кому пригодится: Задача
Выбрать записи из бд где catid и perm == переменным, дальше узнать есть ли в этом списке записи == (totalsize + 999) <= maxsize, дальше взять id тех записей которые == (totalsize + 999) <= maxsize, а также посчитать на сколько процентов заняты записи по соотношению (totalsize/maxsize)*100 и поместить это всё в один массив.
Массив:
id == это ключ(id'ник записей из бд)
Значения это посчитанные проценты(на сколько % занято место totalsize от maxsize)
Дальше из этого массива выбрать максимальный % и взять его id из массива, ну как то так.(смотрите код): код бардак но это тестово.

PHP:
скопировать код в буфер обмена
  1. // Подключаем скъюельку:
  2. require_once ENGINE_DIR . '/classes/mysql.class.php';
  3. $size = 999;
  4. // Запрос:
  5. $find_inst = "SELECT * FROM `tbl_proq` WHERE catid = '".$catid."' AND perm = '".$perm."'";
  6.  
  7. // Выполняем запрос:
  8. $find_inst_q = $db->sql_q($find_inst);
  9.  
  10. $chkarr = array(); // создаем новый пустой массив
  11.                 while($fb_list = mysql_fetch_assoc($find_inst_q)){
  12.                 if(($fb_list['totalsize'] + $size) <= $fb_list['maxsize']){ // Проверяем есть ли записи  == (totalsize + 999) <= maxsize
  13.                 $chkarr[$fb_list['id']] = ($fb_list['totalsize']/$fb_list['maxsize'])*100; // узнаём на сколько % занята каждая запись и помещаем это всё в один массив.
  14.                
  15.                
  16.                 }
  17.                
  18.                 };
  19.                 if(!empty($chkarr)){ // проверяем массив на пустоту, и если не пустой получаем id максимально занятой записи.
  20. $instid = array_search(max($chkarr), $chkarr);
  21. }else{
  22. echo "Недостаточно места в данной программе";}
  23. echo $instid;


Объяснил по фасту сори за не понятки!
ВОПРОС РЕШЁН!
csc4 Отправлено: 05 Января, 2015 - 15:14:51 • Тема: Выбор значений из двумерного массива sql • Форум: Вопросы новичков

Ответов: 3
Просмотров: 462
Привет всем PHP Develop'ерарам.
Работаю с пхп уже норм времени, но запоролся на самом простом.
Задача: есть таблица tbl_proq, нужно выбрать записи к которых value равны запросу.
и потом из этих полученных записей выбрать ту которая подходит, подробнее в коде.
PHP:
скопировать код в буфер обмена
  1. // Подключаем скъюельку:
  2. require_once ENGINE_DIR . '/classes/mysql.class.php';
  3. $size = 999;
  4. // Запрос:
  5. $find_inst = "SELECT * FROM `tbl_proq` WHERE catid = '".$catid."' AND perm = '".$perm."'";
  6.  
  7. // Выполняем запрос:
  8. $find_inst_q = $db->sql_q($find_inst);
  9.  
  10. // Получаем данные запроса: это работает но если у одной из записей нет места то выводит нет места.
  11. while($fb_list = mysql_fetch_assoc($find_inst_q)){
  12. if(($fb_list['totalsize'] + $size) <= $fb_list['maxsize']){$softid = $fb_list['id'];}else{echo "Нету места";}
  13.  
  14.                 };

Смысл: запрос выбирает записи где value == переменным, записей может быть сколько угодно.
Дальше нужно узнать есть ли у записей место по totalsize и maxsize, и выбрать любую одну запись где есть место, а если нет свободных записей написать нет места.
Заранее спс(Просьба не пинайте за косяки это все тестово)
csc4 Отправлено: 14 Октября, 2014 - 19:04:29 • Тема: как получить id только что вставленной записи php mysql • Форум: Вопросы новичков

Ответов: 5
Просмотров: 292
DelphinPRO, Спасибо конечно.
Но вы не могли бы чётко ответить если уж хотите помочь.
А то в том топике два мутных юзера мутят загадками.
Тем более если уж вы поняли их мутную переписку!
Заранее спс.
csc4 Отправлено: 13 Октября, 2014 - 22:43:57 • Тема: как получить id только что вставленной записи php mysql • Форум: Вопросы новичков

Ответов: 5
Просмотров: 292
Я так понял правильное: select last_insert_id( )
А если в один момент будет 2 или более заказов, какова точность этого решения?
csc4 Отправлено: 13 Октября, 2014 - 22:13:47 • Тема: Авторизация • Форум: Вопросы новичков

Ответов: 13
Просмотров: 481
Скажу больше в интернете много auth скриптов реализованных по разному, и не везде подано описание кода для новичка.
Я написал свой скрипт auth когда перепробовал все методы, в результате при помощи слияния большинства методов вышел норм скрипт.
Вроде получился самый безопасный auth скрипт, не используя ssl.
Все ходы записаны
csc4 Отправлено: 13 Октября, 2014 - 22:01:54 • Тема: как получить id только что вставленной записи php mysql • Форум: Вопросы новичков

Ответов: 5
Просмотров: 292
Всем доброго времени суток!
Есть затруднительная для меня задача:

есть 3 таблицы:

shop_orders:
id
uid
name;
===========
shop_prducts:
id
ordid
name
price;
===========
shop_users:
id
login
name
pass;

Задача: получить id только что вставленного заказа INSERT по uid, и передать его в продукт.
Короче привязать товар к заказу!
Сработает ли запрос $sql, или помогите как так сделать.
$sql = "EXPLAIN SELECT LAST_INSERT_ID() FROM `shop_orders` WHERE uid='".$uid."'";
Мне нужно узнать только как: получить id только что вставленного заказа INSERT по uid.
csc4 Отправлено: 20 Апреля, 2014 - 10:14:20 • Тема: Ошибки при работе с SSH2 PHP-Win Server Debian • Форум: Вопросы новичков

Ответов: 1
Просмотров: 226
нашёл свою ошибку в функции: cpssh2_exec

PHP:
скопировать код в буфер обмена
  1. function cpssh2_exec($command){
  2.  
  3. global $machine;
  4. global $mport;
  5. global $muser;
  6. global $mpass;
  7.  
  8.         if($conn = cpssh2_connect($machine, $mport)){
  9.                 if($auth = cpssh2_auth_pwd($conn, $muser, $mpass)){ // Вот тут при авторизации ssh создал переменную от коннекта $conn исправил на $auth
  10.                         $sshexec = ssh2_exec($conn, $command);
  11.                         stream_set_blocking($sshexec, true);
  12.                         $console = "";
  13.                         while ($buffer = fread($sshexec, 4096)) {
  14.                                 $console .= $buffer;
  15.                         }
  16.  
  17.                         //return $console;
  18.                         print $console;
  19.                 }else{
  20.                 echo "[x] SSH Not Authorized!";
  21.                 }
  22.        
  23.        
  24.         }else{
  25.         echo "[x] SSH Not Connected!";
  26.         }
  27.  
  28.  
  29.  
  30. }


Ошибка была в строке 37:
if($auth = cpssh2_auth_pwd($conn, $muser, $mpass)){ // Вот тут при авторизации ssh создал переменную от коннекта $conn исправил на $auth

Радость Тему можно закрывать спс за ответы Голливудская улыбка
csc4 Отправлено: 19 Апреля, 2014 - 21:39:14 • Тема: Ошибки при работе с SSH2 PHP-Win Server Debian • Форум: Вопросы новичков

Ответов: 1
Просмотров: 226
Привет всем Радость
Помогите решить проблему(срочно)

Я писал php скрипт по работе с ssh, он работал и через месяц перестал работать.

Разрабатываю на WIN7
Конф сервера: Open-server

Apache-2.4.9
PHP-5.5.10

PHP Модули и все нужные либ"ы есть для работы с SSH(как на компе, так и на Debian'e)

Версия линуха: Debian 3.2.46-1+deb7u1 i686

В логах апача всё чисто

Логи php:
[19-Apr-2014 21:52:49 Europe/Moscow] PHP Warning: fread() expects parameter 1 to be resource, null given in W:\domains\mycp.local\ssh.php on line 40
[19-Apr-2014 21:52:49 Europe/Moscow] PHP Stack trace:
[19-Apr-2014 21:52:49 Europe/Moscow] PHP 1. {main}() W:\domains\www\ssh.php:0
[19-Apr-2014 21:52:49 Europe/Moscow] PHP 2. cpssh2_exec() W:\domains\www\ssh.php:60
[19-Apr-2014 21:52:49 Europe/Moscow] PHP 3. fread() W

Мой код: 3 функц, конект к ssh, авторизация ssh, выполнение команд ssh
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $machine = "my-ip";
  4. $mport = "22";
  5. $muser = "root";
  6. $mpass = "mypass";
  7.  
  8. $command = "sudo uname -a";
  9.  
  10. function cpssh2_connect($server, $port){
  11.         if($sshconn = ssh2_connect($server, $port)){
  12.                 return $sshconn;
  13.         }else{
  14.                 return false;
  15.         }
  16. }
  17.  
  18.  
  19.  
  20. function cpssh2_auth_pwd($connect, $sshu, $sshp){
  21.         if(ssh2_auth_password($connect, $sshu, $sshp)){
  22.                 return true;
  23.         }else{
  24.                 return false;
  25.         }
  26. }
  27.  
  28.  
  29. function cpssh2_exec($command){
  30.  
  31. global $machine;
  32. global $mport;
  33. global $muser;
  34. global $mpass;
  35.  
  36.         if($conn = cpssh2_connect($machine, $mport)){
  37.                 if($conn = cpssh2_auth_pwd($conn, $muser, $mpass)){
  38.                         $sshexec = ssh2_exec($conn, $command);
  39.                         stream_set_blocking($sshexec, true);
  40.                         $console = "";
  41.                         while ($buffer = fread($sshexec, 4096)) {
  42.                                 $console .= $buffer;
  43.                         }
  44.  
  45.                         //return $console;
  46.                         print $console;
  47.                 }else{
  48.                 echo "[x] SSH Not Authorized!";
  49.                 }
  50.        
  51.        
  52.         }else{
  53.         echo "[x] SSH Not Connected!";
  54.         }
  55.  
  56.  
  57.  
  58. }
  59.  
  60.  
  61. cpssh2_exec($command);
  62.  
  63. ?>
  64.  


Ошибки из браузера:
Спойлер (Отобразить)

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB