• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

mbtexascity

[Resolvido] PHP+Mysql erro, ajuda!

9 mensagens neste tópico

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Que tipo de erro é que dá?

Falta ai a conexão à base de dados.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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++

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora