PHP.SU

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

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

> Найдено сообщений: 19
naruto Отправлено: 02 Августа, 2012 - 16:04:03 • Тема: Передать ключи во внешнею программу • Форум: Операционная система и системные вызовы

Ответов: 6
Просмотров: 4049
если честно не очень понимаю что не так. в Документациях совсем мало инфы по ним, да и про пути не написано.
(Добавление)
Stack trace: #0 {main} гугл не выдает по ней ничего внятного
(Добавление)
Так?
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $filename = "D:/text.svg"; //path to SVG file
  4. $pdf_filename="D:/text.pdf"; // output PDF
  5. $inkscape = "C:/'Program Files'/Inkscape/inkscape";
  6.  
  7. if(!file_exists($filename)){
  8.   throw new Exception("{$filename} not exists!");
  9. }
  10.  
  11. exec("$inkscape -T $filename -A $pdf_filename",$success);
  12. if($success!=0){
  13.   throw new Exception('Error inkscape convertation!');
  14. }
  15.  
  16.  
  17. ?>
  18.  
naruto Отправлено: 02 Августа, 2012 - 15:37:51 • Тема: Передать ключи во внешнею программу • Форум: Операционная система и системные вызовы

Ответов: 6
Просмотров: 4049
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $filename = "D:/text.svg"; //path to SVG file
  4. $pdf_filename="D:/text.pdf"; // output PDF
  5. $inkscape = "C:/Program Files/Inkscape/inkscape.exe";
  6.  
  7. if(!file_exists($filename)){
  8.   throw new Exception("{$filename} not exists!");
  9. }
  10.  
  11. system("$inkscape -T $filename -A $pdf_filename",$success);
  12. if($success!=0){
  13.   throw new Exception('Error inkscape convertation!');
  14. }
  15.  
  16.  
  17. ?>
  18.  


Все равно ошибка..
naruto Отправлено: 02 Августа, 2012 - 15:20:21 • Тема: Передать ключи во внешнею программу • Форум: Операционная система и системные вызовы

Ответов: 6
Просмотров: 4049
Здравствуйте! Есть установленный в Windows 7 Inkscape. В PATH указан путь до него, поэтому с консоли для конвертации texs.svg в test.pdf достаточно написать "inkscape -T d:\test.svg -A d:\test.pdf". Как все это провернуть из скрипта php?

PHP:
скопировать код в буфер обмена
  1.  
  2. $filename = "D://text.svg"; //path to SVG file
  3. $pdf_filename="D://text.pdf"; // output PDF
  4.  
  5. if(!file_exists($filename)){
  6.   throw new Exception("{$filename} not exists!");
  7. }
  8.  
  9. system("inkscape -T $filename -A $pdf_filename", $success);
  10. if($success!=0){
  11.   throw new Exception('Error inkscape convertation!');
  12. }
  13.  


выдает ошибку Fatal error: Uncaught exception 'Exception' with message 'Error inkscape convertation!' in C:\localsites\www\converter\index.php:12 Stack trace: #0 {main} thrown in C:\localsites\www\converter\index.php on line 12. Заранее спасибо
naruto Отправлено: 23 Июля, 2012 - 15:09:55 • Тема: Doc в XML • Форум: Хранение данных, их вывод и обработка

Ответов: 2
Просмотров: 2576
Здравствуйте! Можно ли как то конвертировать DOC в XML? Есть ли какие то классы/библиотеки для этого?
naruto Отправлено: 11 Марта, 2012 - 20:53:26 • Тема: Перевод кода из процедурного в ооп • Форум: Объектно-ориентированное программирование

Ответов: 5
Просмотров: 2736
Да с вызовом стало понятно, спасибо. Но возникает еще вопрос. Код для вывода результата совпадает почти полностью кроме одной функции вывода ответа, как не повторяя код это сделать? унаследовать опрос вопрос, а в ответах перегрузить нужный метод?
naruto Отправлено: 10 Марта, 2012 - 15:26:49 • Тема: Перевод кода из процедурного в ооп • Форум: Объектно-ориентированное программирование

Ответов: 5
Просмотров: 2736
мм, ну вот я и прошу помочь. То есть никакого MVC в принципе не нужно для такой задачи? Тогда как лушче сделать? Всего три класса? и внутри них методы которые будут удалять, редактировать выводить опрос, вопрос, ответ?
naruto Отправлено: 10 Марта, 2012 - 12:14:37 • Тема: Перевод кода из процедурного в ооп • Форум: Объектно-ориентированное программирование

