it-swarm.com.de

Wie kann ich Daten aus einer MySQL-Tabelle abrufen und mit PHP in QR-Code einfügen?

Ich habe diesen PHP Code, der Daten aus einer MySQL-Datenbank abrufen und in einen QR-Code einbetten soll:

 <?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.'" />';
    ?>

Ich erhalte jedoch nur ein Bildsymbol. Kann jemand helfen? Vielen Dank!

Dani

2
Dani Valverde

Aktualisieren:

Ok, ich habe einen Test gemacht. Ich verband mich mit dem #__users Tabelle und zog die name und username der ID des aktuell angemeldeten Benutzers wie folgt:

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.'" />';

Dadurch wurde der QRCode erstellt. Ich habe es dann auf meinem Telefon gescannt und es wurden die richtigen Daten angezeigt. Ändern Sie in Ihrem Fall den Namen der Datenbank-Tabelle in einen beliebigen Namen und geben Sie die Felder ein, die Sie aus dieser Tabelle abrufen möchten.

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

Dann müssen Sie sie wie folgt definieren:

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

Sie sehen ein . (Punkt) vor dem = (gleich) Symbol. Dies muss für alle außer der ersten durchgeführt werden, wie in meinem Code gezeigt.

Hoffe das hilft

1
Lodder