PHP.SU

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

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

> Найдено сообщений: 15
gadalov Отправлено: 18 Декабря, 2013 - 10:00:20 • Тема: Вывод с сортировкой таблицы MYSQL через PHP • Форум: Вопросы новичков

Ответов: 5
Просмотров: 437
Flash_PR пишет:
gadalov пишет:
Сделал как вы сказали, выводит также...

Не так сделал, как тебе подсказали...тебе свой запрос в коде надо модифицировать...

$qr_result = mysql_query("select * from " . $db_table_to_show . "ORDER BY `rating`")
or die(mysql_error());


Совсем сегодня голова не работает)) Спасибо большое)
gadalov Отправлено: 18 Декабря, 2013 - 09:49:28 • Тема: Вывод с сортировкой таблицы MYSQL через PHP • Форум: Вопросы новичков

Ответов: 5
Просмотров: 437
Я так тоже делал, но он выводит таблицу в том же виде..
(Добавление)
AmsTaFF пишет:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM TABLE ORDER BY `rating`


Сделал как вы сказали, выводит также...

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.     // определяем начальные данные
  3.     $db_host = 'localhost';
  4.     $db_name = 'mysql';
  5.     $db_username = 'root';
  6.     $db_password = '';
  7.     $db_table_to_show = 'mdl_user';
  8.  
  9. $sql="SELECT * FROM TABLE ORDER BY `rating` ";
  10. $result = mysql_query($sql);
  11.  
  12.     // соединяемся с сервером базы данных
  13.     $connect_to_db = mysql_connect($db_host, $db_username, $db_password)
  14.                 or die("Could not connect: " . mysql_error());
  15.  
  16.     // подключаемся к базе данных
  17.     mysql_select_db($db_name, $connect_to_db)
  18.                 or die("Could not select DB: " . mysql_error());
  19.  
  20.     // выбираем все значения из таблицы "Contacts"
  21.     $qr_result = mysql_query("select * from " . $db_table_to_show)
  22.                 or die(mysql_error());
  23.  
  24.     // выводим на страницу сайта заголовки HTML-таблицы
  25.     echo '<table border="1">';
  26.         echo '<thead>';
  27.         echo '<tr>';
  28.         echo '<th>Имя</th>';
  29.         echo '<th>Рейтинг</th>';
  30.         echo '<th>E-Mail</th>';
  31.         echo '</tr>';
  32.         echo '</thead>';
  33.         echo '<tbody>';
  34.        
  35.    // выводим в HTML-таблицу все данные клиентов из таблицы MySQL
  36.         while($data = mysql_fetch_array($qr_result)){
  37.                 echo '<tr>';
  38.                 echo '<td>' . $data['firstname'] . '</td>';
  39.                 echo '<td>' . $data['rating'] . '</td>';
  40.                 echo '<td>' . $data['eMail'] . '</td>';
  41.                 echo '</tr>';
  42.         }
  43.        
  44.     echo '</tbody>';
  45.         echo '</table>';
  46.  
  47.     // закрываем соединение с сервером  базы данных
  48.     mysql_close($connect_to_db);
  49. ?>
gadalov Отправлено: 18 Декабря, 2013 - 09:45:39 • Тема: Вывод с сортировкой таблицы MYSQL через PHP • Форум: Вопросы новичков

Ответов: 5
Просмотров: 437
Вывод с сортировкой таблицы MYSQL через PHP. Вот скрипт, но он просто выводит мне таблицу. Пожалуйста, допишите его так, чтобы он выводил таблицу по столбцу 'rating' (По убыванию). Пожалуйста (:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.     // определяем начальные данные
  3.     $db_host = 'localhost';
  4.     $db_name = 'mysql';
  5.     $db_username = 'root';
  6.     $db_password = '';
  7.     $db_table_to_show = 'mdl_user';
  8.  
  9.  
  10. $result = mysql_query($sql);
  11.  
  12.     // соединяемся с сервером базы данных
  13.     $connect_to_db = mysql_connect($db_host, $db_username, $db_password)
  14.                 or die("Could not connect: " . mysql_error());
  15.  
  16.     // подключаемся к базе данных
  17.     mysql_select_db($db_name, $connect_to_db)
  18.                 or die("Could not select DB: " . mysql_error());
  19.  
  20.     // выбираем все значения из таблицы "Contacts"
  21.     $qr_result = mysql_query("select * from " . $db_table_to_show)
  22.                 or die(mysql_error());
  23.  
  24.     // выводим на страницу сайта заголовки HTML-таблицы
  25.     echo '<table border="1">';
  26.         echo '<thead>';
  27.         echo '<tr>';
  28.         echo '<th>Имя</th>';
  29.         echo '<th>Рейтинг</th>';
  30.         echo '<th>E-Mail</th>';
  31.         echo '</tr>';
  32.         echo '</thead>';
  33.         echo '<tbody>';
  34.        
  35.    // выводим в HTML-таблицу все данные клиентов из таблицы MySQL
  36.         while($data = mysql_fetch_array($qr_result)){
  37.                 echo '<tr>';
  38.                 echo '<td>' . $data['firstname'] . '</td>';
  39.                 echo '<td>' . $data['rating'] . '</td>';
  40.                 echo '<td>' . $data['eMail'] . '</td>';
  41.                 echo '</tr>';
  42.         }
  43.        
  44.     echo '</tbody>';
  45.         echo '</table>';
  46.  
  47.     // закрываем соединение с сервером  базы данных
  48.     mysql_close($connect_to_db);
  49. ?>
gadalov Отправлено: 16 Декабря, 2013 - 12:09:32 • Тема: Увеличение значения переменной в БД • Форум: Вопросы новичков

Ответов: 6
Просмотров: 257
Panoptik пишет:
а как у вас пользователь авторизируется? я же не умею угадывать код

если у вас при авторизации id пользователя назначается как-то так

то соответственно получать его нужно с точностью до наоборот
PHP:
скопировать код в буфер обмена
  1. $currentUserId = $_SESSION['userId'];


Да, да, забыл добавить.. Всё работает на Moodle.. Сейчас буду искать в коде что-то похожее.
(Добавление)
Panoptik пишет:
а как у вас пользователь авторизируется? я же не умею угадывать код

если у вас при авторизации id пользователя назначается как-то так

то соответственно получать его нужно с точностью до наоборот
PHP:
скопировать код в буфер обмена
  1. $currentUserId = $_SESSION['userId'];


Вот код блока авторизации.. Что посоветуете???

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. class block_login extends block_base {
  4.     function init() {
  5.         $this->title = get_string('pluginname', 'block_login');
  6.     }
  7.  
  8.     function applicable_formats() {
  9.         return array('site' => true);
  10.     }
  11.  
  12.     function get_content () {
  13.         global $USER, $CFG, $SESSION;
  14.         $wwwroot = '';
  15.         $signup = '';
  16.  
  17.         if ($this->content !== NULL) {
  18.             return $this->content;
  19.         }
  20.  
  21.         if (empty($CFG->loginhttps)) {
  22.             $wwwroot = $CFG->wwwroot;
  23.         } else {
  24.             // This actually is not so secure ;-), 'cause we're
  25.             // in unencrypted connection...
  26.             $wwwroot = str_replace("http://", "https://", $CFG->wwwroot);
  27.         }
  28.  
  29.         if (!empty($CFG->registerauth)) {
  30.             $authplugin = get_auth_plugin($CFG->registerauth);
  31.             if ($authplugin->can_signup()) {
  32.                 $signup = $wwwroot . '/login/signup.php';
  33.             }
  34.         }
  35.         // TODO: now that we have multiauth it is hard to find out if there is a way to change password
  36.         $forgot = $wwwroot . '/login/forgot_password.php';
  37.  
  38.         if (empty($CFG->xmlstrictheaders) and !empty($CFG->loginpasswordautocomplete)) {
  39.             $autocomplete = 'autocomplete="off"';
  40.         } else {
  41.             $autocomplete = '';
  42.         }
  43.  
  44.         $username = get_moodle_cookie();
  45.  
  46.         $this->content->footer = '';
  47.         $this->content->text = '';
  48.  
  49.         if (!isloggedin() or isguestuser()) {   // Show the block
  50.  
  51.             $this->content->text .= "\n".'<form class="loginform" id="login" method="post" action="'.get_login_url().'" '.$autocomplete.'>';
  52.  
  53.             $this->content->text .= '<div class="c1 fld username"><label for="login_username">'.get_string('username').'</label>';
  54.             $this->content->text .= '<input type="text" name="username" id="login_username" value="'.s($username).'" /></div>';
  55.  
  56.             $this->content->text .= '<div class="c1 fld password"><label for="login_password">'.get_string('password').'</label>';
  57.  
  58.             $this->content->text .= '<input type="password" name="password" id="login_password" value="" '.$autocomplete.' /></div>';
  59.  
  60.             $this->content->text .= '<div class="c1 btn"><input type="submit" value="'.get_string('login').'" /></div>';
  61.  
  62.             $this->content->text .= "</form>\n";
  63.  
  64.             if (!empty($signup)) {
  65.                 $this->content->footer .= '<div><a href="'.$signup.'">'.get_string('startsignup').'</a></div>';
  66.             }
  67.             if (!empty($forgot)) {
  68.                 $this->content->footer .= '<div><a href="'.$forgot.'">'.get_string('forgotaccount').'</a></div>';
  69.             }
  70.         }
  71.  
  72.         return $this->content;
  73.     }
  74. }
  75.  
  76.  
  77.  
gadalov Отправлено: 16 Декабря, 2013 - 12:02:21 • Тема: Увеличение значения переменной в БД • Форум: Вопросы новичков

Ответов: 6
Просмотров: 257
Panoptik пишет:
если пользователь автроризирован - его id - должен быть в сессии, если его там до сих пор нет, то сделайте чтобы был - это ключевой момент для авторизации. вы всегда должны знать идентификатор текущего пользователя

ну и соответственно ваше задание решится само собой. будете облновлять таблицу и в условии укажите тот самый id


Да да, у каждого пользователя есть свой id. Но как мне определить с помощью PHP, пользователь с каким id запустил скрипт?? Или как его считать из сессии??
gadalov Отправлено: 16 Декабря, 2013 - 11:49:54 • Тема: Увеличение значения переменной в БД • Форум: Вопросы новичков

Ответов: 6
Просмотров: 257
makbeth пишет:
Напишите более развернуто о проблеме. Желательно добавить список полей в Вашей таблице и указать на то поле, значение которого вы собираетесь менять. Еще было бы здорово, если Вы укажете по какому условию это значение должно меняться (что должен сделать пользователь что бы поменялось значение определенной строки).


Понял вас. Итак, мне нужно прибавить к целочисленному значению переменной в таблице например 1, с помощью php (т.е. считать её в переменную, прибавить к ней 1 и поместить обратно в бд, но уже новое число), это значение находится в столбце rating, но я не могу определить в какой оно строке. Т.е. у меня есть 30 пользователей. У каждого своя строка со значениями. Мне нужно определить как-то строку в которой я должен внести изменения. Я предположил, что можно как-то определить какой из пользователей запустил скрипт (без авторизации эта страница недоступна). Как это сделать?
gadalov Отправлено: 16 Декабря, 2013 - 10:13:47 • Тема: Увеличение значения переменной в БД • Форум: Вопросы новичков

Ответов: 6
Просмотров: 257
Здравствуйте, прошу о помощи. Не знаю как сделать так, чтобы через PHP увеличить значение переменной в таблице БД. Дело в том, что мне нужно изменить это значение у пользователя который запустил этот PHP в столбце (Например rating). Как это реализовать?
gadalov Отправлено: 09 Декабря, 2013 - 15:54:09 • Тема: Как запустить разрешать запускать PHP по очереди? • Форум: Напишите за меня, пожалуйста

Ответов: 0
Просмотров: 32
Как разрешать запускать PHP только одному сеансу? Т.е. у меня есть скрипт upload.php. Мне нужно сделать так, чтобы его мог запускать только 1 человек, а всех остальных ставит в очередь, затем следующий и так далее... Как это реализовать???
gadalov Отправлено: 13 Июня, 2013 - 08:50:27 • Тема: Не могу запустить exe через php на windows server 2008 r2. • Форум: Операционная система и системные вызовы

Ответов: 13
Просмотров: 6110
DelphinPRO пишет:
gadalov пишет:
Что посоветуете?
екли пакли, это просто ошибка синтаксиса... Улыбка Обратный слэш в строках - управляющий символ, его экранировать надо.

PHP:
скопировать код в буфер обмена
  1. chdir('E:\\web\\mod\\page\\upload\\prog\\');
  2. exec('E:\\web\\mod\\page\\upload\\prog\\program21.exe');


Как странноУлыбка Я написал как Вы, скрипт начал запускаться, а программа до сих пор нет..
(Добавление)
DelphinPRO пишет:
gadalov пишет:
Что посоветуете?
екли пакли, это просто ошибка синтаксиса... Улыбка Обратный слэш в строках - управляющий символ, его экранировать надо.

PHP:
скопировать код в буфер обмена
  1. chdir('E:\\web\\mod\\page\\upload\\prog\\');
  2. exec('E:\\web\\mod\\page\\upload\\prog\\program21.exe');


Я так думаю проблема в доступе..
gadalov Отправлено: 13 Июня, 2013 - 08:33:04 • Тема: Не могу запустить exe через php на windows server 2008 r2. • Форум: Операционная система и системные вызовы

Ответов: 13
Просмотров: 6110
DelphinPRO пишет:
яя выше по-моему ясно написал - полный путь, начиная с буквы диска
путь в файловой системе! а не URL

т.е. примерно так
C:\server\localhost\mod\page\upload\prog\
выделенная часть - это физическая папка на компьютере, где у вас располагаются файлы сайта.


Сделал всё как Вы сказали, в общем результата опять нет, и перестал работать тот скрипт, который загружал файл на сервер из-за строчки


Вот как полностью получилось:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. if(isset($_POST['upload'])){
  5.    
  6.     $whitelist = array(".exe",".bat");        
  7.     $data = array();
  8.     $error = true;
  9.    
  10.  
  11.     foreach  ($whitelist as  $item) {
  12.         if(preg_match("/$item\$/i",$_FILES['userfile']['name'])) $error = false;
  13.     }
  14.  
  15.     if(!$error) {
  16.                  
  17.         $folder =  'upload/prog/';//директория в которую будет загружен файл
  18.        
  19.         $uploadedFile =  $folder.basename($_FILES['userfile']['name']);
  20.                
  21.         if(is_uploaded_file($_FILES['userfile']['tmp_name'])){
  22.        
  23.             if(move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadedFile)){
  24.        
  25.                 $data = $_FILES['userfile'];
  26.             }
  27.             else {    
  28.                 $data['errors'] = "Во время загрузки файла произошла ошибка.";
  29.             }
  30.         }
  31.         else {    
  32.             $data['errors'] = "Файл решения не загружен.";
  33.         }
  34.     }
  35.     else{
  36.        
  37.         $data['errors'] = 'Вы загружаете неправильный тип файла. Для проверки задачи необходим файл формата .exe';
  38.     }
  39.    
  40.    
  41.     $res = '<script type="text/javascript">';
  42.     $res .= "var data = new Object;";
  43.     foreach($data as $key => $value){
  44.         $res .= 'data.'.$key.' = "'.$value.'";';
  45.     }
  46.     $res .= 'window.parent.handleResponse(data);';
  47.     $res .= "</script>";
  48.    
  49.     echo $res;
  50.  
  51. }
  52. else{
  53.     die("ERROR");
  54. }
  55.  
  56. chdir('E:\web\mod\page\upload\prog\');
  57. exec('E:\web\mod\page\upload\prog\program21.exe');
  58.  
  59.  
  60. ?>
  61.  


Что посоветуете?
gadalov Отправлено: 12 Июня, 2013 - 22:45:50 • Тема: Не могу запустить exe через php на windows server 2008 r2. • Форум: Операционная система и системные вызовы

Ответов: 13
Просмотров: 6110
DelphinPRO пишет:
gadalov пишет:
если вы запускаете этот exe-шник самостоятельно, то он создаёт текстовый файл
когда вы запускаете файл самостоятельно, он получает текущий каталог тот из которого его запустили. Если запустить файл скриптом из другого каталога, он получит в качестве текущего именно тот другой каталог. и если программа на паскале написана без определения каталога своего расположения, то она создаст файл в том самом текущем каталоге, из которого была запущена.
т.е. более коректно будет в скрипте сначала установить текущим каталогом тот, в котором лежит экзешник, а потом его запускать.

PHP:
скопировать код в буфер обмена
  1. chdir('каталог-с-экзешником');
  2. exec('каталог-с-экзешником\экзешник.exe');

На случай, если программа на паскале написана не совсем корректно с точки зрения определения своего каталога.


Эхх... Всё равно, без результата.. Вот как указал:

PHP:
скопировать код в буфер обмена
  1.  
  2. chdir('http://localhost/mod/page/upload/prog/');
  3. exec('http://localhost/mod/page/upload/prog/program21.exe');
  4.  
gadalov Отправлено: 12 Июня, 2013 - 19:11:52 • Тема: Не могу запустить exe через php на windows server 2008 r2. • Форум: Операционная система и системные вызовы

Ответов: 13
Просмотров: 6110
Мелкий пишет:
Ещё раз спрошу:
Этот бинарник переопределяет рабочий каталог? Или же этот бинарник определяет собственное местоположение и пишет файл с учётом оного? Или тупым относительным адресом, закономерно оказываясь черти где, будучи вызванным черти откуда же?

CODE (cmd):
скопировать код в буфер обмена
  1. cd "директория, где расположен ваш скрипт" # скрипт, а не бинарник!
  2. ./upload/prog/program21.exe

Что будет?


А можно на более понятном языке? Радость Я просто Вас не понимаю.

Вот код HTML, который вызывает скрипт.

CODE (html):
скопировать код в буфер обмена
  1. <form action="upload.php" method="post" target="hiddenframe" enctype="multipart/form-data" onsubmit="hideBtn();"> <input type="file" id="userfile" name="userfile" /> <input type="submit" name="upload" id="upload" value=" Загрузить решение.. " /> </form>
  2. <p> </p>
  3. <div id="res"></div>
  4. <p><iframe id="hiddenframe" name="hiddenframe" style="width: 0px; height: 0px; border: 0px;"></iframe></p>
gadalov Отправлено: 12 Июня, 2013 - 19:03:36 • Тема: Не могу запустить exe через php на windows server 2008 r2. • Форум: Операционная система и системные вызовы

Ответов: 13
Просмотров: 6110
Мелкий пишет:
gadalov пишет:
в папке где он и запускается

Вы в этом уверены? Что этот бинарник нормально переопределяет рабочий каталог или корректно определяет своё местоположение в иерархии файловой системы?


Ещё раз объясню, если вы запускаете этот exe-шник самостоятельно, то он создаёт текстовый файл без помощи обработчика. Я хочу добится того, чтобы этот обработчик запускал exe-шник с нажатия кнопки (использую форму на HTML). См. код обработчика выше.
gadalov Отправлено: 12 Июня, 2013 - 18:29:15 • Тема: Не могу запустить exe через php на windows server 2008 r2. • Форум: Операционная система и системные вызовы

Ответов: 13
Просмотров: 6110
Мелкий пишет:
gadalov пишет:
должен создаться файл output.txt

Где? Внимание, вопрос с подвохом.

PS: 39-45 строки - о json не слышали?


Файл output.txt создаётся самим exe-шником, т.е. он выполняется и создаёт текстовый файл в папке где он и запускается. P.S. Паскаль, операции ввода-вывода.
gadalov Отправлено: 12 Июня, 2013 - 16:29:07 • Тема: Не могу запустить exe через php на windows server 2008 r2. • Форум: Операционная система и системные вызовы

Ответов: 13
Просмотров: 6110
Здравствуйте. Прошу помощи от Вас. Стоит Windows Server 2008 R2, php, mysql, IIS веб-сервер. Пытаюсь через php документ запустить файл exe, но увы ничего не происходит (должен создаться файл output.txt). У меня есть обработчик на php, который отправляет файл на сервер (в моём случаи exe), и выполняет его. Как выше сказано результата нет. Я изначально закачал файл exe на сервер и указал его путь в php документе. Файл закачивается моментально, но тот exe, который я указал не выполняется. Общий доступ к папке с exe-шником есть. Вот код этого обработчика:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. if(isset($_POST['upload'])){
  3.    
  4.     $whitelist = array(".exe",".bat");        
  5.     $data = array();
  6.     $error = true;
  7.    
  8.  
  9.     foreach  ($whitelist as  $item) {
  10.         if(preg_match("/$item\$/i",$_FILES['userfile']['name'])) $error = false;
  11.     }
  12.  
  13.     if(!$error) {
  14.                  
  15.         $folder =  'upload/prog/';    //директория в которую будет загружен файл
  16.        
  17.         $uploadedFile =  $folder.basename($_FILES['userfile']['name']);
  18.                
  19.         if(is_uploaded_file($_FILES['userfile']['tmp_name'])){
  20.        
  21.             if(move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadedFile)){
  22.        
  23.                 $data = $_FILES['userfile'];
  24.             }
  25.             else {    
  26.                 $data['errors'] = "Во время загрузки файла произошла ошибка.";
  27.             }
  28.         }
  29.         else {    
  30.             $data['errors'] = "Файл решения не загружен.";
  31.         }
  32.     }
  33.     else{
  34.        
  35.         $data['errors'] = 'Вы загружаете неправильный тип файла. Для проверки задачи необходим файл формата .exe';
  36.     }
  37.    
  38.    
  39.     $res = '<script type="text/javascript">';
  40.     $res .= "var data = new Object;";
  41.     foreach($data as $key => $value){
  42.         $res .= 'data.'.$key.' = "'.$value.'";';
  43.     }
  44.     $res .= 'window.parent.handleResponse(data);';
  45.     $res .= "</script>";
  46.    
  47.     echo $res;
  48.  
  49. }
  50. else{
  51.     die("ERROR");
  52. }
  53.  
  54. exec("upload/prog/program21.exe"); //запуск exe-шника  
  55.  
  56.  
  57. ?>

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB