Ir para conteúdo

POWERED BY:

Arquivado

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

VBBurba

...com paginação

Recommended Posts

Olá pessoal, sou novo por aqui, me disseram que vcs são realmente muito bons.Meu padrão pediu pra mim fazer o seguinte:Fazer com que todos os dados do banco de dados que aparecem na pagina devem ser na seguinte ordem Primeiro aparecer todos dados (nome e descrição) cujo campo a1 =sim e a2 =sim depois todos campos que sejam a1=sim e a2=no e por ultimo os a1=no e a2=no.e tem que ter paginação se possível com setinhas, pessoal eu necessito dessa ajuda de vocês, e eu sei que posso contar.Eu não conheco muito bem php e preciso de uma força de vcs belezaAbração

Compartilhar este post


Link para o post
Compartilhar em outros sites

cole o seu codigo atual para podermos lhe ajudar, caso você não saiba php recomendo que pegue alguma apostila sobre, existem varios site que tem apostilas ex: www.wmonline.com.br / www.apostilando.com

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu já conheço bem php, só que muitas coisas eu não faço muita ideia de como fazer

 

Abaixo está o codigo que eu tenho que colocar isso

 

<? require ("dados/funcoes.php");require ("dados/config.php");require ("dados/segmentos.php");require ("stilo.php");?>			<?			//Paginação			function getmicrotime(){ 			list($sec, $usec) = explode(" ",microtime()); 			return ($sec + $usec); 			} 			$time_start = getmicrotime(); //#####################################################################			$arquivo = "buscar.php"; // COLOQUE AQUI O NOME DADO A ESTE ARQUIVO									//CASO você TENHA QUE UTILIZAR OUTRAS VARIÁVEIS JUNTO COM A VARIÁVEL (id) COLOQUE JUNTO EXEMPLO: "index.php?moldura=$mold&"			$banco = "blablabla";	  // NOME DO BANCO DE DADOS			$endereco = "localhost";  // ENTRE COM O ENDEREÇO DO BANCO DE DADOS			$usuario = "blablabla";	  // NOME DE USUÁRIO DO MYSQL			$password = "blablabla";	  // SENHA DO MySQL			$table = $TableNome;	  // NOME DA TABELA A SER UTILIZADA			$TableNome = $TableNome;			$maxpag = 5;			  // MÁXIMO DE RESULTADOS POR PÁGINA			$maxlnk = 10;			  // MÁXIMO DE LINKS POR PÁGINA			if ($id == ''){$param = 0;} else {			$temp = $id;			$passo1 = $temp - 1;			$passo2 = $passo1*$maxpag;			$param = $passo2;}//#####################################################################			$res = mysql_connect("$endereço", "$usuario", "$password");			$sql = "select * from $table";			$sql_01 = "select * from $table  limit $param,$maxpag";			$res1 = mysql_db_query("$banco", "$sql", $res);			$res2 = mysql_db_query("$banco", "$sql_01", $res);			  $totreg = mysql_num_rows($res1);			$totreg_01 = mysql_num_rows($res2);//#####################################################################			$results_tot = $totreg;			$results_parc = $totreg_01;			$result_div = $results_tot/$maxpag;			$n_inteiro = (int)$result_div;			if ($n_inteiro < $result_div) {$n_paginas = $n_inteiro + 1;}			else {$n_paginas = $result_div;}			$pg_atual = $param/$maxpag+1;			$reg_inicial = $param + 1;			$pg_anterior = $pg_atual - 1;			$pg_proxima = $pg_atual + 1;			$time_end = getmicrotime(); 			$time = $time_end - $time_start;// PAGINAecho "<html><head><title>$titulo</title>";pg_inteira();echo"</head><body bgcolor=\"#999999\" leftmargin=\"0\" topmargin=\"0\" marginwidth=\"0\" marginheight=\"0\" link=\"#333333\" vlink=\"#333333\" alink=\"#333333\"><table width=\"100%\" height=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">  <tr>	<td align=\"center\" valign=\"top\">			<table width=\"779\" height=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">		  <tr> 			<td width=\"17\" rowspan=\"6\" background=\"../imagens/la.jpg\" bgcolor=\"#FFFFFF\"> </td>			<td width=\"745\" valign=\"top\" bgcolor=\"#FFFFFF\">";include ("menu.php");echo "</td>			<td width=\"17\" rowspan=\"6\" background=\"../imagens/lb.jpg\" bgcolor=\"#FFFFFF\"> </td>		  </tr>		  <tr> 			<td valign=\"top\" bgcolor=\"#FFFFFF\">";include ("cab.php");echo "</td>		  </tr>		  <tr> 			<td height=\"55\" bgcolor=\"#FFFFFF\">";include ("busca.php");echo "</td>		  </tr>		  <tr>			 					  <td valign=\"top\" bgcolor=\"#FFFFFF\">		  		  <table width=\"745\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">  <tr>	<td width=\"180\" valign=\"top\"> 	  <table width=\"180\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">  <tr>	<td width=\"10\" height=\"10\"><img src=\"imagens/qbranco_a.jpg\" width=\"10\" height=\"10\"></td>	<td width=\"160\" background=\"imagens/qbranco_cima.jpg\"><img src=\"imagens/qbranco_cima.jpg\" width=\"9\" height=\"10\"></td>	<td width=\"10\"><img src=\"imagens/qbranco_b.jpg\" width=\"10\" height=\"10\"></td>  </tr>  <tr>	<td height=\"24\" background=\"imagens/qbranco_esq.jpg\"> </td>	<td valign=\"top\" bgcolor=\"#FFFFFF\"><font size=\"3\" face=\"Verdana, Arial, Helvetica, sans-serif\"><strong>Segmentos</strong><br>			  <br>			   <font size=\"2\"> 			 $segmentos</font></font></td>	<td background=\"imagens/qbranco_dir.jpg\"> </td>  </tr>  <tr>	<td><img src=\"imagens/qbranco_c.jpg\" width=\"10\" height=\"10\"></td>	<td background=\"imagens/qbranco_baixo.jpg\"><img src=\"imagens/qbranco_baixo.jpg\" width=\"9\" height=\"10\"></td>	<td><img src=\"imagens/qbranco_d.jpg\" width=\"10\" height=\"10\"></td>  </tr></table>		</td>	<td width=\"10\"> </td>	<td width=\"555\" valign=\"top\"> 	  <table width=\"555\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">  <tr>	<td width=\"10\" height=\"10\"><img src=\"imagens/qcinza_a.jpg\" width=\"10\" height=\"10\"></td>	<td width=\"535\" background=\"imagens/qcinza_cima.jpg\"><img src=\"imagens/qcinza_cima.jpg\" width=\"9\" height=\"10\"></td>	<td width=\"10\"><img src=\"imagens/qcinza_b.jpg\" width=\"10\" height=\"10\"></td>  </tr>  <tr>	<td height=\"24\" background=\"imagens/qcinza_esq.jpg\"> </td>	<td valign=\"top\" bgcolor=\"#EEEEEE\">";	  echo " <font size=\"3\" face=\"Verdana, Arial, Helvetica, sans-serif\">";	  echo "<b>Resultado da Busca</b><br><br>";echo"<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";// fim da pagina//inicio do mostra resultado			while($resultado = mysql_fetch_array($res2)) { $contador ++;			 if($resultado[permissao] == "s"){echo"		 <tr> 		  <td><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><strong>			  <a href=\"#para\" onClick=\"MM_openBrWindow('../cadastro/inicio.php?id_empresa=$resultado[id]&TableNome=$TableNome',			  'blABLAbla','scrollbars=no,width=550,height=480')\">$resultado[empresa]</a>			  </strong></font></td>		 </tr>		 <tr> 		  <td><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><strong></strong> 			  $resultado[beneficio] </font></td>		 </tr>				  <tr> 		  <td><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"> </font></td>		 </tr>";// ############################ FIM DOS RESULTADOS ###############################			   }			 }			  echo "</table>"; 			  $reg_final = $param + $contador;// Pagina?><div align="center">  <table width="400" height="30" border="0" cellspacing="0">	<tr valign="bottom"> 	  <td width="150" height="30"> 		<p align="right"><font face="Verdana" size="2"> 		  <?if ($id > 1) {?>		  <a href="<?$arquivo?>?TableNome=<?echo $TableNome;?>&id=<?echo $pg_anterior;?>" class="estilos"><b>Anterior		  <?}?>		  </a></font> </td>		  //Paginação		  	  <?if ($temp >= $maxlnk){			if ($n_paginas > $maxlnk) {$n_maxlnk = $temp + 4;			$maxlnk = $n_maxlnk;			$n_start = $temp - 6;			$lnk_impressos = $n_start;}}			while(($lnk_impressos < $n_paginas) and ($lnk_impressos < $maxlnk))			{ $lnk_impressos ++;?>// fim paginação//Pagina	  <center>		<td width="23"> 		  <p align="center"><font face="Verdana" size="2"> 			<?if ($pg_atual != $lnk_impressos){echo "<a href=\"$arquivo?TableNome=$TableNome&id=$lnk_impressos\">";}			if ($pg_atual == $lnk_impressos){echo "<font face=\"Verdana\" size=\"2\" color\"#FFFFFF\"><b>$lnk_impressos</b></font>";} else {echo "$lnk_impressos";}?></a> 			</font></font> </td>		<?}?>	  </center>	  <td width="221"> 		<p align="left"><font face="Verdana" size="2"> 		  <?if ($reg_final < $results_tot) {?>		  <a href="<?$arquivo?>?TableNome=<?echo $TableNome;?>&id=<?echo $pg_proxima;?>" class="estilos"><b>Próximo</b></a></font></td>	  <?}?>	</tr>  </table></div><? echo"</td>	<td background=\"imagens/qcinza_dir.jpg\"> </td>  </tr>  <tr>	<td><img src=\"imagens/qcinza_c.jpg\" width=\"10\" height=\"10\"></td>	<td background=\"imagens/qcinza_baixo.jpg\"><img src=\"imagens/qcinza_baixo.jpg\" width=\"9\" height=\"10\"></td>	<td><img src=\"imagens/qcinza_d.jpg\" width=\"10\" height=\"10\"></td>  </tr></table>		</td>  </tr></table>		  		  </td>		  </tr>		  <tr> 			<td bgcolor=\"#FFFFFF\"> </td>		  </tr>		  <tr> 			<td bgcolor=\"#CC6666\"> </td>		  </tr>		</table>			</td>  </tr></table>	</body></html>"; ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo! Olha o que diz a regra N° 17:

