• Nenhum resultado encontrado

Loop através dos dados com while

No documento Use a cabeca php.pdf (páginas 170-173)

Aplicando um loop com w h ile para os dados do email de Elmer, acessarmos os dados, um a linha de cada vez, sem duplicar nenhum código. Nós sabemos que m y s q l i _ f e t c h _ a r r a y {) é capaz de tomar um a linha da tabela e colocar os valores das respectivas colunas no array $row, mas a função, sozinha, não passa através de todos os nossos dados — ela armazena a prim eira linha e então para. Um loop w h ile pode chamar m y s q l i _ f e t c h _ a r r a y {) para atravessar todas as linhas dados do resultado, um a de cada vez, até chegar ao final. while (p

A to*diçao do loof to» víVile e o valor ^ retornado pela -funça©

»v>ys«^!i_-fettb_arrayO; «\ue t interpretado domo trv»e, se houver dados disponíveis, ou -faUe, se os dados tiverem acabado- A a d ã o do loop C executada wnê vez. a cada Geração. A aça© do loopj^onsiste de uma instrutao etbo ey*e junta os dados da linha, doUanáo uma quebra de tmba ao Vmal

primeira passada do loop, o array fro*/ armazenara a primeira linka da tabela e m a iljis t $row eioail— •list

/o°Ps.

Na .'seaunda passada do loop, o array frow armazenara a segunda linhâ da tabela em aiM ist- esta vendo o padrao?

A instrução edbo dentro âo

loop while e *tra i os dados do array frow e cx.*b« o dontcwdo formatado tomo HTML. + ' 1 + v

Q

■4^ <®r "y Uma <\ueWa ÜTML- dolota tada Whs de dados em urr>a VmKa prepria pá^ftâ results™*- ' < b r

$row[1first_name'] $row [' last__name1 ]

$rowt'email[]

t

A dhave usada para aícssar o elemento do array deve te r o mesmo home <\ue uma dolunâ-

0 loop wfcile

p e r p a s s a 9 s d a d o s datakela, lfnta por linta. Quandp nap iíPuVeí mais llnfcas de dadps,

ele Çlnallza a

c o n s u l t a .

Julian Oates ; julian@breakneckpizza.com Kevin Jones : jones@sirauduck.com

Amanda Sanchez : sunshine@breakneckpiz2a.cam

Bo Wallace : bo@bOttOmsup.com

Amber McCarthy : amber@breakneckpizza.com C o m a e Hurst : churst@boards-r-us.com Joyce Harper : jcyceharper@breakneckpizza.com Stephen Meyer : meyers@leapinlimos.com Martin Wilson : roartybaby@objectville.net Walt Perala : walt@mightyguraball.net

Shannon Munyon : craftsmanSbreakneekpiaza.com Joe Milano : joe_m@starbuzzcoffee.eom

Ka secunda passada do loop, as instrudoes edho e*ibem uma outra se«\uendia de te *te , mas dcsta vez. sac usados os dados da

secunda línKa da tabeia

$row[’first_name'] $row['last_name1]

$row[’email'3

Na verdade, nao se usa o smal de mais para ju n ta r duas strings — usa—se o operador ponto-

A dada passada do loop, os valores armazenados no array frow se modi-fidam para refletir a linHa atual. Osnomes das doiu*as sao usãdospara se adessar os valores do array-

não existem perguntas idiotas sobre whiíeQ

nqo existem

f e r g u n t a s i d i o t a s £ I Como exatamente o loop while sabe que deve

continuar olhando? Quer dizer, o loop while é controlado por uma condição verdadeiro/falso, e

mysqli_f etch_array () retoma algum tipo de ID do recurso, que é armazenado em $row... Isso certamente não se parece com uma condição de teste

verdadeiro/falso.

K : Bem observado. Ocorre que o PHP é bem liberal no

que diz respeito ao modo como ele interpreta a condição “verdadeira”. Resumindo, qualquer valor que não seja zero

( O ) o u f a ls o é considerado como verdadeiro, em uma condição de teste. Assim, quando a função m y s q l i _ f e t c h _ a r r a y () retoma uma linha de dados, o array $ ro w é interpretado como verdadeiro, uma vez que não está definido como 0 nem f a l s o . E, uma vez que a condição é verdadeira, o loop segue em frente. O interessante é o que acontece quando não há mais dados disponíveis - a função m y s q l i _ f e t c h _ _ a r r a y () retoma f a l s o , o que encerra o loop.

Então eu posso controlar um loop while com qualquer tipo de dados, e não apenas valores

verdadeiro ou falso?

K : Correto. Mas tenha em mente que, no fim das

contas, o loop while está interpretando os dados como

verdadeiro ou falso. Assim, a coisa mais importante a se entender é o que constitui verdadeiro

ou f a 1 so no que diz respeito à interpretação de outros tipos de dados. E a resposta simples é que qualquer coisa diferente de Ooufalsoé sempre interpretada como

verdadeiro.

" P i O que acontece com o loop while se nenhum dado for retomado pela função my sql i_f e tch_ar r ay ( ) ?

Se a consulta não resultar em quaisquer dados, então a função mysqli_fetch_array () retoma

falso. E issofazoloop while nunca chegar ao código da ação, nem mesmo uma vez.

?

Então é possível ter um loop que nunca faz repetições?

H : É, sim. Também é possível ter um loop que nunca termina. Considere este loop while:

while (true) {

Isto é conhecido como loop infinito, porque a condição de teste nunca faz o loop terminar. Loops infinitos representam algo muito ruim.

PONTOS DE BALA Um banco de dados é um Container

para armazenar dados de uma forma altamente estruturada.

As tabelas armazenam dados em um padrão de colunas e linhas dentro de um banco de dados.

O comando SQL create DATABASE

é usado para que seja criado um novo banco de dados.

O comando SQL c r e a t e t a b l e cria

uma tabela dentro de um banco de dados e requisita informações detalhadas sobre as colunas de dados dentro da tabela. Você pode apagar uma tabela de um banco de dados com o comando SQL

DROP TABLE.

AfunçãO mysqli_fetch_array ()

obtém uma linha de dados a partir dos resultados de uma consulta ao banco de dados.

Um loop while repete um pedaço de código PHP enquanto uma condição de teste continua sendo atendida.

Q Crie uro b<meo de dodos e uma tabela papa a Ifata de emails. Q Cwc um formularia web e um

-script PI IP "Adfdwim..Dnuil" para

adicionor-novos clientes fl

^ Crie um formulário web e um

script PHP “Enviar Email" para enviar um email para a lista.

?

Não sc esqueça? ainda temes este úittmo Passo para terrnínâv.

No documento Use a cabeca php.pdf (páginas 170-173)