Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 237
Localização: Florianópolis/SC
Contato:

sequencia AUTO INCREMENT nao funciona

22-03-2007 13:47

Olá a todos, vou demonstrar minha tabela (DADOS)

--ID-----NOME-------SEXO------IDADE---
--1------João----------M----------25
--2------Maria---------F-----------20
--4------José----------M----------10
--5------Ana-----------F-----------30
--7------Fatima--------F----------28
...e assim pode ir ate uns mil registros.

Pois bem, tenho um script que faz uma busca pelo codigo

Mas reparem que precisei excluir o ID "3" e "6".

tenho outro codigo que mostra individualmente cada linha da tabela
$qual-id= $_GET['id'];
$sql= mysql_query("SELECT * FROM dados where id=$qual-id");

percebam que nesta ultima requisição, ele busca o ID de um POST de outra pagina, ex.
a pagina chama-se PESSOA.PHP e tem o codigo acima para mostras o resultado,

pessoa.php?id=1
--ID-----NOME-------SEXO------IDADE---
--1------João----------M----------25

pessoa.php?id=2
--ID-----NOME-------SEXO------IDADE---
--2------Maria---------F-----------20

pessoa.php?id=4
--ID-----NOME-------SEXO------IDADE---
--4------José----------M----------10

pois bem... quero inserir um codigo em cada pagina, tipo paginação, para ter um link para a PESSOA anterior e proximo

que tbm seria automatico.. ex.
PAGINA PESSOA
pessoa.php?id=2
--ID-----NOME-------SEXO------IDADE---
--2------Maria---------F-----------20

<< Anterior Proxima>>
>Link a ser coloca na anterior (este link aponta para ID 1)
<a href='pessoa.php?id=$id-1'>ANTERIOR

>Link a ser coloca para proxima (este aponta para ID 3-que nao existe)
<a href='pessoa.php?id=$id+1'>PROXIMA

OK! estão entendendo? ate aqui tudo bem!
Mas ai lembramos que tive que excluir algumas ID, e como o campo é autoincrement ele vai seguinto a sequencia e aumentando um numero depois da ultima coluna e assim vai.
Ai este link daria invalido, pois estaria apontado para um link excluido.

Ufa, enfim, como faço para que este link aponte sempre para o ID sucessor ou antecessor?

Tem como o banco de dados preencher estes ID excluidos?
Obs. tbm exibo o resultado por ordem de cadastro, entao ORDER BY id DESC
ai o ultimo cadastro sempre aparece em primeiro. Se a tabela completasse os ID que estão faltando me resolveria um problema, porem criaria outro.

Se possivel, me ajudem com as duas duvidas. Grato,
Desculpem por me alongar tanto.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17639
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

sequencia AUTO INCREMENT nao funciona

22-03-2007 13:59

Com uma paginação tu resolve o problema do id anterior ou próximo, porque tu vai ordenar os dados por id em ordem crescente ou decrescente, veja em:
viewtopic.php?t=274

quanto a essa questão de já entrar em determinado usuário vou ver uma possibilidade.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 237
Localização: Florianópolis/SC
Contato:

sequencia AUTO INCREMENT nao funciona

22-03-2007 14:07

Ja pensei nisto, ate pensei que tinha como, pois eu queria somente um link de proximo e outro de anterior,

no final deste topico tem exemplo: MENSAGEM ANTERIOR - PROXIMA MENSAGEM
sera que isto foi por paginação? talves ate tenha como ser feito.

Mas creio que existe algum script que verifica qual o valor do proximo campo em uma tabela, neste caso o campo com AUTO INCREMENT
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17639
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

sequencia AUTO INCREMENT nao funciona

22-03-2007 14:11

nesse script de paginação que citei, se eu setar no script para paginar 1 registro por página, e carregar por exemplo o endereço ?pagina=3 ele retorna o 3º registro, isso no caso de estar usando:
SELECT * FROM minhatabela ORDER BY id ASC

ou seja, se tenho:
id nome senha
3 aa 1
1 bb 2
5 cc 3

