Criando uma Galeria de fotos via PHP e SQL

Olá pessoal…

vou postar uma programação que estou precisando de ajuda.

Estou criando uma galeria de fotos para um amigo, peguei o site já programado, sem documentação e uma programação de qualidade ruim… basicamente as variáveis e a estrutura não possuem comentários ou não levam a nada, pensei em desistir mas acho que devo aprender com este sistema pois vai que um dia pego outro desse jeito né!!!

Bom a programação é feita por constutores, o index puxa o css e o javascript básico e seleciona o conteúdo conforme os clique nos links.
como TUDO é baseado no BD (confuso pra caramba pois a programação aponta para um e pega outro pois tem em algum lugar a indicação e etc… me cheira "remendo").

criei duas tabelas "listaGaleria" e "galeria"
listaGaleria vai ficar a "lista das galerias" claro
galeria vai ficar as imagens da galeria e as outras posteriormente, por hora vamos só a galeria.

Campos listaGaleria
id_galeria[int key AI] / nome [varchar] / qtd_img [int] / publicado [boolean] / endereco [varchar]

Campos galeria
id_img[int key AI] / id_galeria[int key] / foto [varchar] / credito [varchar null] / legenda [varchar null] / dt_foto [datatime null]

Para criar a galeria é preciso programar os seguintes fatores
[list]usar links para chamar as fotos ($_GET[])[/list]
[list]Criar links pela lista de galerias (mostrar array dos nomes da galeria e acrescentar o id_galeria no link)[/list]
[list]Criar links de preview em lista horizontal (das fotos) para o usuário clicar e a imagem passar a área da foto[/list]

ai vai a codificação que estou usando vou tratar de cada item para passar ao próximo
busca da lista de galeria

<?php

include 'connectionBD.php';  //conexão com o banco de dados

$queryLista = 'SELECT * FROM listaGaleria WHERE publicado="s" ORDER BY id';  //busca quais galerias estão disponíveis em publicado
$resultLista = mysql_query($queryLista) or die(mysql_error());  // resultado
$listaGaleria = mysql_fetch_array($resultLista);  // criação do array com a lista

?>

<div id="">
  <ul>
    &lt;?php for($i=0; $i &lt; $resultLista; $i++) { ?&gt;
              <li><a link>&lt;?php echo $listaGaleria[0]; ?&gt;&gt; &lt;?php echo $listaGaleria[1]; ?&gt; </a></li>
    &lt;?php } ?&gt;
  </ul>
&lt;/div&gt;

o problema é que não imprime todos os resultados apenas a primeira linha

Opa, beleza cara ?

o erro basico ta aqui aparentemente:

<?php for($i=0; $i < sizeof($resultLista); $i++) { ?>  
               <li><a link><?php echo $listaGaleria[$i]; ?>> <?php echo $listaGaleria[$i]; ?> </a></li>  
<?php } ?>  

sizeof() ou count(): pega tamanho do array, eu particularmente sempre uso sizeof porque é mais fácil de ler. Se possivel, faça isso OOP/DAO que você vai ter muito menos dor de cabeça

outra detalhe importante, quando você faz um mysql_fetch_array, você ta mandando ele montar o resultSet em forma de array, portando, para recuperar valores, você tera que usar:

$nomeDoSeuResultSet[$numeroDaLinha]['nomeDoCampoDaTabela']

portanto, arrume seu codigo ali em cima tb … e toma cuidado com sql inject, que é a coisa fácil de se fazer no php por quase não ter segurança alguma :stuck_out_tongue:

impressões diretas de variaveis você pode fazer:

<?=$minhaVariavel?>

Solonbra, a função mysql_fetch_array, retorna apenas uma linha da query que você fez, colocando as colunas da linha num array.
Para pegar todas as linhas, o correto seria você fazer assim:

&lt;?php

include 'connectionBD.php';  //conexão com o banco de dados

$queryLista = 'SELECT * FROM listaGaleria WHERE publicado=&quot;s&quot; ORDER BY id';  //busca quais galerias estão disponíveis em publicado
$resultLista = mysql_query($queryLista) or die(mysql_error());  // resultado

?&gt;

&lt;div id=""&gt;
  <ul>
    &lt;?php while($listaGaleria = mysql_fetch_array($resultLista)) { ?&gt;
              <li><a link>&lt;?php echo $listaGaleria[0]; ?&gt;&gt; &lt;?php echo $listaGaleria[1]; ?&gt; </a></li>
    &lt;?php } ?&gt;
  </ul>
&lt;/div&gt;

Uma breve explicação: a função mysql_fetch_array() sempre retornará a próxima linha do resultado da query, quando não tiver mais linhas ele retorna false, saindo do while.

bom, usa também PDO ao invés das funções nativas para bancos únicos do php, pois é fácil adaptar outros bancos de dadso

Cara, isso devia ser básico, graças a Deus tão prometendo retirar na versão 6 do PHP todo o suporte à essas bibliotecas para que se use só PDO.
Pior que CMS’s como Wordpress e Joomla, que são muito utilizados, ainda vão estar presos a essas implementações.

Cara, isso devia ser básico, graças a Deus tão prometendo retirar na versão 6 do PHP todo o suporte à essas bibliotecas para que se use só PDO.
Pior que CMS’s como Wordpress e Joomla, que são muito utilizados, ainda vão estar presos a essas implementações.[/quote]

realmente, o básico mesmo, pois é muito fácil usar o PDO, e melhor, mais portável, fácil de implementar um factory nas conexões, entre outros…