Jamais poste mensagens com títulos como: "ME AJUDE", "PELO AMOR DE DEUS", "ESTOU DESESPERADO", "URGENTE", "SOCORRO!", "HELP!", ou qualquer coisa similar. Utilize titulos curtos e claros, que condizem com sua dúvida.

Mais infos: http://forum.imasters.com.br/index.php?act=HelpO título do tópico será editado

Compartilhar este post


Link para o post
Compartilhar em outros sites

O mesmo script só que sem partes desnecessarias

// ******************************* paginação ********************************** <? //Paginação function getmicrotime(){ list($sec, $usec) = explode(" ",microtime()); return ($sec + $usec); } $time_start = getmicrotime(); //############################## Dados do BD $arquivo = "buscar.php"; // COLOQUE AQUI O NOME DADO A ESTE ARQUIVO //CASO você TENHA QUE UTILIZAR OUTRAS VARIÁVEIS JUNTO COM A VARIÁVEL (id) COLOQUE JUNTO EXEMPLO: "index.php?moldura=$mold&" $banco = "blablabla"; // NOME DO BANCO DE DADOS $endereco = "localhost"; // ENTRE COM O ENDEREÇO DO BANCO DE DADOS $usuario = "blablabla"; // NOME DE USUÁRIO DO MYSQL $password = "blablabla"; // SENHA DO MySQL $table = $TableNome; // NOME DA TABELA A SER UTILIZADA $TableNome = $TableNome; $maxpag = 5; // MÁXIMO DE RESULTADOS POR PÁGINA $maxlnk = 10; // MÁXIMO DE LINKS POR PÁGINA if ($id == ''){$param = 0;} else { $temp = $id; $passo1 = $temp - 1; $passo2 = $passo1*$maxpag; $param = $passo2;}//########################################################### $res = mysql_connect("$endereço", "$usuario", "$password"); $sql = "select * from $table"; $sql_01 = "select * from $table limit $param,$maxpag"; $res1 = mysql_db_query("$banco", "$sql", $res); $res2 = mysql_db_query("$banco", "$sql_01", $res); $totreg = mysql_num_rows($res1); $totreg_01 = mysql_num_rows($res2);//####################################################### $results_tot = $totreg; $results_parc = $totreg_01; $result_div = $results_tot/$maxpag; $n_inteiro = (int)$result_div; if ($n_inteiro < $result_div) {$n_paginas = $n_inteiro + 1;} else {$n_paginas = $result_div;} $pg_atual = $param/$maxpag+1; $reg_inicial = $param + 1; $pg_anterior = $pg_atual - 1; $pg_proxima = $pg_atual + 1; $time_end = getmicrotime(); $time = $time_end - $time_start;// ******************************* RESULTADO DA BUSCA ******************************* echo "<b>Resultado da Busca</b><br><br>";echo"<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";// fim da pagina//inicio do mostra resultado while($resultado = mysql_fetch_array($res2)) { $contador ++; if($resultado[permissao] == "s"){echo" <tr> <td><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><strong> <a href=\"#para\" onClick=\"MM_openBrWindow('../cadastro/inicio.php?id_empresa=$resultado[id]&TableNome=$TableNome', 'blABLAbla','scrollbars=no,width=550,height=480')\">$resultado[empresa]</a> </strong></font></td> </tr> <tr> <td><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><strong></strong> $resultado[beneficio] </font></td> </tr> <tr> <td><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"> </font></td> </tr>";// ############################ FIM DOS RESULTADOS ################# } } echo "</table>"; $reg_final = $param + $contador;// Pagina?>// ******************************* paginação ********************************** <div align="center"> <table width="400" height="30" border="0" cellspacing="0"> <tr valign="bottom"> <td width="150" height="30"> <p align="right"><font face="Verdana" size="2"> <?if ($id > 1) {?> <a href="<?$arquivo?>?TableNome=<?echo $TableNome;?>&id=<?echo $pg_anterior;?>" class="estilos"><b>Anterior <?}?> </a></font> </td> <?if ($temp >= $maxlnk){ if ($n_paginas > $maxlnk) {$n_maxlnk = $temp + 4; $maxlnk = $n_maxlnk; $n_start = $temp - 6; $lnk_impressos = $n_start;}} while(($lnk_impressos < $n_paginas) and ($lnk_impressos < $maxlnk)) { $lnk_impressos ++;?> <center> <td width="23"> <p align="center"><font face="Verdana" size="2"> <?if ($pg_atual != $lnk_impressos){echo "<a href=\"$arquivo?TableNome=$TableNome&id=$lnk_impressos\">";} if ($pg_atual == $lnk_impressos){echo "<font face=\"Verdana\" size=\"2\" color\"#FFFFFF\"><b>$lnk_impressos</b></font>";} else {echo "$lnk_impressos";}?></a> </font></font> </td> <?}?> </center> <td width="221"> <p align="left"><font face="Verdana" size="2"> <?if ($reg_final < $results_tot) {?> <a href="<?$arquivo?>?TableNome=<?echo $TableNome;?>&id=<?echo $pg_proxima;?>" class="estilos"><b>Próximo</b></a></font></td> <?}?> </tr> </table></div>// ******************************* fim paginação **********************************// ******************************* continua o script **********************************