ele ordena por id retorna o cadastro id "5", seria uma alternativa?
ou seja, usar o paginar para carregar o resultado direto.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 237
Localização: Florianópolis/SC
Contato:

sequencia AUTO INCREMENT nao funciona

22-03-2007 14:16

mas neste caso qdo eu clicasse no link proximo, ele nao estaria enviando os dados pra outra paginação, e sim para minha outra pagina onde exibe as informaçãos, no caso a proxima ou a anterior.

assim cada vez que ele abrir um nova pagina, vai criar uma nova paginação que nunca tera sequencia, pois so quero exibir um resultado.

Obs, este resultado é grande, com codigos php e html com script, vou fazer uns testes pra ver se funciona, a lógica é legal.
Espero que resolva meu problema.
Valeu
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17639
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

sequencia AUTO INCREMENT nao funciona

22-03-2007 14:23

eu testei essa paginação aqui com um bd que tenho, se eu paginar somente por id beleza, só que como eu estou ordenando em ordem crescente e mostrando um resultado por página, significa que a pagina que abrir ( ?pagina=... ) vai retornar o id na mesma posição da página.

Isso pode ser uma idéia, to fazendo vários testes aqui para ver se chego onde você quer, t+
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 237
Localização: Florianópolis/SC
Contato:

sequencia AUTO INCREMENT nao funciona

22-03-2007 14:33

Eu testei o script de paginação, informei minha conexão e os dados da minha tabela, na hora de visualizar funciona,
Mostra o ID, NOME, EMAIL
Total encontrado, e qtos por pagina,
Mas qdo clico no link PROXIMA, nao faz nada
pag-teste.php?pagina=2

Ele tenta enviar pra mesma pagina com codigo pagina=2, mas o script nao utiliza este codigo, ele continua mostrando o mesmo resultado da busca na primeira pagina.

So aconteceu comigo?
ps. acho possivel usa-lo pra resolver o meu problema sim, mas ele tem que direcionar os links de ANTERIOR e PROXIMO para algo como
noticia.php?code=$anterior
noticia.php?code=$proximo

e o anterior tem que ser o registro na tabela anterior a atual. mesma coisa com o proximo, tem que ser o proximo registro da tabela, por ordem de ID.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17639
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

sequencia AUTO INCREMENT nao funciona

22-03-2007 14:34

Quando tu vai mandar o id através do link, tu pega ele de outra consulta, correto?

se sim, teria como ao invés de tu passar o id correto do usuário tu passar um valor que será incrementado, tipo:
tu define um valor qualquer antes de paginar seus usuários ai, tipo:
$valor = 1;
ai, dentro do while que tu mostrar os usuários tu coloca:
$valor++;
// mostragem.php?id=$valor

nisso, se você listar seus usuários ai por ordem crescente e por id, eles terão um valor crescente que irá bater com a paginação.
// pagina=id

entendeu?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 237
Localização: Florianópolis/SC
Contato:

sequencia AUTO INCREMENT nao funciona

22-03-2007 14:49

pensa comigo..
se eu fizer uma busca limitada a anterior e suscessor por ordem desta forma, e exibir o resultado como link?
eu estou limitando a busca na tabela o id anterior e suscessor do que corresponde a pagina atual. :)

