За последние 24 часа нас посетили 18875 программистов и 1702 робота. Сейчас ищет 641 программист ...

Вставка QR кода в скрипт

Тема в разделе "Прочие вопросы по PHP", создана пользователем karandaw, 30 апр 2013.

  1. karandaw

    karandaw Новичок

    С нами с:
    30 апр 2013
    Сообщения:
    10
    Симпатии:
    0
    Добрый день господа.
    Вопрос такого характера, есть скрипт web инвентаризации и учета техники, есть база данных MySql в которой хранятся данные.
    Скрипт дейсвует по принципу учета и передачи оборудования в разные отделы, при передаче печатается акт в который нужно вставить ФИО передающего, ФИО принимающего и № отдела, как это можно реализовать с помощью QR кода?
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
    я так понимаю вам надо вбить ФИО + № и сгенерировать все в QR код, а чтобы генерировался он, нужен скрипт... я правильно понял?
     
  3. karandaw

    karandaw Новичок

    С нами с:
    30 апр 2013
    Сообщения:
    10
    Симпатии:
    0
    Скрипт уже есть, надо в этот скрипт вставить qr код, тоесть чтоб он генерировал вышеперечисленное.

    К примеру, я нажимаю - передать оборудование и открывается акт, и в нём уже должен быть qr код, от кого, кому, и номер отдела.

    Тоесть есть скрипт передачи оборудования, а скрипта qr кода нет, и наверное если бы был, незнаю как его вснуть в свой скрипт
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    а что от QR-а требуется? по его распознованию что должно произойти? если нужно запустить браузер с нужной страницей то достаточно только идентификатора документа-перемещения. если нужно просто отобразить информацию на экране то конкатенируйте строки ИД+ФИО1+ФИО2 и все это уже в QR кодируйте.
     
  5. karandaw

    karandaw Новичок

    С нами с:
    30 апр 2013
    Сообщения:
    10
    Симпатии:
    0
    На этом форуме можно выложить скрипт для просмотра, чтоб было легче понять?
     
  6. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
    ну вы сначала найдите скрипт этот (погуглите) :) а потом если вы не сможете совместить то php.ru поможет )
     
  7. karandaw

    karandaw Новичок

    С нами с:
    30 апр 2013
    Сообщения:
    10
    Симпатии:
    0
    Дело в том что уже гуглил, нашел скрипт qr кода, но не могу понять как его вставить.

    Надо чтоб был запрос в базу данных я так понимаю и все это паковалось в код.
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
  9. karandaw

    karandaw Новичок

    С нами с:
    30 апр 2013
    Сообщения:
    10
    Симпатии:
    0
    <?php
    function load_viddili() {
    global $viddili,$db;
    $q="SELECT id,name,pib,tobo FROM viddili ORDER BY id ASC";
    if (!$res=mysql_query($q,$db->id)) {
    echo '<p>Помилка відкриття бази даних</p>'."\r\n";
    return false;
    }
    $kol=mysql_num_rows($res);
    $viddili['0'][0]='На списанні';
    $viddili['0'][1]='';
    for ($i=0;$i<$kol;$i++) {
    $ob=mysql_fetch_object($res);
    $viddili[(string)$ob->id][0]=$ob->name;
    $viddili[(string)$ob->id][1]=$ob->pib;
    }
    mysql_free_result($res);
    return true;
    }
    function propis ($ch) {
    $edinici=array('ноль','одна','дві','три','чотири','п`ять','шість','сім','вісім','дев`ять');
    $edinici2=array('ноль','один','два','три','чотири','п`ять','шість','сім','вісім','дев`ять');
    $desat=array('десять','одинадцять','дванадцять','тринадцять','чотирнадцять','п`ятнадцять','шістнадцять','сімнадцять','вісімнадцять','дев`ятнадцять');
    $desatki=array('','','двадцять','тридцять','сорок','п`ятдесят','шістдесят','сімдесят','вісімдесят','дев`яносто');
    $sotni=array('','сто','двісті','триста','чотириста','п`тьсот','шістьсот','сімсот','вісімсот','дев`ятсот');
    $grn='';
    $ch=explode('.',$ch);
    $s=(int)$ch[0];
    if ($s!=0) { // Якщо число =0, тоне розшифровуємо, а пишемо 'ноль'
    // розшифровуємо одиниці до сотень
    $ch_od=$s%100;
    $s=floor($s/100);
    if ($ch_od!=0) {
    if ($ch_od<10) $grn=$edinici[$ch_od];
    elseif (($ch_od>9)&&($ch_od<20)) {$ch_od=$ch_od % 10;$grn=$desat[$ch_od];}
    else {
    $i=floor($ch_od/10); $grn=$desatki[$i];
    $i=$ch_od % 10;
    if ($i!=0) $grn.=' '.$edinici[$i];
    }
    }
    // розшифровуємо сотні одиниць
    $ch_od=$s % 10;
    $s=floor($s/10);
    if ($ch_od>0) $grn=$sotni[$ch_od].' '.$grn;
    // розшифровуємо тисячі до сотень
    $ch1000='';
    $ch_od=$s%100;
    $j=$ch_od;
    $s=floor($s/100);
    if ($ch_od!=0) {
    if ($ch_od<10) $ch1000=$edinici[$ch_od].' ';
    elseif (($ch_od>9)&&($ch_od<20)) {$ch_od=$ch_od % 10;$ch1000=$desat[$ch_od];}
    else {
    $i=floor($ch_od/10); $ch1000=$desatki[$i];
    $i=$ch_od % 10;
    if ($i!=0) $ch1000.=' '.$edinici[$i];
    }
    }
    // розшифровуємо сотні тисяч
    $ch_od=$s % 10;
    $s=floor($s/10);
    if ($ch_od>0) $ch1000=$sotni[$ch_od].' '.$ch1000;
    if (strlen($ch1000)>0) $ch1000.=' тисяч';
    if (($j<10)||($j>19)) {
    $j=$j % 10;
    switch ($j) {
    case 1:$ch1000.='а';
    break;
    case 2:
    case 3:
    case 4:$ch1000.='і';
    break;
    }
    }
    $grn=$ch1000.' '.$grn;

    // розшифровуємо мільони до сотень
    $ch_mln='';
    $ch_od=$s%100;
    $j=$ch_od;
    $s=floor($s/100);
    if ($ch_od!=0) {
    if ($ch_od<10) $ch_mln=$edinici2[$ch_od].' ';
    elseif (($ch_od>9)&&($ch_od<20)) {$ch_od=$ch_od % 10;$ch_mln=$desat[$ch_od];}
    else {
    $i=floor($ch_od/10); $ch_mln=$desatki[$i];
    $i=$ch_od % 10;
    if ($i!=0) $ch_mln.=' '.$edinici[$i];
    }
    }
    // розшифровуємо сотні мільонів
    $ch_od=$s % 10;
    $s=floor($s/10);
    if ($ch_od>0) $ch_mln=$sotni[$ch_od].' '.$ch_mln;
    if (strlen($ch_mln)>0) {
    $ch_mln.=' мільон';
    if (($ch_od>4)&&($ch<21)) $ch_mln.='ів';
    else {
    $ch_od=$ch_od % 10;
    $j=$j % 10;
    switch ($j) {
    case 1: break;
    case 2:
    case 3:
    case 4: $ch_mln.='а';
    break;
    default: $ch_mln.='ів';
    }
    }
    $grn=$ch_mln.' '.$grn;
    }
    } else $grn='ноль';
    $result=$grn.' грн '.$ch[1].' коп.';
    return $result;
    }
    function view_akt() {
    global $res,$viddili,$viddil2;
    $data=getdate();
    ?>
    <h1>НАКЛАДНА №_________ від "____" _________________ <?php echo $data['year'];?>р.<br>НА ВНУТРІШНЄ ПЕРЕМІЩЕННЯ<br>НЕОБОРОТНИХ АКТИВІВ БАНКУ</h1>
    <br><br><br>
    <table width="100%" border="0px" cellspacing="0px" cellpadding="0px">
    <tr>
    <td width="15%" align="left" valign="top">
    <b>Кому:</b>
    </td>
    <td align="left" valign="top">
    <?php
    if (isset($viddili[$viddil2][0])) echo $viddili[$viddil2][0].'<br>'.$viddili[$viddil2][1];
    ?>
    <br><br>
    </td>
    </tr>
    <tr>
    <td align="left" valign="top">
    <b>Від кого:</b>
    </td>
    <td align="left" valign="top">
    <?php echo $_SESSION['viddil_name'].'<br>'.$_SESSION['fio'];?>
    <br><br>
    </td>
    </tr>
    </table>
    <table width="100%" border="0px" cellspacing="0px" cellpadding="2px" style="border:1px solid #000000">
    <tr style="background:#dddddd">
    <td width="30px" align="center" valign="middle" style="border:1px solid #000000"><b>№<br>з/п</b></td>
    <td align="center" valign="middle" style="border:1px solid #000000"><b>Найменування</b></td>
    <td width="100px" align="center" valign="middle" style="border:1px solid #000000"><b>Інв. номер</b></td>
    <td width="100px" align="center" valign="middle" style="border:1px solid #000000"><b>Серійний номер</b></td>
    <td width="50px" align="center" valign="middle" style="border:1px solid #000000"><b>К-ть</b></td>
    <td width="50px" align="center" valign="middle" style="border:1px solid #000000"><b>Рахунок обліку</b></td>
    <td width="100px" align="center" valign="middle" style="border:1px solid #000000"><b>Балансова вартість</b></td>
    </tr>

    <?php
    $summa_g=0; $summa_c=0; $kol=0; $viddil=0;
    while ($ob=mysql_fetch_object($res)) {
    $kol++;
    $s=explode('.',$ob->cena);
    $summa_g+=$s[0]; $summa_c+=$s[1];
    ?>
    <tr>
    <td align="center" valign="middle" style="border:1px solid #000000"><?php echo $kol;?></td>
    <td align="left" valign="middle" style="border:1px solid #000000"><?php echo $ob->name;?></td>
    <td align="center" valign="middle" style="border:1px solid #000000"><?php echo $ob->id;?></td>
    <td align="center" valign="middle" style="border:1px solid #000000"><?php echo $ob->sn;?></td>
    <td align="center" valign="middle" style="border:1px solid #000000">1</td>
    <td align="left" valign="middle" style="border:1px solid #000000">&nbsp;</td>
    <td align="right" valign="middle" style="border:1px solid #000000"><?php echo $ob->cena;?></td>
    </tr>
    <?php
    }
    $summa=$summa_g+floor($summa_c/100);
    $summa_c=$summa_c % 100;
    $summa.='.'.$summa_c;
    ?>
    <tr>
    <td align="center" valign="middle" style="border:1px solid #000000">&nbsp;</td>
    <td align="left" valign="middle" style="border:1px solid #000000" colspan="5"><b>Загалом</b></td>
    <td align="right" valign="middle" style="border:1px solid #000000"><b><?php echo $summa;?></b></td>
    </tr>

    </table>
    <div align="left" style="margin:20px 0px 0px 50px">
    <b>Всього об'єктів: <?php echo $kol;?></b>
    <br>
    <b>на загальну суму:</b> <?php echo propis($summa);?>

    <table width="100%" border="0px" cellspacing="0px" cellpadding="0px">
    <tr>
    <td align="left" valign="top"><b>Здав</b></td>
    <td width="20%" align="left" valign="top" style="border-bottom:2px solid #000000">&nbsp;</td>
    <td width="50px">&nbsp;</td>
    <td width="30%" align="left" valign="top"><?php echo $_SESSION['fio'];?></td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td align="center" valign="top"><font size="-1">(підпис)</font></td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    </table>
    <br>
    <table width="100%" border="0px" cellspacing="0px" cellpadding="0px">
    <tr>
    <td align="left" valign="top"><b>Прийняв</b></td>
    <td width="20%" align="left" valign="top" style="border-bottom:2px solid #000000">&nbsp;</td>
    <td width="50px">&nbsp;</td>
    <td width="30%" align="left" valign="top"><?php echo $viddili[$viddil2][1]?></td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td align="center" valign="top"><font size="-1">(підпис)</font></td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    </table>
    </div>

    <?php
    }
    session_start();
    ?>
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=windows-1251"> <!-- указание кодировки символов на странице -->
    <meta http-equiv="Content-Language" content="ru">
    <meta http-equiv="Pragma" content="no-cache"> <!-- Контроль кэширования страницы -->
    <title>Внутрішнє переміщення</title>
    <style>
    <!--
    h1{
    font-size:16pt;
    font-weight:bold;
    text-align:center;
    margin:5px 0px 5px 0px;
    }
    -->
    </style>
    </head>
    <body>
    <?php
    if (!isset($_SESSION['viddil'])) {
    echo '<p>Адміністратор не авторизований.</p>';
    if (!isset($_SESSION['admin'])) session_destroy();
    return;
    }
    $err='';
    if (!isset($_GET['viddil2'])) {
    echo '<p><b style="color:#ff0000">Помилка: не переданий відділ-отримувач.</b></p>'."\r\n";
    return;
    } else $viddil2=(int)$_GET['viddil2'];
    if (!file_exists('../data/settings.php')) {
    echo '<b style="color:#ff0000">Помилка зчитування налаштувань.</b>'."\r\n";
    return;
    }
    $sett=file('../data/settings.php');
    class MySQL {
    var $id;
    var $server;
    var $base;
    var $user;
    var $pass;
    }
    $db=new MySQL;
    $s=explode('|',$sett[1]);
    $db->server=$s[0];
    $db->user=$s[1];
    $db->pass=$s[2];
    $db->base=$s[3];
    $db->id=mysql_connect($db->server,$db->user,$db->pass);
    if ($db->id==false) {
    echo '<p style="color:#ff0000;"><b>Помилка підключення до MySQL</b></p>'."\r\n";
    return;
    }
    if (!mysql_select_db($db->base)) {
    echo '<p>Помилка відкриття бази даних</p>'."\r\n";
    mysql_close($db->id);
    return;
    }
    mysql_query('SET NAMES cp1251',$db->id);
    $viddili=array();
    load_viddili();
    $q="SELECT * FROM devices WHERE (otdel=".$_SESSION['viddil'].")AND(otdel2!=0)AND(otdel2=$viddil2) ORDER BY name ASC";
    if ($res=mysql_query($q,$db->id)) {
    if (mysql_num_rows($res)>0) {
    view_akt();
    } else echo "<p><b>Помилка: не знайдено жодного пристрою.</b></p>\r\n<br>\r\n";
    mysql_free_result($res);
    } else echo "<p><b>Помилка: запит пристрою для побудови акту переміщення не виконано (".mysql_error($db->id).").</b></p>\r\n<br>\r\n";
    mysql_close($db->id);
    ?>
    </body>
    </html>

    Добавлено спустя 1 минуту 49 секунд:
    Тоесть в этот акт надо засунуть qr код внизу, с данными о людях кто - кому и № отдела
     
  10. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
    http://takein.ru/php/65-sozdanie-qr-kodov-na-php.html

    Добавлено спустя 2 минуты 45 секунд:
    тут почитал чето вроде для вас ) функцию например после <?php вставте а showQRCode(текст, размер) куда надо вам вставить)
     
  11. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    а где скрипт, который генерирует qr-то? =)))))
     
  12. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
    ты кого спрашиваешь?:D
     
  13. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
     
  14. karandaw

    karandaw Новичок

    С нами с:
    30 апр 2013
    Сообщения:
    10
    Симпатии:
    0
    <?PHP

    require_once 'qrlib.php';

    $data = array('Вася', 'Иванов', '10.12.1985');

    $data = implode(" ", $data);

    QRcode::png($data);

    ?>
    Вот сам скрипт qr, но здесь стоят уже готовые данные, а как сделать чтоб он брал с базы, кто передаёт (текущая сессия), кому (выбор) и № отдела.
    Тоесть автоматическая генерация данных

    Тоесть как здесь: $q="SELECT * FROM devices WHERE (otdel=".$_SESSION['viddil'].")AND(otdel2!=0)AND(otdel2=$viddil2) ORDER BY name ASC";
     
  15. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ну соотв ты эти данные должен получить, собрать, и передать в скрипт в виде строки.
     
  16. karandaw

    karandaw Новичок

    С нами с:
    30 апр 2013
    Сообщения:
    10
    Симпатии:
    0
    Можно пример, не совсем понимаю как это сделать
     
  17. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    чувак...

    если есть вопрос - задай его.
     
  18. karandaw

    karandaw Новичок

    С нами с:
    30 апр 2013
    Сообщения:
    10
    Симпатии:
    0
     
  19. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    это не вопрос. это "сделайте за меня".
     
  20. karandaw

    karandaw Новичок

    С нами с:
    30 апр 2013
    Сообщения:
    10
    Симпатии:
    0
    Я так понимаю что нужно загнать в массив mysql_fetch_array, но как именно....не понимаю.
     
  21. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    вы либо учитесь тут,с нашей помощью. Либо заказывайте за денежку.
    Учение подразумевает эксперименты и вопросы. Вдумчивые. Сначала читаете, что делает функция, потом если не поняли - задаете вопрос.
     
  22. karandaw

    karandaw Новичок

    С нами с:
    30 апр 2013
    Сообщения:
    10
    Симпатии:
    0
    Делаю так:

    $awa_s = mysql_query("SELECT * FROM devices WHERE (otdel=".$_SESSION['viddil'].")AND(otdel2!=0)AND(otdel2=$viddil2)AND(tobo=$tobo2) ORDER BY name ASC");
    $results = mysql_fetch_array($awa_s);
    Возвращает ошибку:

    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in
     
  23. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ошибка при выполнении запроса - смотрите текст ошибки вызовом mysql_error() после mysql_query()