web-dev-qa-db-pt.com

Adicionando PHP No artigo

Desejo me conectar a uma instância do SQL Server no meu artigo e tenho a sintaxe abaixo para fazer isso. Meu problema é que, quando vejo o artigo, ele escreve

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

na tela em vez de interpretá-lo como parte do código. Este é o código que tenho, o que preciso alterar para que o artigo do Joomla interprete isso corretamente?

<?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>";
}
?>

EDITAR
Atualizado para usar o 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);

Mas como passo o servidor e as credenciais nesta configuração?

EDIT 2
Atualizei meu código para usar o JDatabaseDriver desde que minha instalação do Joomla e o servidor que desejo consultar estão em instâncias diferentes. Eu adicionei nesta sintaxe:

    <?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);
?>

E agora eu sou exibido na tela na página carregar tudo depois

getQuery (verdadeiro);

O que estou perdendo aqui?

1
Yohan Greenburg

Eu recomendaria usar este plugin aqui Regular Labs Sourcerer .

Peguei isso na descrição da página do plugin:

O Sourcerer permite que você coloque PHP e qualquer tipo de código de estilo HTML (incluindo CSS e JavaScript) direto no seu conteúdo! Não apenas em seus artigos, mas também em seções, categorias, módulos, componentes, Tags META etc.

Agora você pode apenas colocar seus códigos originais diretamente no seu editor WYSIWYG. A única coisa que você precisa fazer é colocar o código entre as tags Sourcerer. Mole-mole!

Então agora você também pode usar scripts PHP em seu conteúdo. Isso abre muitas possibilidades.

A maioria dos Joomla! Os editores de texto removerão partes do seu código HTML, como JavaScripts (pense em scripts estatísticos) e tags de incorporação de filme. Com Sourcerer você não terá essas limitações.

2
FFrewin