$inicio=$pagina-1;
$final=$pagina+1;
/* base do script */
$query=mysql_query("SELECT * FROM $tabela ORDER BY id ASC LIMIT $inicio,$final");
/* início da mostragem de dados */
while($dados=mysql_fetch_array($query)) {
?>

<?php
echo "<tr>";
echo "<td>".$dados['code']."</td>";
echo "<td>".$dados['titulo']."</td>";
echo "<td>".$dados['nick']."</td>";
echo "</tr>";
?>
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17639
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

sequencia AUTO INCREMENT nao funciona

22-03-2007 15:55

tenta esse:

<?php $dbhost="localhost"; /* servidor */ $dbuser=""; /* usuário do banco de dados */ $dbpasswd=""; /* senha do banco de dados */ $dbname=""; /* nome do banco de dados */ /* abaixo abrimos a conexão com os dados acima */ $conexao = @mysql_connect($dbhost, $dbuser, $dbpasswd) or die ("não foi possível a conexão, verifique os dados."); $db = @mysql_select_db($dbname) or die ("não foi possível o acesso ao banco de dados $dbname."); $pag_views = 1; if (!isset($_GET["id"])) { $id = 1; } else { $id = $_GET["id"]; } $mat = $id -1; $inicio = $mat * $pag_views; $sql = "SELECT * FROM minhatabela ORDER BY id ASC"; $query = mysql_query($sql); $limita = "$sql LIMIT $inicio,$pag_views"; $executa = mysql_query($limita); $linhas = mysql_num_rows($query); $paginas = $linhas / $pag_views; $volta = $id -1; $proxima = $id +1; while ($row = mysql_fetch_array($executa)) { echo 'ID: '. $row["id"] .'<br>'; echo 'Nome: '. $row["nome"] .'<br>'; echo 'Sexo: '. $row["sexo"] .'<br>'; echo 'Idade: '. $row["idade"] .'<br>'; } If ($volta>0) echo "<a href=?id=$volta>Anterior</a>"; For ($i = 0 +1; $i <= $paginas; $i++){ $pag = $i; } If ($id<$paginas) echo "<a href=?id=$proxima>Proxima</a>"; ?>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 237
Localização: Florianópolis/SC
Contato:

sequencia AUTO INCREMENT nao funciona

22-03-2007 16:08

Fera, muito obrigado, depois de uma tarde de luta... esta funcionando, valeu pela força.
Tudo de bom pra vc!
0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 237
Localização: Florianópolis/SC
Contato:

sequencia AUTO INCREMENT nao funciona

24-03-2007 12:07

Olá web, tudo blz,
estou trabalhando neste ultimo script, os numeros funcionam, o CODE enviado correponde com o CODE exibido, mas nao acontece qdo clica no link ANTERIOR - PROXIMO, ele nao exibe o CODE correspondente ao URL.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17639
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

sequencia AUTO INCREMENT nao funciona

24-03-2007 14:21

olha bem o código, provavelmente tu tá deixando algum parâmetro incorreto ai, testei várias vezes aqui e está tudo funcionando certo:

MINHA TABELA NO BD ( agenda )

code(int/auto_increment) nome(varchar) email(varchar)
1 aa bb@bb.com
15 a aa@aa.com
5 b bb@bb.com
7 abc abc@abc.com
3 333 333@333.com
4 444 444@444.com
9 999 999@999.com


MEU CÓDIGO DE PAGINAÇÃO

<?php $dbhost="localhost"; /* servidor */ $dbuser="teste"; /* usuário do banco de dados */ $dbpasswd="teste"; /* senha do banco de dados */ $dbname="teste"; /* nome do banco de dados */ /* abaixo abrimos a conexão com os dados acima */ $conexao = @mysql_connect($dbhost, $dbuser, $dbpasswd) or die ("não foi possível a conexão, verifique os dados."); $db = @mysql_select_db($dbname) or die ("não foi possível o acesso ao banco de dados $dbname."); $pag_views = 1; if (!isset($_GET["code"])) { $code = 1; } else { $code = $_GET["code"]; } $mat = $code-1; $inicio = $mat * $pag_views; $sql = "SELECT * FROM agenda ORDER BY code ASC"; $query = mysql_query($sql); $limita = "$sql LIMIT $inicio,$pag_views"; $executa = mysql_query($limita); $linhas = mysql_num_rows($query); $paginas = $linhas / $pag_views; $volta = $code-1; $proxima = $code+1; while ($row = mysql_fetch_array($executa)) { echo 'code: '. $row["code"] .'<br>'; } If ($volta>0) echo "<a href=?code=$volta>Anterior</a>"; For ($i = 0 +1; $i <= $paginas; $i++){ $pag = $i; } If ($code<$paginas) echo "<a href=?code=$proxima>Proxima</a>"; ?>

edite os dados de conexão e nome da tabela, veja se sua tabela tem realmente uma coluna chamada code.
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado