Ir para conteúdo

POWERED BY:

Arquivado

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

Edson L. Zimmermann

[Resolvido] where e loop

Recommended Posts

Bom dia,

 

Estou começando com php então, minhas dúvidas são simples para vocês com certeza, tentei achar algo no site mais o que achei não entendi então minhas perguntas:

 

1)Tenho uma tabela com dois campos:

Um se chama not_publicar (INT) se for 1 aparece na tela se for 2 não;

o outro se chama not_posicao (INT) se for 1 fica em destaque se for 2 não;

 

a sql que eu imagina era

SELECT * FROM NOTITIAS WHERE NOT_POSICAO = 1 AND NOT_PUBLICAR = 1 ORDER BY NOT_ID DESC;

 

Mais retorna o seguinte erro:

 

Você tem um erro de sintaxe no seu SQL próximo a 'not_publicar=1 order by not_id desc limit 4' na linha 1

 

Minha segunda pergunta é:

 

No asp pra dar um loop eu usava:

<%while not listar.eof%>

Aqui no meio o que iria repetir

<%listar.movenext

wend%>

 

No php pelo que li é algo do tipo:

 

<? while ($row = mysql_fetch_array($resultado2)) { ?>

<table width="100%" border="0" cellpadding="0" cellspacing="0">

<!--DWLayoutTable-->

<tr>

<td width="253" height="19" valign="top" class="tema"><?=$row["not_tema"]?></td>

</tr>

<tr>

<td height="18" valign="top"><a href="not_ler.asp?id=<?=$row["not_id"]?>"><?=$listar2["not_titulo"]?></a></td>

</tr>

<tr>

<td height="22"></td>

</tr>

</table>

<?php mysql_close($query2);

} ?>

 

Seria isso?

 

Grato, e peço desculpas aos moderadores por uma dúvida tão simples, mais é complicado mudar de linguagem...

 

Grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

1) no select, acho que o nome da tabela está errado: NOTITIAS => NOTICIAS

 

2) O loop seria assim mesmo.

 

Não precisa pedir desculpas cara, não há nada de errado em ter dúvidas :)

 

Espero ter ajudado..

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tudo bem:

 

Sobre o erro: Verifique o nome das tabelas, os nomes são case sensitive.

 

O Loop eu faço da seguinte maneira:

 

$resultado = mysql_query("comandos sql");

$list_resultado = mysql_fetch_assoc($resultado);

 

 

do {

 

... comandos;

 

} while ($list_resultado = mysql_fetch_assoc($resultado));

 

 

tenta aí qualquer coisa posta aí!! grande abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

1) no select, acho que o nome da tabela está errado: NOTITIAS => NOTICIAS

 

2) O loop seria assim mesmo.

 

Não precisa pedir desculpas cara, não há nada de errado em ter dúvidas :)

 

Espero ter ajudado..

[]´s

Caro amigo, desculpe chequei o códido e está escrito certo...NOTICIAS aqui no post que eu coloquei errado...então ainda não sei onde está o erro...

 

Grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

essa é, mesmo, a consulta que utilizou? Ela não parece estar errada.

 

OBS: Procure usar as tags completas: "<?php" em vez de "<?" e "<?php echo $var; ?>" em vez de "<?=$var?>"

Ok Beraldo, obrigado pela resposta, então devo chamar a variável sempre com echo na frente.

 

grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, parece que algum campo não existe ou que o formato esteja diferente (se for VARCHAR precisa de aspa simples).

 

Aconselho que você faça a consulta diretamente no banco (não pelo código php), e vá por tenttivas:

 

1) SELECT * FROM NOTICIAS

2) SELECT * FROM NOTICIAS WHERE NOT_POSICAO = 1

3) SELECT * FROM NOTICIAS WHERE NOT_POSICAO = 1 AND NOT_PUBLICAR = 1

4) SELECT * FROM NOTICIAS WHERE NOT_POSICAO = 1 AND NOT_PUBLICAR = 1 ORDER BY NOT_ID DESC

 

Assim você acha o erro por tentativas......