Foi mal cara, não sabia disso, mas que estou dessesperado estou!!!!!!!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tentei fazer alguma coisa aqui, mas sinceramente, só com mysql acho que não dá pra fazer não. Mas por PHP, você pode fazer 3 consultas e juntar todos os resultados dentro de um único array, e depois listaria o que você quiser, é uma alternativa...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não costumo passar códigos não, mas foi legal eu fazer nunca tinha feito algo parecido, esse código vai fazer as 3 buscas e então juntar todos os resultados num único array:

$query = "SELECT * FROM dados WHERE a1='sim' AND a2='sim';SELECT * FROM dados WHERE a1='sim' AND a2='nao';SELECT * FROM dados WHERE a1='nao' AND a2='nao'";$arrayResults = array();$numOco = 0;$exec = mysqli_multi_query($link, $query);do { $result = mysqli_store_result($link); while ($r = mysqli_fetch_array($result)) { $arrayResults[$numOco]['campo1'] = $r['campo1']; $arrayResults[$numOco]['campo1'] = $r['campo1']; $arrayResults[$numOco]['campo2'] = $r['campo2']; $numOco++; }} while (mysqli_next_result($link));

Ali onde tá campo1, campo2, campo3 você coloca as colunas que você tem no mysql e que serão usadas pra aparecer na tela.Pra saber como ficou a estrutura do array é só dar um var_dump($arrayResults); Nesse caso aí, serão retornados TODOS os resultados da tabela, depois você vai ter que dar um jeito de colocar uma paginação nisso, não é dificil não. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

É só pra não dar erro de variáel não-definida. Essa var serve pra colocar em ordem os resultados retornados, desse jeito o array vai ficar $arrayResults[0] pra linha 1, $arrayResults[1] pra linha 2, etc. Pra você acessar alguma info, você dá um print em $arrayResults[linha]['campo'] http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi cara, valeu de coração,Só que assim eu tentei fazer aqui e agora a paginação não funciona e aparece esse erro aquiWarning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/restricted/home/site/public_html/buscar2.php on line 42Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/restricted/home/site/public_html/buscar2.php on line 43as linha que ele está falando tem isso aqui

$totreg = mysql_num_rows($res1);$totreg_01 = mysql_num_rows($res2);

Você sabe o que eu posso fazer??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caramba PHP é show de bola mais é complicado.Cara o meu Servidor usa PHP 4 pq já tem um outro sistema lá que utiliza funções que no 5 já não tem.O que que eu posso fazer nesse caso???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem como passar esse codigo para PHP 4 ?

$query = "SELECT * FROM dados WHERE a1='sim' AND a2='sim';SELECT * FROM dados WHERE a1='sim' AND a2='nao';SELECT * FROM dados WHERE a1='nao' AND a2='nao'";$arrayResults = array();$numOco = 0;$exec = mysqli_multi_query($link, $query);do {$result = mysqli_store_result($link);while ($r = mysqli_fetch_array($result)) {$arrayResults[$numOco]['campo1'] = $r['campo1'];$arrayResults[$numOco]['campo1'] = $r['campo1'];$arrayResults[$numOco]['campo2'] = $r['campo2'];$numOco++;}} while (mysqli_next_result($link));

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, valeu pelas dicas só que agora a pergunta vai complicar um pouquinho.tem como usar esse script de paginação do tmferreira e colocar isso na consulta

