Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

lsteffler

[Resolvido] Problemas com Querystring

Recommended Posts

Boa Tarde!

 

Utilizado as dicas deste tuto: http://forum.imasters.com.br/index.php?showtopic=203110 funcionou tdo direitinho exceto algumas coisas a mais que tenho no meu site, vou explicar.

 

1º Usei CSS ao inves de tabelas para a organização do layout da pag, com uso de DIVs, até aí td bem funciou como esperado.

 

Quando acesso qualquer link do menu, beleza, ele abre no centro certinho, porém, esta pagina que abre no centro tem links que devem abrir tb no centro (no lugar dela) que sao notícias do site, e este que nao está funcionando....

 

O link que tenho na página "puxa" a noticia do BD e esta é para abrir no mesmo local mas nao ta abrindo nada:

<?php
@ini_set('display_errors', '1');
error_reporting(E_ALL);

mysql_connect("****", "****", "****");
mysql_select_db("escola4_banco");
$resultado = mysql_query("select * from noticias order by id_noticias desc LIMIT 10");
mysql_close();
?>
  <table>
  <?php
while($l = mysql_fetch_array($resultado)) {
	$data   = $l["data"];
	$titulo = $l["titulo"];
	$id		= $l["id_noticias"];
	
	echo"
  <tr>
	<td>- $data - </td>
	<td><a href='noticias.php?id=$id'>$titulo</a></td>
</tr>";
}  
?>

ja tentei de varias formas mudando o link para:

 

<td><a href=?secao='noticias.php?id=$id'>$titulo</a></td>

<td><a href='?secao=noticias?id=$id'>$titulo</a></td>

...mas nenhum jeito esta dando certo, alguem pode me ajudar a solucionar este probleminha?

 

Muito Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Façamos assim:

 

- Digamos que tu tenha uma página que é a index.php, onde tem uma DIV pra abertura das páginas;

 

- Digamos que tem vários links nesta index, ex.: <a href=?sessao=noticias>Notícias</a>;

 

- Clicando em Notícias, abre a página de Notícias com seu conteúdo e talvez com links, correto?

 

- Digamos que tu queiras continuar seguindo este caminho, ou seja, clicar em algum link na página de notícias e usar alguma variável (id, nome etc) da notícia pra página seguinte;

 

- Ficaria, mais ou menos, assim: ?sessao=noticias&id=333, ou seja, este id=333 é o que tu estará mandando pra outra página;

 

- Nesta outra página tu simplesmente vai fazer uma seleção na tabela com a cláusula WHERE id = $_GET['id'] pra pegar só a notícia com id=333;

 

Espero te ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rogerss_7 muitíssimo obrigado!

 

Eu havia criado outro tópico anteriormente onde você me ajudou nessa questao do link, e ficou td ok, porém agora que estou montando a pagina e usei o querystring para abrir as paginas sempre no meio me depadrei com este problema, os links do menu abrem no centro, mas os links do centro nao abrem nada...

 

Bom, vou postar os códigos referentes a esta parte:

 

principal.php (que abre no centro da pag)

<?php
@ini_set('display_errors', '1');
error_reporting(E_ALL);

mysql_connect("mysql04.tecla.com.br", "escola4_julho", "4djulho");
mysql_select_db("escola4_banco");
$resultado = mysql_query("select * from noticias order by id_noticias desc LIMIT 10");
mysql_close();
?>
  <table>
  <?php
while($l = mysql_fetch_array($resultado)) {
	$data   = $l["data"];
	$titulo = $l["titulo"];
	$id		= $l["id_noticias"];
	
	echo"
  <tr>
	<td>- $data - </td>
	<td><a href='?secao=noticias&?id=$id'>$titulo</a></td>
</tr>";
}  
?>   
  </table>

Como pode ver, modifiquei o link conforme sugestão sua, agora ele abre uma pagina no centro, porém com este erro:

Notice: Undefined index: id in /hsphere/local/home/escola4dej/escola4dejulho.com.br/noticias.php on line 20

 

A linha 20 é esta: $resultado = mysql_query("select * from noticias WHERE id_noticias='$_GET[id]'");

 

noticias.php

<?php
	@ini_set('display_errors', '1');
	error_reporting(E_ALL);
	
	mysql_connect("mysql04.tecla.com.br", "escola4_julho", "4djulho");
	mysql_select_db("escola4_banco");
	$resultado = mysql_query("select * from noticias WHERE id_noticias='$_GET[id]'");
	mysql_close();
	?>
	  <table>
	  <?php
	while($l = mysql_fetch_array($resultado)) {
		$data   = $l["data"];
		$titulo = $l["titulo"];
		$materia= $l["materia"];
		$id		= $l["id_noticias"];
		
		echo"
		<tr>
		<td>- $data - </td>
		</tr>
		<tr>
		<td>$titulo</td>
		</tr>
		<tr>
		<td>$materia</td>
	</tr>";
	}  
	?>   
	  </table>

Antes deste querystring funcionava certinho, clicava no link e ele abria a pagina noticias (numa nova pag claro) exibindo a noticia sem erros.

 

Dá uma olhada aew... acho q sou meio enrolado, espero que tenha entendido, hehehe

caso queira ver o site pra ter uma ideia melhor: www.escola4dejulho.com.br

Compartilhar este post


Link para o post
Compartilhar em outros sites

Reformulei o principal, ok?

<?php
ini_set('display_errors', 1); // nunca coloca o arroba, deixa mostrar seus erros
error_reporting(E_ALL);

/* coloca esta conexão em um arquivo e puxa por include, ok?

################################################################################
###############

$host		= 'coloca_aqui';
$usuario	= 'coloca_aqui';
$senha		= 'coloca_aqui';
$banco		= 'coloca_aqui';
$conecta	= mysql_connect ($host,$usuario,$senha) or die ('Não foi possível conectar-se ao servidor');
			  mysql_select_db($banco,$conecta) or die ('Não foi possível selecionar o banco');

################################################################################
###############

*/

include 'conexao.php';

$resultado = mysql_query('select * from noticias order by id_noticias desc LIMIT 10');
mysql_close();

print '<table>';

while($i = mysql_fetch_array($resultado)) {

print	"
		<tr>
			<td> - $i[data] - </td>
			<td><a href='?secao=noticias&?id=$i[id]'>$i[titulo]</a></td>
		</tr>
		";
} 

print '</table>';
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

noticias.php

<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);

include 'conexao.php';

$resultado = mysql_query("select * from noticias WHERE id='$_GET[id]'"); // não é id_noticias e sim é a ID que tu está passando no link, correto?

mysql_close();

while($i = mysql_fetch_array($resultado)) {

print "
		<table>
			<tr>
				<td>$i[data]</td>
			</tr>

			<tr>
				<td>$i[titulo]</td>
			</tr>

			<tr>
				<td>$i[materia]</td>
			</tr>
		</table>
	";
}  
?>

Acho que é isso que tu está querendo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao sei dessa linha 32, nao ta dizendo de que arquivo é...

se for do principal.php é essa q você citou acima:

 

<a href='?secao=noticias&id=$i[id]'>$i[titulo]</a>

fiz a alteração mas o erro persiste

Compartilhar este post


Link para o post
Compartilhar em outros sites

Luciano, tu pode notar que tu tem um link assim:

 

http://www.escola4dejulho.com.br/?secao=noticias&id=

 

Ou seja, ou o script não está puxando os dados do fetch ou tem alguma aspas, apóstrofos erradas.

 

Tu tem certeza que existe isso: $i[id], ou seja, uma existe o nome id na tabela, não é outro nome como $i[id_noticias];?

 

Aqui também WHERE id='$_GET[id_noticia]'

Compartilhar este post


Link para o post
Compartilhar em outros sites

kra, realmente na tabela o campo é id_tabela... porém antes do query funcionava assim comente como id

 

mudei o link para:

<a href='?&secao=noticias&id=$i[id_noticias]'>$i[titulo]</a>

e o erro da pagina principal sumiu, porem ao clicar nele abre a pagina no centro com outro erro:

 

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /hsphere/local/home/escola4dej/escola4dejulho.com.br/noticias.php on line 11

 

linha 11:

while($i = mysql_fetch_array($resultado)) {

consegui

Compartilhar este post


Link para o post
Compartilhar em outros sites

Apenas alterei no proprio noticias.php

$resultado = mysql_query("select * from noticias WHERE id_noticias='$_GET[id]'");

antes esta WHERE id=.....

 

ufa....

 

Vlw rogerss_7 xD Brigadão pelo tempo disperdiçado com meu problema!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.