Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Помогите оформить селект в php страничку
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Помогите оформить селект в php страничку

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

1. disprokz - 17 Сентября, 2015 - 22:40:40 - перейти к сообщению
Добрый вечер всем.
В языках программирования опыта вообще нет. Есть уже готовый селект из Mysql, который нужно грамотно оформить в php страницу.
Времени изучать язык к сожалению нет. Взамен могу помочь с настройкой ОС Windows, FreeBSD,Centos, Ubuntu.

CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT zayavki.create_time, zayavki.a_subject, zayavki.a_to, zayavki.a_body,  'В обработке',  'В обработке'  ,  'В обработке'
  3. FROM article zayavki
  4. WHERE (SELECT count(ticket_id) FROM article zayavki_1 WHERE zayavki.ticket_id=zayavki_1.ticket_id GROUP BY ticket_id) = 1
  5.  
  6. UNION ALL
  7.  
  8.  
  9. SELECT zayavki.create_time, zayavki.a_subject, zayavki.a_to, zayavki.a_body,  reshenia.a_subject, reshenia.change_time  , reshenia.a_body
  10. FROM article zayavki, article reshenia
  11. WHERE zayavki.ticket_id = reshenia.ticket_id
  12. AND zayavki.id < reshenia.id
  13.  
2. andrewkard - 17 Сентября, 2015 - 22:46:29 - перейти к сообщению
disprokz
В каком виде приходят данные из БД?
3. disprokz - 17 Сентября, 2015 - 22:48:24 - перейти к сообщению
andrewkard пишет:
disprokz
В каком виде приходят данные из БД?

Добрый вечер.
Данные из БД - дата и текст на русском.
4. andrewkard - 17 Сентября, 2015 - 23:41:44 - перейти к сообщению
disprokz
Код не тестировал, учитывая скудность исходных данных, как то так:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $html = '<select>';
  4. while ($row = mysql_fetch_assoc($result)) {
  5.     $html .= '<option value='.$row["create_time"].'>'.$row["a_subject"].'</option>';
  6. }
  7. $html .= '</select>';
  8.  
  9. echo $html;
  10.  
5. Panoptik - 18 Сентября, 2015 - 00:23:30 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $dbHost = 'localhost';
  3. $dbUser = 'root';
  4. $dbPass = '';
  5. $dbName = 'testdb';
  6. $db = new PDO('mysql:dbname=' . $dbName . ';host=' . $dbHost, $dbUser, $dbPass);
  7.  
  8. $sql = <<<SQL
  9. SELECT zayavki.create_time, zayavki.a_subject, zayavki.a_to, zayavki.a_body,  'В обработке',  'В обработке'  ,  'В обработке'
  10. FROM article zayavki
  11. WHERE (SELECT count(ticket_id) FROM article zayavki_1 WHERE zayavki.ticket_id=zayavki_1.ticket_id GROUP BY ticket_id) = 1
  12.  
  13. UNION ALL
  14.  
  15.  
  16. SELECT zayavki.create_time, zayavki.a_subject, zayavki.a_to, zayavki.a_body,  reshenia.a_subject, reshenia.change_time  , reshenia.a_body
  17. FROM article zayavki, article reshenia
  18. WHERE zayavki.ticket_id = reshenia.ticket_id
  19. AND zayavki.id < reshenia.id';
  20. SQL;
  21.  
  22. $result = $db->prepare($sql)->execute();
  23.  
  24. $rows = $result->fetchAll(PDO::FETCH_ASSOC);
  25.  
  26. ?>
  27.  
  28. <?PHP if($rows): ?>
  29.   <table>
  30.   <thead>
  31.     <tr>
  32.     <?PHP foreach(array_keys($rows[0]) as $colName): ?>
  33.       <th><?=$colName;?></th>
  34.     <?PHP endforeach; ?>
  35.     </tr>
  36.   </thead>
  37.   <tbody>
  38.   <?PHP foreach($rows as $row): ?>
  39.     <tr>
  40.       <td>
  41.         <?=implode('</td><td>', $row);?>
  42.       </td>
  43.     </tr>
  44.   <?PHP endforeach; ?>
  45.   </tbody>
  46.   </table>
  47. <?PHP endif; ?>
  48.  
  49.  
6. disprokz - 18 Сентября, 2015 - 00:39:01 - перейти к сообщению
andrewkard пишет:
disprokz
Код не тестировал, учитывая скудность исходных данных, как то так:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $html = '<select>';
  4. while ($row = mysql_fetch_assoc($result)) {
  5.     $html .= '<option value='.$row["create_time"].'>'.$row["a_subject"].'</option>';
  6. }
  7. $html .= '</select>';
  8.  
  9. echo $html;
  10.  

Пустая страница выходит
(Добавление)
Panoptik пишет:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $dbHost = 'localhost';
  3. $dbUser = 'root';
  4. $dbPass = '';
  5. $dbName = 'testdb';
  6. $db = new PDO('mysql:dbname=' . $dbName . ';host=' . $dbHost, $dbUser, $dbPass);
  7.  
  8. $sql = <<<SQL
  9. SELECT zayavki.create_time, zayavki.a_subject, zayavki.a_to, zayavki.a_body,  'В обработке',  'В обработке'  ,  'В обработке'
  10. FROM article zayavki
  11. WHERE (SELECT count(ticket_id) FROM article zayavki_1 WHERE zayavki.ticket_id=zayavki_1.ticket_id GROUP BY ticket_id) = 1
  12.  
  13. UNION ALL
  14.  
  15.  
  16. SELECT zayavki.create_time, zayavki.a_subject, zayavki.a_to, zayavki.a_body,  reshenia.a_subject, reshenia.change_time  , reshenia.a_body
  17. FROM article zayavki, article reshenia
  18. WHERE zayavki.ticket_id = reshenia.ticket_id
  19. AND zayavki.id < reshenia.id';
  20. SQL;
  21.  
  22. $result = $db->prepare($sql)->execute();
  23.  
  24. $rows = $result->fetchAll(PDO::FETCH_ASSOC);
  25.  
  26. ?>
  27.  
  28. <?PHP if($rows): ?>
  29.   <table>
  30.   <thead>
  31.     <tr>
  32.     <?PHP foreach(array_keys($rows[0]) as $colName): ?>
  33.       <th><?=$colName;?></th>
  34.     <?PHP endforeach; ?>
  35.     </tr>
  36.   </thead>
  37.   <tbody>
  38.   <?PHP foreach($rows as $row): ?>
  39.     <tr>
  40.       <td>
  41.         <?=implode('</td><td>', $row);?>
  42.       </td>
  43.     </tr>
  44.   <?PHP endforeach; ?>
  45.   </tbody>
  46.   </table>
  47. <?PHP endif; ?>
  48.  
  49.  

прописал базу и пароль, но результат тот же.
7. Panoptik - 18 Сентября, 2015 - 00:48:49 - перейти к сообщению
в начало после <?php
добавьте ini_set('display_errors',1); error_reporting(E_ALL | E_STRICT);

и выхлоп сюда
8. disprokz - 18 Сентября, 2015 - 00:56:42 - перейти к сообщению
Panoptik пишет:
в начало после <?php
добавьте ini_set('display_errors',1); error_reporting(E_ALL | E_STRICT);

и выхлоп сюда

пусто :-/
Хотя мой вариант php отрабатывался
9. Panoptik - 18 Сентября, 2015 - 01:01:49 - перейти к сообщению
значит мускул возвращает пустой результат

тю, вроде как ошибся

нужно вот это

PHP:
скопировать код в буфер обмена
  1. $result = $db->prepare($sql)->execute();
  2.  
  3. $rows = $result->fetchAll(PDO::FETCH_ASSOC);


заменить на

PHP:
скопировать код в буфер обмена
  1. $stmt = $db->prepare($sql);
  2.  
  3. $result = $stmt->execute();
  4.  
  5. var_dump($result); // это убрать если вернет тру
  6.  
  7. $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
  8.  
  9. var_dump($rows);
  10.  
  11. var_dump($stmt->errorInfo());
  12.  


если отработает все ок то вардампы убрать из кода, если будет ошибка, то выхлоп сюда
10. disprokz - 18 Сентября, 2015 - 01:08:34 - перейти к сообщению
Panoptik пишет:
значит мускул возвращает пустой результат

тю, вроде как ошибся

нужно вот это

PHP:
скопировать код в буфер обмена
  1. $result = $db->prepare($sql)->execute();
  2.  
  3. $rows = $result->fetchAll(PDO::FETCH_ASSOC);


заменить на

PHP:
скопировать код в буфер обмена
  1. $stmt = $db->prepare($sql);
  2.  
  3. $result = $stmt->execute();
  4.  
  5. var_dump($result); // это убрать если вернет тру
  6.  
  7. $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
  8.  
  9. var_dump($rows);
  10.  
  11. var_dump($stmt->errorInfo());
  12.  


если отработает все ок то вардампы убрать из кода, если будет ошибка, то выхлоп сюда

Не отработал... мож как нить удаленно подключитесь? я покажу в phpmyadmin как мне нужно вытащить?
11. Panoptik - 18 Сентября, 2015 - 01:09:21 - перейти к сообщению
почту проверь
12. disprokz - 18 Сентября, 2015 - 01:55:33 - перейти к сообщению
Panoptik пишет:
почту проверь

СПАСИБО ОГРОМНОЕ!!!

 

Powered by ExBB FM 1.0 RC1