Ответов: 5
Просмотров: 2736
Здравствуйте, доброго дня. На данном форуме мне изначально помогли реализовать задачу по выводу опроса на экран из БД для дальнейшего его прохождение. Отталкиваясь от этого реализовал все остальное(редактирование, отображение голосования, удаление, добавление и т.д). Теперь задача все это сделать по принципу ООП. Опять же хочу сначала сделать грамотно для отдельной операции (тот же вывод из базы), а затем уже сделаю для всего остального. Вот собственно процедурный код вывода опроса для голосования из БД

PHP:
скопировать код в буфер обмена
  1.  
  2.     /достаем опросы                                                                                                                    
  3.     function get_poll() {
  4.     $query = "SELECT `id`,`name` FROM `poll` WHERE `status` = 'active'";
  5.     $result = mysql_query($query);
  6.     if(mysql_num_rows($result)) {
  7.       while($row = mysql_fetch_assoc($result)) {
  8.         $res[] = $row;
  9.       }
  10.     } else {
  11.       $res = false;
  12.     }
  13.     return $res;
  14.     }
  15.      
  16.     //выводим опросы                                                                                                                           -КОНТРОЛЛЕР
  17.     function print_polls($poll) {                                           //$poll - массив
  18.      if($poll === false) {
  19.         echo  "<p>У нас нет опросов</p>";
  20.      } else {
  21.        foreach($poll as $row) {
  22.          echo "<p><a href='?poll=".$row['id']."'>".$row['name']."</a></p>";
  23.        }
  24.      }
  25.     }
  26.      
  27.     //выводим опрос ДЛЯ ДОБАВЛЕНИЯ ГОЛОСОВ                                                                          
  28.     function print_poll($poll) {                                                                                    //$poll - id
  29.       $query = "SELECT `id`,`name` FROM `poll` WHERE `id`=".$poll;
  30.       $result = mysql_query($query);
  31.       if(mysql_num_rows($result)) {
  32.         $row = mysql_fetch_assoc($result);
  33.         echo "<p>Опрос: ".$row['name']."</p>";
  34.             echo "<form name='form1' method='post' action = 'vote_add.php' >";         // передача данных голосования в форму
  35.      
  36.         print_questions($row['id']);
  37.             echo "<input type='submit' value='Отослать форму'>";
  38.             echo "</form>";
  39.       } else {
  40.         echo "<p>А нет такого опроса!</p>";
  41.       }
  42.     }
  43.      
  44.      
  45.      
  46.      
  47.     //достаем вопросы опроса
  48.     function get_questions($poll) {
  49.     $query = "SELECT `id`,`name`,`type`, `require` FROM `question` WHERE `poll_id` = ".$poll;
  50.     $result = mysql_query($query);
  51.     if(mysql_num_rows($result)) {
  52.       while($row = mysql_fetch_assoc($result)) {
  53.         $res[] = $row;
  54.       }
  55.     } else {
  56.       $res = false;  
  57.     }
  58.     return $res;
  59.     }
  60.      
  61.     //достаем ответы вопроса
  62.     function get_answers($question) {
  63.       $query = "SELECT `id`,`name`,`vote_count` FROM `answer` WHERE `question_id` = ".$question;
  64.       $result = mysql_query($query);
  65.       if(mysql_num_rows($result)) {
  66.         while($row = mysql_fetch_assoc($result)) {
  67.           $res[] = $row;
  68.         }
  69.       } else {
  70.         $res = false;
  71.       }
  72.       return $res;
  73.     }
  74.      
  75.     //выводим вопрос
  76.      
  77.     function print_questions($poll) {              
  78.       $result = get_questions($poll);
  79.       $i = 1;
  80.       if($result === false) {
  81.         echo "<p>Тут вопросов нет</p>";
  82.       } else {
  83.         foreach($result as $question) {
  84.                     if ($question['require']== obliging){    // обязательный - необязательный вопрос
  85.                             $str = "*";                          
  86.                     }else {
  87.                             $str = "";
  88.                     }      
  89.                             echo "<p><strong>".$i.". ".$question['name']." ".$str."</strong></p>";
  90.                             print_answers($question['id'],$question['type']);
  91.                             $i++;
  92.                    
  93.         }
  94.       }
  95.     }
  96.      
  97.     //выводим ответы
  98.     // ДЛЯ ВЫВОДА ФОРМЫ ПРОХОЖДЕНИЯ ГОЛОСОВАНИЯ
  99.      
  100.     function print_answers($question,$type) {
  101.         $answers = get_answers($question);
  102.         if($answers === false) {
  103.           echo "<p>Ответов не видать</p>";
  104.         } else {
  105.                     if($type == 'radio') {
  106.                             foreach($answers as $answer) {
  107.                                     echo "<p><input type='radio' name='answer_".$question."' value='".$answer['id']."' />&nbsp".$answer['name']."</p>";
  108.                             }
  109.                     }
  110.                      if($type == 'chek') {
  111.                             foreach($answers as $answer) {
  112.                                     echo "<p><input type='checkbox' name='answer_".$question."_".$answer['id']."'  value='".$answer['id']."'/>&nbsp".$answe'name']."</p>";
  113.                             }
  114.                     }
  115.         }
  116.     }
  117.  


Ну и далее в файле index.php например вывод списка опроса и вывод формы при нажатии на нужный опрос
PHP:
скопировать код в буфер обмена
  1.  
  2. //выводим ссылки на опросы
  3. $poll = get_poll();
  4. print_polls($poll);
  5.  
  6. if($poll_id=(int)$_GET['poll']) {
  7.  
  8.   print_poll($poll_id);
  9.  
  10. }
  11.  
  12.  


Как я начал было делать. Сделать три сущности - опрос, вопрос, ответ и плюс ко всему разделить каждую сущность на три класса по модели MVC- то-есть запрос в бд, обработка, вывод. Но вышел какой то бардак, + понадобилось из метода класса опроса вызывать метод класса вопроса, Как это сделать? Или объявлять методы вопроса и ответа статистическими чтобы оптом обращаться внутри методов опроса ClassName::print_answers() например? во общем что то дают разные советы, общей картины в голове нету. Прошу помощи в общей логике ну и если на конкретном данном примере сделать что то получится и станет ясна суть, остальное думаю также и до реализую. Спасибо!
naruto Отправлено: 29 Февраля, 2012 - 06:26:01 • Тема: Спарсить строку в нужный массив • Форум: Вопросы новичков

Ответов: 6
Просмотров: 326
Да спасибо, передала html страницу по вашему методу, назначая именам текстовых полей массивы, обошлось без манипуляций со строками и регулярными выражениями. Спасибо!
naruto Отправлено: 26 Февраля, 2012 - 20:27:46 • Тема: Спарсить строку в нужный массив • Форум: Вопросы новичков

Ответов: 6
Просмотров: 326
мм, ну а как мне сделать чтобы ответы между первым и вторым вопросом попадали в массив с первым вопросом? и так далее? между вторым и третьим?
naruto Отправлено: 26 Февраля, 2012 - 20:13:02 • Тема: Спарсить строку в нужный массив • Форум: Вопросы новичков

Ответов: 6
Просмотров: 326
мм задача с формы собрать данные, ну и добавить в БД. Форму я сделал на jQuery, поля добавляются для вопросов ответов-динамически. Затем сереализую и посылаю ajax ом в обработчик. Там он автоматом садится в массив $_POST. Тоесть $_POST[question1] = Vopros-1 и т.д. Чтобы потом добавлять все это в БД мне надо в удобоворимый массив все запихнуть с привязкой ответов к вопросам. Мне показалась удобнее из строки будет составлять новый массив, поэтому сделал
$a = $_POST;
foreach ($a as $b=>$c){
$str.=$b.'='.$c.'&';

} и получил строку которую постил выше
naruto Отправлено: 26 Февраля, 2012 - 20:03:09 • Тема: Спарсить строку в нужный массив • Форум: Вопросы новичков

Ответов: 6
Просмотров: 326
Здравствуйте! Есть задача, приходящие данные со строки перевести в массив удобный для добавления данных в БД.
Пример приходящей строки
que_type1=radio&question1=Vopros-1&answer1=Otvet-1&que_type2=check&question2=Vopros-2&answer3=Otvet-2&answer2=Otvet-3&.

нужно раскидать в массив вида
question[0] = Vopros-1
question[1] = Vopros-2 ...

question[0][type] = radio
question[0][type] = check...

question[0][name][0] = otvet-1
question[1][name][0] = otvet-2
question[1][name][1] = otvet-3

Сам алгоритм хотя бы, как я понимаю регулярные выражения пригодятся, но само главное как ответы привязать к вопросам, тоесть ответы между question1 и question2 поместить в question[0][name][0] и т.д. строка может быть любой длины
naruto Отправлено: 12 Февраля, 2012 - 08:57:16 • Тема: Вывод опроса с БД • Форум: Работа с СУБД

Ответов: 10
Просмотров: 3839
Сделал форму добавления, все добавляется нормально. Но не получается сделать и непонятно как, чтобы например по кнопке или введя число выводилиось соответсвующее количество текстовых полей для вопроса и так же ответов для них. А пока просто добавляет опрос, к нему один вопрос у которого один ответ
PHP:
скопировать код в буфер обмена
  1.  
  2. <html>
  3. <head>
  4. <title>Добавить</title>
  5. <body>
  6. <form action ='new.php' method ='POST'>
  7. Название опроса
  8. <input type=text name=poll_name  value="<?=$poll_name?>"><br />Выберите тип опроса      <input type=radio name=status value ='active'> Активное         <input type=radio name=status value ='close'> Закрытое  <input type=radio name=status value ='rough'> Черновик <br />Название вопроса
  9.         <input type=text name=que_name value="<?=$que_name?>" > <br />Выберите тип вопроса      <input type=radio name=que_type value = 'radio'> С одним вариантом      <input type=radio name=que_type value = 'chek'> С несколькими вариантами <br />
  10. Варианты ответов
  11.         <input type=text name=ans_name value = "<?=$ans_name?>" >       <input type="submit" value="Добавить" />
  12. </form>
  13. </body>
  14. </head>
  15. </html>
  16. <?PHP
  17. include_once('startup.php');
  18. // Установка параметров, подключение к БД, запуск сессии.
  19. startup();
  20. // Функция Обработка отправки формы.
  21. function add_poll($poll_name, $poll_status, $que_name, $que_type, $ans_name) {
  22.  
  23.         // Подготовка.
  24.         $poll_name = trim($poll_name);
  25.         $que_name = trim($que_name);
  26.         $ans_name = trim($ans_name);
  27.        
  28.         // Запрос.
  29.         $query = "INSERT INTO `poll` (`name`, `status`) VALUES ('$poll_name', '$poll_status')";
  30.         $result = mysql_query($query);
  31.         if (!$result)
  32.                 die(mysql_error());
  33.         $id_p = mysql_insert_id();
  34.         $query = "INSERT INTO `question` (`name`, `type`, `poll_id`) VALUES ('$que_name', '$que_type', '$id_p')";
  35.                 $result = mysql_query($query);
  36.                 $id_q = mysql_insert_id();
  37.                 $query = "INSERT INTO `answer` (`name`, `question_id`, `vote_count`) VALUES ('$ans_name', '$id_q', '0') ";
  38.                 $result = mysql_query($query);
  39.         if (!$result)
  40.                 die(mysql_error());
  41.                
  42.         return true;
  43. }
  44.  
  45. add_poll($_POST['poll_name'], $_POST['status'], $_POST['que_name'], $_POST['que_type'], $_POST['ans_name']);
  46.  
  47. ?>
  48.  
  49.  
naruto Отправлено: 11 Февраля, 2012 - 11:58:22 • Тема: Вставка однима запросом в три таблицы • Форум: SQL и Архитектура БД

Ответов: 0
Просмотров: 18
Добрый день! Вопрос такого характера. Собираются данные с формы, нужно добавить в ДБ. Тоесть в поле name и type трех разных таблиц значений, и как т связать по id. Можно ли сделать ткое одним запросом?
naruto Отправлено: 11 Февраля, 2012 - 11:54:52 • Тема: Вывод опроса с БД • Форум: Работа с СУБД

Ответов: 10
Просмотров: 3839
Вопрос с выводом решился) Но появился новый, с добавлением. Можно ли одним запросом добавить данные в три таблицы(опроса вопроса и ответов) ну и связать по id?
naruto Отправлено: 09 Февраля, 2012 - 09:50:19 • Тема: Вывод опроса с БД • Форум: Работа с СУБД

Ответов: 10
Просмотров: 3839
PHP:
скопировать код в буфер обмена
  1.  
  2. include_once('startup.php');
  3. startup();
  4. //
  5. // Список всех статей
  6. //
  7. //достаем опросы
  8. //здесь опускается проверка опроса на наличие в нем вопросов...
  9. function get_poll() {
  10. $query = "SELECT `id`,`name` FROM `poll` WHERE `status` = 'active'";
  11. $result = mysql_query($query);
  12. if(mysql_num_rows($result)) {
  13.   while($row = mysql_fetch_row($result)) {
  14.     $res[] = $row;
  15.   }
  16. } else {
  17.   $res = false;
  18. }
  19. return $res;
  20. }
  21. //выводим опросы
  22. function print_polls($poll) {
  23.  if($poll === false) {
  24.     echo  "<p>У нас нет опросов</p>";
  25.  } else {
  26.    foreach($poll as $row) {
  27.      echo "<p><a href='?poll=".$row[0]."'>".$row[1]."</a></p>";
  28.    }
  29.  }
  30. }
  31. //выводим опрос
  32. function print_poll($poll) {
  33.   $query = "SELECT `id`,`name` FROM `poll` WHERE `id`=".$poll;
  34.   $result = mysql_query($query);
  35.   if(mysql_num_rows($result)) {
  36.     $row = mysql_fetch_row($result);
  37.     echo "<p>Опрос: ".$row[1]."</p>";
  38.                 echo "<form name='form1' method='post' action = 'form.php' >";
  39.                         print_questions($row[0]);
  40.                 echo "<input type='submit' value='Отослать форму'>";
  41.         echo "</form>";
  42.   } else {
  43.     echo "<p>А нет такого опроса!</p>";
  44.   }
  45. }
  46. //достаем вопросы опроса
  47. function get_questions($poll) {
  48. $query = "SELECT `id`,`name`,`type` FROM `question` WHERE `poll_id` = ".$poll;
  49. $result = mysql_query($query);
  50. if(mysql_num_rows($result)) {
  51.   while($row = mysql_fetch_row($result)) {
  52.     $res[] = $row;
  53.   }
  54. } else {
  55.   $res = false;  
  56. }
  57. return $res;
  58. }
  59.  
  60. //достаем ответы вопроса
  61. function get_answers($question) {
  62.   $query = "SELECT `id`,`name` FROM `answer` WHERE `question_id` = ".$question;
  63.   $result = mysql_query($query);
  64.   if(mysql_num_rows($result)) {
  65.     while($row = mysql_fetch_row($result)) {
  66.       $res[] = $row;
  67.     }
  68.   } else {
  69.     $res = false;
  70.   }
  71.   return $res;
  72. }
  73. //выводим вопрос
  74. function print_questions($poll) {
  75.   $result = get_questions($poll);
  76.   if($result === false) {
  77.     echo "<p>Тут вопросов нет</p>";
  78.   } else {
  79.     foreach($result as $question) {
  80.       echo "<p>Вопрос: ".$question[1]."</p>";
  81.       print_answers($question[0],$question[2]);
  82.     }
  83.   }
  84. }
  85. //выводим ответы
  86. function print_answers($question,$type) {
  87.     $answers = get_answers($question);
  88.     if($answers === false) {
  89.       echo "<p>Ответов не видать</p>";
  90.     } else {
  91.       if($type == 'radio') {
  92.         foreach($answers as $answer) {
  93.           echo "<p><input type='radio' name='answer_".$question."' value='".$answer[0]."' />".$answer[1]."</p>";
  94.         }
  95.       }
  96.       if($type == 'chek') {
  97.         foreach($answers as $answer) {
  98.           echo "<p><input type='checkbox' name='answer_".$question."_".$answer[0]."[]' />".$answer[1]."</p>";
  99.         }
  100.       }
  101.     }
  102.    
  103. }
  104. //выводим ссылки на опросы
  105. $poll = get_poll();
  106. print_polls($poll);
  107.  
  108. if($poll_id=(int)$_GET['poll']) {
  109.   print_poll($poll_id);
  110. }
  111.  
  112. include_once('form.php');
  113. ?>
  114.  


Непонятно как обращаться к элементам форму? например к чекбоксу answer_".$question."_".$answer[0]." если обращаться, то вне функции в этих переменных ничего нет же.., что то не догоняю

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB