Jump to content


Photo

Ta Dando Pau No Loop


  • Faça o login para participar
2 replies to this topic

#1 kbalera

kbalera

    Normal

  • Usuários
  • 108 posts
  • Sexo:Não informado
  • Localidade:<? Ipatinga?>
  • Interesses:<? print "Php - WebDesigner"; ?>

Posted 16/02/2004, 17:34

que cada foto é cadastrado no bd
ai eu fiz um sistema de slide show
so que tem vez q eu tenho q apagar alguma foto
ai no slide aparece a foto
pq as fotos sao sequenciais

tipo
0001, 0002, 0003 e etc

e tipo ai se eu apagar a foto
0003
qnd tiver na foto 0002 aproxima vai ser 0004

ai eu fiz esse script aki


-------------------------------------------->

while(1) {

$select_ft= "select*from foto where festa = $festa and foto = $foto";
$acao_ft = mysql_db_query("$database","$select_ft",$conect);
$num_ft = mysql_num_rows($acao_ft);

if($num_ft==0){
$x=0;
$foto = $foto+1;
continue;
}else{
$x=1;
break;
}
}
<-------------------------------------------------


que seleciona no BD a foto e se o $num_ft==0 for igual a 0 ele repete o select
so q dando um incremento na $foto

e se for igual a 1 ele para

so que esse loop tava ocupando 28% do processamento do servidor e se mts pessoas vice as fotos
ele derrubava o servidor

intao eu to kerendo saber uma forma melhor de fazer isso
pois eu to kerendo fazer que tipo

se nao tiver registrado no banco de dados ou nao tiver a foto no servidor
a $foto recebe um incremento

intao tipo se eu to na foto 0003 e a proxima foto for 0010
ai ela pula da 0003 pra a 0010

ai galera quem puder me ajudar
<?php
print "nick = Kbalera";
print "email = junior@rockiando.com.br";
print "cidade = IPATINGA/MG";
print "A arte de criar, é bem maior de que falar que criou";

?>

#2 MarviN*

MarviN*

    nw . newton web

  • Usuários
  • 780 posts
  • Sexo:Não informado
  • Localidade:Brasília - DF

Posted 16/02/2004, 17:50

Cara.. achei tudo meio confuso.. mas por q vc não coloca a condição pra parar o while dentro do próprio while.


Explica melhor como está o seu banco de dados.. como estão os campos e etc.. só com essas informações que você deu fica complicado! ;)
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
[ Blog Desenvolvimento Web: http://www.newtonwagner.net/blog ]
[ Diário da Selva: http://www.diariodaselva.com/ ]

[ "Não existe um caminho para a paz; a paz é o caminho." Mahatma Gandhi ]

#3 kbalera

kbalera

    Normal

  • Usuários
  • 108 posts
  • Sexo:Não informado
  • Localidade:&lt;? Ipatinga?&gt;
  • Interesses:&lt;? print &quot;Php - WebDesigner&quot;; ?&gt;

Posted 17/02/2004, 08:18

Ow eu so gravo a festa q foto eh e a foto

tipo

ID | FESTA | FOTO |
1 | 00001 | 0001 |
2 | 00001 | 0002 |
3 | 00001 | 0003 |
4 | 00001 | 0004 |
5 | 00001 | 0005 |
6 | 00002 | 0001 |
7 | 00002 | 0002 |
8 | 00002 | 0003 |

intao nessa tabela ai eu tenho 2 festas e algumas fotos
intao qnd o cara escolha a festa eu mando o codigo da festa
ai vai mostrar as fotos

ai eu faço um select*from foto where festa="00001";

ID | FESTA | FOTO |
1 | 00001 | 0001 |
2 | 00001 | 0002 |
3 | 00001 | 0003 |
4 | 00001 | 0004 |
5 | 00001 | 0005 |

ai selecionou as fotos

eu vou ter links para cada foto
tipo

FOTO1 FOTO2 FOTO3 FOTO4 FOTO5

ai qnd clica vc vai ver somente a foto clicada

ai blz

so que eu fiz uma vizualização em slides para passar automatico
ai se eu apagar alguma foto no BD

ID | FESTA | FOTO |
1 | 00001 | 0001 |
3 | 00001 | 0003 |
4 | 00001 | 0004 |
5 | 00001 | 0005 |

na hora q fizer akele select la em cima funciona, mas na hora q vou fazer o slide nao funfa nao
pq eu fiz o seguinte

depois que eu clico para passar em slide eu faco um select assim

select*from foto where festa="00001" and foto="$foto"
essa variavel foto ela eh um incremente tipo
a atual eh igual a
$foto=0001
intao a proximaeh 0002

intao se ele fez um select com a 0001 ele vai fazer um select com a 0002
so q se eu apaguei a 0002 no bd vai aparecer aimagem do mesmo jeito

intao eu fiz um laco de condicoes
eu faço o select

select*from foto where festa="00001" and foto="$foto"

ai

depois faço um mysql_num_rows para vers qnts registro pegou
se for igual a zero eu faco a variavel foto ser a proxima
so q eu tenho q fazer isso dentro de um laco tipo
enquanto a variavel q tenho mysql_num_rows for igual a zero vai incrementando ai se nao for ai ele para e exibe a foto
ai eu fiz o eskema a baixo

while(1) {

$select_ft= "select*from foto where festa ="00001" and foto = $foto";
$acao_ft = mysql_db_query("$database","$select_ft",$conect);
$num_ft = mysql_num_rows($acao_ft);

if($num_ft==0){
$x=0;
$foto = $foto+1;
continue;
}else{
$x=1;
break;
}
}



funcionou so que ai eu fui ver o servidor da ficando carregado d+ por isso e tem hora q ate cai dependendo do nº de acessos, ai eu fui ver o laco nao ta parando tipo eu fui ver la tinha uma linha executada a seguinte

select*from foto where festa="00001" and foto="401548726";

intao quer dizer que o laco nao paro ai eu tava precisando o seguinte

alguma coisa tipo que fazia um select no bd apenas das existente
ow uma condicoes para o while para que eu poca fazer isso sem carregar

qualquer duvida eu tento explicar mais detalhadamente.

abracos
<?php
print "nick = Kbalera";
print "email = junior@rockiando.com.br";
print "cidade = IPATINGA/MG";
print "A arte de criar, é bem maior de que falar que criou";

?>




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq