Ir para conteúdo

POWERED BY:

Arquivado

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

Gui Alexander Schweickert

Mostrar apenas os que tem registros no mysql?

Recommended Posts

você aproveitou o seu while que estava do{

}while();

 

Estrutura básica do while

 

While(condição){

 

//executa comandos lalala

 

}//fechou while

 

Isso que faltou.

 

A respeito de mostrar o mês,

depois da lihna $mes = $ln -> mes;

acrescenta: echo $mes;

Apenas para mostrar os valores da variável mes, um simples echo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas você falou pra fechar a query...

assim ta errado entao?

<?php require_once('configdb.php'); ?>
<?php
$sql = "SELECT * FROM eventos";
$query = mysql_query($sql) or die (mysql_error());
?>
<select name="mes">
<?php while($ln = mysql_fetch_object($query));
$mes = $ln -> $mes;
echo $mes;
$meses = array('','janeiro','fevereiro','março','abril','maio','junho','julho','agosto','setembro','outubro','novembro','dezembro');
for($m=1;$m<=12;$m++){
$zero = ($m<10) ? 0 : '';
if(isset($mes) AND $mes == $zero.$m)
echo '<option value="',$zero,$m,'">',$meses[$m],'</option>'; }
//depois fecha o while
?>
</select>

meu banco ta conectado certo, meu painel todo ta nesse banco.. so esse codigo q nao conectou.

uma vez eu coloquei um mysql select db no meu config alguma coisa assim e ele conseguiu achar o banco

 

meu configdb

<?php
$hostname_conection = "localhost"; 
$database_conection = "painel";
$username_conection = "root";
$password_conection = "";
$conection = mysql_pconnect($hostname_conection, $username_conection, $password_conection) or trigger_error(mysql_error(),E_USER_ERROR); 
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você entendeu errado, o que falei sobre o query no while era pra trocar apenas no nome,

porque eu troquei o nome da variável antes, consequentemente trocar esse valor.

 

Dessa forma que está aí, tá errado.

O while não fazendo o loop que criamos pra ele fazer.

Desse jeito ele apenas vai criar um option, talvez até consiga pegar 1 registro, mas não está certo.

Faça como eu falei que verás que vai repetir os options, do jeito que falei não vejo erro algum, mas se aparecer poste aí.

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php require_once('conexao/dados.php'); ?>
<?php
mysql_select_db($database_conection, $conection);
$sql = "SELECT * FROM eventos";
$query = mysql_query($sql) or die (mysql_error());
?>
<select name="mes">
<?php
while($ln = mysql_fetch_object($query)){
$mes = $ln -> $mes;
echo $mes;
$meses = array('','janeiro','fevereiro','março','abril','maio','junho','julho','agosto','setembro','outubro','novembro','dezembro');
for($m=1;$m<=12;$m++){
$zero = ($m<10) ? 0 : '';
if(isset($mes) AND $mes == $zero.$m)
echo '<option value="',$zero,$m,'">',$meses[$m],'</option>'; }
}//depois fecha o while
?>
</select>

 

feito! conectou ao banco e tudo

mas ainda nao aparece nada no select

Compartilhar este post


Link para o post
Compartilhar em outros sites

tira o $ de mes;

 

$mes = $ln -> $mes;//esta assim

//troque para isso
$mes = $ln -> mes;

 

 

Te explicar sobre o mysql_fetch_object, pois de nada adianta eu 'mandar' você usar sendo que não sabe pra que serve.

 

Ele transforma a variável $query(que é a nossa pesquisa) em um objeto e atribui esse valor a variável $ln;

quando eu chamo a variável assim

$ln -> mes;

->(meio para usar/tratar objetos) mes(isso é o campo que ele buscou dentro do banco de dados, da query)

Se eu quisesse acessar outro campo era apenas trocar esse mes para o nome do campo em qual deseja procurar

$idevento = $ln -> idevento;

Vai pegar o id do evento atual, na lihna atual.

Lembrando que o mysql_fetch_object percorre linha por linha dentro do banco de dados, por isso a necessidade do while, pois vai continuar executando enquanto houver registros dentro da tabela procurada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mesma coisa..

while($ln = mysql_fetch_object($query)){
$mes = $ln -> mes;
echo $mes;
$meses = array('','janeiro','fevereiro','março','abril','maio','junho','julho','agosto','setembro','outubro','novembro','dezembro');
for($m=1;$m<=12;$m++){
$zero = ($m<10) ? 0 : '';
if(isset($mes) AND $mes == $zero.$m)
echo '<option value="',$zero,$m,'">',$meses[$m],'</option>'; }
}//depois fecha o while

Compartilhar este post


Link para o post
Compartilhar em outros sites

É complicou.

 

Vamos fazer assim,

junte tudo, faze backup no banco e me passe (se quiser óbvio),

