Jump to content
Sign in to follow this  
mbtexascity

[Resolvido] PHP+Mysql erro, ajuda!

Recommended Posts

mbtexascity

boas pessoal, nem sei bem que titulo deva colocar no topico lol.

Eu nao precebo nada de PHP, mas ás vezes lá me desenrasco em coisas muito simples, mas agora estou com um problema.

Estou a usar joomla, e no template do site existe um menu com o seguinte codigo

<div class="div">
<div id="menu">
<div class="menuc">
	<div id="topnavi">
		<ul>
		<?php
			$item_id = mysql_escape_string( $_GET['Itemid'] );
			$qry = "SELECT id, name, link FROM #__menu WHERE menutype='topmenu' and parent='0' AND access<='$gid' AND sublevel='0' AND published='1' ORDER BY ordering";
			$database->setQuery($qry);
			$rows = $database->loadObjectList();
			foreach($rows as $row) {
				echo "<a href='$row->link&Itemid=$row->id' ".( $row->id == $item_id ? "class='current'" : "" )." >$row->name</a>";
			}
		?>
		</ul>
	</div>		
</div>
</div>
</div>

isto basicamente, vai á BD do joomla saca o nome do item do menu ($row->name) e o respectivo link (echo "<a href='$row->link&Itemid=$row->id' ".($row->id == $item_id ? "class='current'" : "" ).), e torna o nome do item numa hiperligação.

Mas.. o que eu queria fazer é adaptar este codigo para transformar uma imagem em hiperligação, por exemplo se eu no nome de menu tivesse "http://zeka.com/imagem.png", ele iria fazer um hiperligação a esta imagem.

O que eu já tentei foi trocar

echo "<a href='$row->link&Itemid=$row->id' ".( $row->id == $item_id ? "class='current'" : "" )." >$row->name</a>";

por isto

echo "<a href='$row->link&Itemid=$row->id' ".( $row->id == $item_id ? "class='current'" : "" )." ><img src="$row->name" width="60" height="30" vspace="10" hspace="10" border="0" /></a>";

llol, mas para variar deu erro, alguem que me possa ajudar sff, este menu é só para imagens mais nada.

cumps.

Share this post


Link to post
Share on other sites
n3lThon

Que tipo de erro é que dá?

Falta ai a conexão à base de dados.


dreams.each do |dream|

   dream.make_it_happen

end

Share this post


Link to post
Share on other sites
n3lThon

Experimenta estas duas formas:

<?php

	$server = "localhost";
	$user = "root";
	$pass = "123mudar";
	$datab = "sistema";

	$con = mysql_connect($server,$user,$pass);

	$db = mysql_select_db($datab);

	$item_id = mysql_escape_string( $_GET['Itemid'] );
	$qry = "SELECT id, name, link FROM #__menu WHERE menutype='topmenu' and parent='0' AND access<='$gid' AND sublevel='0' AND published='1' ORDER BY ordering";

	while($row = mysql_fetch_array($qry)){

		echo "<a href='$row->link&Itemid=$row->id' ".( $row->id == $item_id ? "class='current'" : "" )." >$row->name</a>";

	}
?>

OU:

<?php

	$server = "localhost";
	$user = "root";
	$pass = "123mudar";
	$datab = "sistema";

	$con = mysql_connect($server,$user,$pass);

	$db = mysql_select_db($datab);

	$item_id = mysql_escape_string( $_GET['Itemid'] );
	$qry = "SELECT id, name, link FROM #__menu WHERE menutype='topmenu' and parent='0' AND access<='$gid' AND sublevel='0' AND published='1' ORDER BY ordering";
	$database->setQuery($qry);
	$rows = $database->loadObjectList();
	foreach($rows as $row) {
		echo "<a href='$row->link&Itemid=$row->id' ".( $row->id == $item_id ? "class='current'" : "" )." >$row->name</a>";
	}
?>

Não te esqueças de mudar os dados de conexão, o nome da base de dados e da tabela. :D


dreams.each do |dream|

   dream.make_it_happen

end

Share this post


Link to post
Share on other sites
mbtexascity

Que tipo de erro é que dá?

Falta ai a conexão à base de dados.

nao é necessario, uma vez que é usado o comando <?php include'ficheiro.php'; ?>, no qual a pagina fica com acesso á BD.

SONIC_  -> nao era isso que eu cria, nao estou a ver como esse codigo vai transformar uma imagem em hiperligação.

O codigo original funciona bem, mas acontece que por Exemplo se eu tive o nome de item "Entrada" com o link "http://zeka.com", este codigo irá fazer isto

<a href="http://zeka.com">Entrada
</a>

Mas o que eu cria era que o codigo com o nome de item "http://zeka.com/imagem.png" e o link "http://zeka.com", que o codigo fizesse

 <a href='http://zeka.com'  ><img src="http://zeka.com/imagem.png" width="60" height="30" border="0" /></a>

cumps.

Share this post


Link to post
Share on other sites
pedrotuga

chiça... que grande confusão que para aqui vai.

Bastava tomarem um pouco de atenação ao código.

Camarada, atiraste literais para o meio de uma string à bruta sem te preocupares com a quebra dos delimitadores de string, as aspas.

Precisas ou de usar plicas, ou de concatenar várias strings usando o operador de concatenação ( o ponto) ou de escapar as aspas.

Lê esta página

http://se.php.net/manual/pt_BR/language.types.string.php

Alguem se esqueceu de ler o manual  :rtfm:

DICA: um editor com sintax highlight é essencial para este tipo de código

Aconselho qq coisa como o notepad2 ou notepad++

Share this post


Link to post
Share on other sites
mbtexascity

chiça... que grande confusão que para aqui vai.

Bastava tomarem um pouco de atenação ao código.

Camarada, atiraste literais para o meio de uma string à bruta sem te preocupares com a quebra dos delimitadores de string, as aspas.

Precisas ou de usar plicas, ou de concatenar várias strings usando o operador de concatenação ( o ponto) ou de escapar as aspas.

Lê esta página

http://se.php.net/manual/pt_BR/language.types.string.php

Alguem se esqueceu de ler o manual  :rtfm:

DICA: um editor com sintax highlight é essencial para este tipo de código

Aconselho qq coisa como o notepad2 ou notepad++

Boas, obrigado pelo link, vou ler a pagina.

como disse nao precebo nada de php, mas vou ver se consgo resolver o problema.

cumps.

Share this post


Link to post
Share on other sites
joaoqalves

já resolvi o problema, podem fechar o tópico.

cumps.

Não se vai fechar um tópico só porque tu já resolveste o teu problema, visto que pode surgir uma dúvida idêntica (ou até a mesma) a outro utilizador e, nessa altura, é escusado voltar a abrir-se um tópico. O que te sugiro é editares o título do tópico (podes fazê-lo ao editar o teu primeiro post) com a tag [Resolvido] no início. :P


Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!Queres estar na moda? Utiliza a pesquisa e evita criar um tópico desnecessário.

Share this post


Link to post
Share on other sites
mbtexascity

Não se vai fechar um tópico só porque tu já resolveste o teu problema, visto que pode surgir uma dúvida idêntica (ou até a mesma) a outro utilizador e, nessa altura, é escusado voltar a abrir-se um tópico. O que te sugiro é editares o título do tópico (podes fazê-lo ao editar o teu primeiro post) com a tag [Resolvido] no início. :P

a minha intençao nao era fechar a tópico só por ter resolvido o meu problema, mas sim, como nos foruns em que eu frequento tem essa política de fechar os tópicos, pensei que aqui tivessem, sendo assim vou editar o tópico.

cumps.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.