SELECT * FROM dados WHERE nome=$busca OR descricao=$busca AND a1='sim' AND a2='sim';SELECT * FROM dados WHERE nome=$busca OR descricao=$busca AND a1='sim' AND a2='nao';SELECT * FROM dados WHERE nome=$busca OR descricao=$busca AND a1='nao' AND a2='nao'

A idéia é colocar um campo de pesquisa para a pessoa digitar o que procura e depois de clicar em BUSCAR o sistema faz uma busca no bd procurando essas palavras e de acordo com as especificações, e dependendo do resultado, aparecerá a paginação.Eu to tentando achar algo que funcione no PHP4.Se alguém souber posta ai beleza!abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, não tem segredo. Eu fiz desse jeito usando o multi_query, mas nada impede que você faça 3 consultas, usando 3 mysql_query, e depois mais 3 laços pra colocar tudo dentro do array. Depois que você fez isso, pra fazer a paginação é fácil. você dá um:

$numregs = count($arrayResults);

...pra saber o número de linhas retornadas. você verifica a página que está e pega o valor correspondente àquela página:

$pag = 2; // Exemplo$resPerPage = 10; // 10 resultados por página$comecaEm = ($pag-1)*$resPerPage; // (2-1)*10=10, começa no reg número 10

Daí você tem outra var que conta o número de resultados apresentados nesse página, pode ser $numNaPag. Tendo isso você faz um laço, dentro desse laço você vai mostrando os results e dando um $numNaPag++; e um $comecaEm++; pra mostrar tu usa $arrayResults[$comecaEm]. você verifica se $numNaPag é = a $resPerPage, se for dá um "break" no laço. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

tmferreira, não funciona não. Até pq nesse select aí não é usada nenhuma função pra organização e tal.Sinceramente VBBurba, se fosse pra mim fazer, eu simplesmente criaria mais uma coluna na tabela chamada 'option', nela constaria apenas 3 números, 1, 2 ou 3, no seguinte esquema:

1: a1='sim' e a2='sim'2: a1='sim' e a2='nao'3: a1='nao' e a2='nao'

Tendo isso seria só fazer:

SELECT * FROM dados ORDER BY option DESC

Ficaria muito mais simples. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Cadê as outras mensagens desse tópico???

Ué, estão na primeira página hehehe

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.