que daí vejo certinho e te passo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pegue o sql do banco, retire os dados se achar necessário, coloque dentro da pasta onde estão os arquivos .php,

zipa tudo (.rar), e coloque em algum servidor de arquivos, ou se desejar e o arquivo for leve me mande pelo email hiago.drigo@hotmail.com

Compartilhar este post


Link para o post
Compartilhar em outros sites

Recebi, vou tratar aqui, já volto.

---

É pequeno erro nosso, muuuuuuuito pequeno, dá até vergonha rsrs

 

substitui ali

$mes = $ln -> mes;

 

para

$mes = $ln -> Mes;

 

Esqueci de verificar isso, ele é case sensitive o fetch_object, tem que ser exatamente como está o nome do campo.

 

Tenta agora laugh.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

muda o select

 

SELECT * FROM eventos GROUP BY mes ORDER BY mes ASC

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tirar do select? O que você quer tirar?

echo '<option value=" '.$zero.$m' ">'.$meses[$m].'</option>';

 

No for executo de 1 a 12, e armazena na variável m

A variável $zero faz o seguinte,

$zero = ($m<10) ? 0 : '';

 

O que estou fazendo, verifico se $m (1....12) é menor do que 10 se for ele recebe 0 de valor, caso for maior ele recebe nada (nulo);

if(isset($mes) AND $mes == $zero.$m)

 

nesse if verifico se existe a variável $mes (que pegamos do banco de dados, que tem valores 01,02,03,12..) e

depois vamos ver se ela é igual a $zero.$m

O que seria esse $zero.$m:

Como vimos antes o $zero vai receber o valor de 0 enquanto o $m for menor do que 10, e $m recebe a posição atual do for.

Vamos dizer que o for está na posição 5;

Então $m = 5

5<10 sim, então $zero recebe 0

$zero = 0;

 

$zero.$m = 05 que quer dizer maio.

 

Dentro do <option>$meses[$m]</option>

A variável $meses é um array,

$meses[$m] = Buscando a posição $m do array meses, que no caso é maio.

 

Não sou muito bom em explicar, mas acho que vale a intenção pinch.gif

Se não entender posso tentar explicar novamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tirar do select? O que você quer tirar?

echo '<option value=" '.$zero.$m' ">'.$meses[$m].'</option>';

 

No for executo de 1 a 12, e armazena na variável m

A variável $zero faz o seguinte,

$zero = ($m<10) ? 0 : '';

 

O que estou fazendo, verifico se $m (1....12) é menor do que 10 se for ele recebe 0 de valor, caso for maior ele recebe nada (nulo);

if(isset($mes) AND $mes == $zero.$m)

 

nesse if verifico se existe a variável $mes (que pegamos do banco de dados, que tem valores 01,02,03,12..) e

depois vamos ver se ela é igual a $zero.$m

O que seria esse $zero.$m:

Como vimos antes o $zero vai receber o valor de 0 enquanto o $m for menor do que 10, e $m recebe a posição atual do for.

Vamos dizer que o for está na posição 5;

Então $m = 5

5<10 sim, então $zero recebe 0

$zero = 0;

 

$zero.$m = 05 que quer dizer maio.

 

Dentro do <option>$meses[$m]</option>

A variável $meses é um array,

$meses[$m] = Buscando a posição $m do array meses, que no caso é maio.

 

Não sou muito bom em explicar, mas acho que vale a intenção pinch.gif

Se não entender posso tentar explicar novamente.

 

saquei :thumbsup: valeu, consegui adaptar nas outras seçoes tambem

 

o select que eu queria tirar é o <select> <option> e deixar so texto

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só tirar a parte html, pode apagar <select></select>

 

e no echo '<option......</option>';

tira tudo isso que vai mostrar;

só deixa

echo $meses[$m].'<br />';//<br /> pular uma linha (enter)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tira o $m que deve estar antes de $meses[$m];

 

Pra onde iria esse link?

Compartilhar este post


Link para o post
Compartilhar em outros sites

pra linkar as paginas pra ver os dados

 

ex:

<a href="ver/01">ver eventos janeiro</a>

 

entao teria que gerar a id tambem ali no link

 

tem dados cadastrados em janeiro, fevereiro e dezembro no caso

ai:

<a href="ver/01">ver eventos janeiro</a>

<a href="ver/02">ver eventos fevereiro</a>

<a href="ver/12">ver eventos dezembro</a>

 

no agenda.php tem isso

		<?php do { ?> 
      <a href="ver/<?php echo $row_mes['Mes']; ?>"><?php echo $row_mes['Desc']; ?></a>
       <?php } while ($row_mes = mysql_fetch_assoc($mes)); ?>

 

entao ali gera a id do mes

isso tava no banco de dados mas posso fazer manualmente

<a href="ver/<?php echo $row_mes['Mes']; ?>"><?php echo $row_mes['Desc']; ?></a>

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.