Apenas lembrando que para uma melhor performance, o correto não é utilizar "*", e sim selecionar apenas os campos que você utilizará.

 

Se não conseguir, poste novamente.

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tudo bem:

 

Sobre o erro: Verifique o nome das tabelas, os nomes são case sensitive.

 

O Loop eu faço da seguinte maneira:

 

$resultado = mysql_query("comandos sql");

$list_resultado = mysql_fetch_assoc($resultado);

 

 

do {

 

... comandos;

 

} while ($list_resultado = mysql_fetch_assoc($resultado));

 

 

tenta aí qualquer coisa posta aí!! grande abraço!

Ok os nomes estão corretos agora deu o seguinte erro:

 

Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in /home/japa/www/dois/centro.php on line 67

 

nessa linha tem o seguinte:

 

<?php mysql_close($query2);

} ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vlw...brigado...

 

Seguinte, agora os erros sumiram, mais não aparecem os títulos na tela, vou colocar o código todo pra vcs verem:

 

<?php

include ("conex.php");

 

$query = ("select * from noticias where not_posicao = 1 and not_publicar = 1 order by not_id desc");

$resultado = mysql_query($query)

or die(mysql_error());

 

$query2 = "select * from noticias where not_posicao=2 and not_publicar=1 order by not_id desc limit 4";

$resultado2 = mysql_query($query2)

or die(mysql_error());

 

$list_resultado2 = mysql_fetch_assoc($resultado2);

?>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>Untitled Document</title>

<style type="text/css">

<!--

.tema {

font-family: Arial, Helvetica, sans-serif;

font-size: 12px;

font-weight: bold;

color: #FF0000;

text-decoration: underline;

}

-->

</style>

</head>

 

<body>

 

<table width="490" border="0" cellpadding="0" cellspacing="0">

<!--DWLayoutTable-->

<tr>

<td width="237" height="279" valign="top">

<table width="100%" border="0" cellpadding="0" cellspacing="0">

<!--DWLayoutTable-->

<tr>

<td width="237" height="242" align="center" valign="top"><img src="<?php $resultado["not_foto"] ?>" width="210"></td>

</tr>

<tr>

<td height="19" valign="top" class="tema"><?php echo $resultado['not_tema'] ?></td>

</tr>

<tr>

<td height="18" valign="top"><?php echo $resultado["not_titulo"] ?></td>

</tr>

</table></td>

<td width="253" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">

<!--DWLayoutTable-->

<tr>

<td width="253" height="77" valign="top">

<?php while ($list_resultado2 = mysql_fetch_assoc($resultado2));{

?>

<table width="100%" border="0" cellpadding="0" cellspacing="0">

<!--DWLayoutTable-->

<tr>

<td width="253" height="19" valign="top" class="tema"><?=$row["not_tema"]?></td>

</tr>

<tr>

<td height="18" valign="top"><a href="not_ler.asp?id=<?=$row["not_id"]?>"><?=$listar2["not_titulo"]?></a></td>

</tr>

<tr>

<td height="22"></td>

</tr>

</table>

<?php } ?> </td>

</tr>

<tr>

<td height="202"> </td>

</tr>

 

</table></td>

</tr>

</table>

</body>

</html>

Com certeza to fazendo algo errado...kkk

Muito obrigado a todos por enquanto...

Compartilhar este post


Link para o post
Compartilhar em outros sites

você está utilizando $row["not_id"] e $listar2["not_titulo"]. Pelo que parece, o correto seria b]$list_resultado2["not_id"][/b] e $list_resultado2["not_titulo"].

O $list_resultado2 é o array com os dados obtidos na consulta ("while ($list_resultado2 = mysql_fetch_assoc($resultado2))").

Compartilhar este post


Link para o post
Compartilhar em outros sites

você está utilizando $row["not_id"] e $listar2["not_titulo"]. Pelo que parece, o correto seria b]$list_resultado2["not_id"][/b] e $list_resultado2["not_titulo"].

O $list_resultado2 é o array com os dados obtidos na consulta ("while ($list_resultado2 = mysql_fetch_assoc($resultado2))").

você está coberto de razão, troquei o que você falou mais continua aparecendo tudo em branco...

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.