Как получить данные из таблицы MySQL и вставить их в QR-код с помощью PHP?

У меня есть этот PHP-код, который должен извлекать данные из базы данных MySQL и вставлять их в QR-код:

 <?php
    include(JPATH_LIBRARIES . '/phpqrcode/qrlib.php');

$db     = JFactory::getDbo(); 
$user   = JFactory::getUser();

$query = $db->getQuery(true);    
$query->select($db->quoteName(array('Nom', 'Cognoms', 'eCorreu')))
      ->from($db->quoteName('#__rsform_socis'))
      ->where($db->quoteName('Username') . ' = '. $db->quote($user->Username));     
$db->setQuery($query);
$codeContents = $db->loadObjectList();

$data  = $codeContents[0]->Nom;
$data .= $codeContents[0]->Cognoms;
$data .= $codeContents[0]->eCorreu;

$tempDir  = JPATH_SITE . '/images/';   
$fileName = 'qr_'.md5($data).'.png';   
$pngAbsoluteFilePath = $tempDir.$fileName;
$urlRelativeFilePath = JUri::root() .'images/' . $fileName;

if (!file_exists($pngAbsoluteFilePath)) {
    QRcode::png($data, $pngAbsoluteFilePath);
}       
echo '<img src="'.$urlRelativeFilePath.'" />';
    ?>

Однако, я просто получаю значок изображения. Может ли кто-нибудь помочь? Спасибо!

Дани

2 голоса | спросил Dani Valverde 3 +04002014-10-03T12:39:05+04:00312014bEurope/MoscowFri, 03 Oct 2014 12:39:05 +0400 2014, 12:39:05

1 ответ


1

Update:

Хорошо, я сделал тест. Я подключился к таблице #__users и вытащил name и username идентификатора текущего зарегистрированного пользователя:

include(JPATH_LIBRARIES . '/phpqrcode/qrlib.php');

$db     = JFactory::getDbo(); 
$user   = JFactory::getUser();

$query = $db->getQuery(true);    
$query->select($db->quoteName(array('name', 'username')))
      ->from($db->quoteName('#__users'))
      ->where($db->quoteName('id') . ' = '. $db->quote($user->id));     
$db->setQuery($query);
$codeContents = $db->loadObjectList();

$data  = $codeContents[0]->name;
$data .= $codeContents[0]->username;

$tempDir  = JPATH_SITE . '/images/';   
$fileName = 'qr_'.md5($data).'.png';   
$pngAbsoluteFilePath = $tempDir.$fileName;
$urlRelativeFilePath = JUri::root() .'images/' . $fileName;

if (!file_exists($pngAbsoluteFilePath)) {
    QRcode::png($data, $pngAbsoluteFilePath);
}       
echo '<img src="'.$urlRelativeFilePath.'" />';

Это создало QRCode. Затем я просмотрел его на своем телефоне и отобразил правильные данные. Поэтому в вашем случае измените имя таблицы dtabase на все, что пожелаете, и введите поля, которые вы хотите получить из этой таблицы.

array('name', 'username') // Add what you want here

Затем вам нужно определить их так:

$data .= $codeContents[0]->NAME_OF_FIELD;

Перед . (равно). Это необходимо сделать для всех из них, кроме первого, как показано в моем коде.

Надеюсь, что это поможет

ответил Lodder 3 +04002014-10-03T12:50:01+04:00312014bEurope/MoscowFri, 03 Oct 2014 12:50:01 +0400 2014, 12:50:01

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132