web-dev-qa-db-fra.com

Ajout de PHP dans l'article

Je souhaite me connecter à une instance de SQL Server dans mon article et j'ai la syntaxe ci-dessous pour le faire. Mon problème est que quand je regarde l'article, il écrit

". $ row ['book_name']."
";}?>

sur l'écran au lieu de l'interpréter dans le cadre du code. C'est le code que j'ai, que dois-je modifier pour que l'article de Joomla l'interprète correctement?

<?php
//provide your hostname, username and dbname
$Host=""; 
$username="";  
$password="";
$db_name=""; 
//$con=mysql_connect("$Host", "$username", "$password")or die("cannot connect");
$con=mysql_connect("$Host", "$username", "$password");
mysql_select_db("$db_name");
$book_name = $_POST['book_name'];
$sql = "select book_name from book_mast where book_name LIKE '$book_name%'";
$result = mysql_query($sql);
while($row=mysql_fetch_array($result))
{
echo "<p>".$row['book_name']."</p>";
}
?>

EDIT
Mise à jour pour utiliser JFactory

$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->quoteName(array('Top 1 employer')));
$query->from($db->quoteName('#[Roster].[dbo].[Employers]')); 
$db->setQuery($query); 
$row = $db->loadRow();
print_r($row);

Mais comment puis-je transmettre le serveur et les informations d'identification dans cette configuration?

EDIT 2
J'ai mis à jour mon code pour utiliser JDatabaseDriver depuis mon installation de Joomla et le serveur que je veux interroger se trouvent sur des instances différentes. J'ai ajouté dans cette syntaxe:

    <?php
    $option = array(); //prevent problems

    $option['driver']   = 'mysql';            // Database driver name
    $option['Host']     = 'db.myhost.com';    // Database Host name
    $option['user']     = 'fredbloggs';       // User for database authentication
    $option['password'] = 's9(39s£h[%dkFd';   // Password for database authentication
    $option['database'] = 'bigdatabase';      // Database name
    $option['prefix']   = 'abc_';             // Database prefix (may be empty)

    $db = JDatabaseDriver::getInstance( $option );
    $query = $db->getQuery(true);
    $query->select($db->quoteName(array('Top 1 employer')));
    $query->from($db->quoteName('#[Roster].[dbo].[Employers]')); 
    $db->setQuery($query); 
    $row = $db->loadRow();
    print_r($row);
?>

Et maintenant, je suis affiché à l'écran sur la page tout charger après

getQuery (true);

Qu'est-ce que j'oublie ici?

1
Yohan Greenburg

Je recommanderais d'utiliser ce plugin ici Regular Labs Sourcerer .

Tiré ceci de la description de la page du plugin:

Sourcerer vous permet de placer PHP et tout type de code de style HTML (CSS et JavaScript compris) directement dans votre contenu! Non seulement dans vos articles, mais également dans des sections, catégories, modules, composants, etc. Balises META, etc.

Vous pouvez maintenant simplement placer vos codes originaux directement dans votre éditeur WYSIWYG. La seule chose à faire est d’entourer le code des balises Sourcerer. Peasy facile!

Alors maintenant, vous pouvez également utiliser PHP des scripts dans votre contenu. Cela ouvre beaucoup de possibilités.

La plupart des Joomla! Les éditeurs de texte vont supprimer des parties de votre code HTML, telles que JavaScripts (pensez aux scripts de statistiques) et les balises d'intégration de film. Avec Sourcerer, vous n’aurez pas ces limitations.

2
FFrewin