Ir para conteúdo

POWERED BY:

Arquivado

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

VOM

[Resolvido] Pegar Nome e Sobrenome PHP

Recommended Posts

Galera estou fazendo uma tabela em PHP para que me mostre os aniversariantes do mês.

 

O que eu fiz até agora foi isso:

 

<?php
	$data = date("m");
	$d = date("d");
	if($data==01){
$mes=Janeiro;
}elseif($data==02){
$mes=Fevereiro;
}elseif($data==03){
$mes=Março;
}elseif($data==04){
$mes=Abril;

}elseif($data==05){
$mes=Maio;
}elseif($data==06){
$mes=Junho;
}elseif($data==07){
$mes=Julho;
}elseif($data==08){
$mes=Agosto;
}elseif($data==09){
$mes=Setembro;
}elseif($data==10){
$mes=Outubro;
}elseif($data==11){
$mes=Novembro;
}elseif($data==12){
$mes=Dezembro;
}

	?>
	  <img src="Imagem/niver.png" />
  <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0"bgcolor="#D7EBFF"  class="tabela2">
  <th  class="tit" colspan="3"><?php echo"$mes"; ?></th>
  <tr>
   <td  width="20%">Dia</td>
	<td width="65%">Nome</td>
	<td width="15%">E-mail</td>
  </tr>
  </table>
 <?php 

 $sql = mysql_query("SELECT * FROM pessoa ORDER BY nome_pessoa ASC LIMIT 0,20 ");
  while ($linha = mysql_fetch_array($sql)) {
 $nome = $linha["nome_pessoa"];
 $id = $linha["id_pessoa"];
 $nascimento = $linha["nascimento"];
 $niver = substr($nascimento,5,2);
 $dia = substr($nascimento,8,2);
 $nome = substr($nome,0,20).'...';

 $d1 = $d-6;
 $d2 = $d+6;
 if($niver == $data){
 ?> 
<table <?php if($dia>$d1 and $dia<$d2){ echo "class='red'";}else{echo "class='tabela'";} ?>  width="100%" bordercolor="#999999" bgcolor="#D7EBFF"  border="0">
  <tr>
	<td width="15%" ><?php echo "$dia"; ?></td>
	<td width="70%"><?php echo "$nome"; ?></td>
	<td width="15%"><a href="email.php?id=<?php echo "$id";?>" ><img border="0" src="Imagem/Email Edit 2.png" /></a></td>
  </tr>
</table>
<?php 
}//fim do se
}//fim do while

Só que... pelo o que eu fiz neste código se o nome da pessoa for, por exemplo "Joãozinho da Silva Pedro dias Machado Filho Junior" ele simplesmente trunca o nome em 20 caracteres, imprimindo "Joãozinho da Silva Pedr..."

 

Só que, eu acho que ficaria melhor pegando o Nome e o Sobrenome apenas, para evitar estourar o tamanho do campo, que é limitado.

Ou seja, para este exemplo aí acima, precisava que ao invez de imprimir "Joãozinho da Silva Pedr..." ele mostrasse "Joãozinho Junior".

 

 

Alguém sabe como resolver isso??

 

Obrigado..

 

Abs

 

VOM

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dê um explode(), separando pelo caractere espaço (" ") e pegue somente o primeiro índice e o último.

 

 

use strftime() para imprimir o nome dos meses em português, sem precisar desse monte de elseif's.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ou entao, trocar os if's por switch...

nesse caso, não convém usar, pois é desnecessário, uma vez que pode-se usar strftime(). http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

 

Você pode usar substr() e pegar somente a primeira letra dos nomes intermediários. Assim você abrevia os nomes do meio. :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

ou entao, trocar os if's por switch...

nesse caso, não convém usar, pois é desnecessário, uma vez que pode-se usar strftime(). http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

 

Você pode usar substr() e pegar somente a primeira letra dos nomes intermediários. Assim você abrevia os nomes do meio. :D

 

 

Segue o cód. abaixo se alguém precisar fazer isso.

<?php

//STRING

$nome = "Joãozinho da Silva Pedro dias Machado Filho Junior";

 

//DIVIDINDO A STRING

$parte = explode(" ", $nome);

$n = sizeof($parte);

$n2 = $n-1;

//EXIBE

for($i=0; $i<$n; $i++){

if($i==0 or $i==$n2){

echo " $parte[$i] ";

}//fecha o se

elseif(strlen($parte[$i])<3){

}

else{

$nome = substr($parte[$i],0,1);

$nome = strtoupper($nome);

echo "$nome";

}

}//FECHA FOR

?>

Isto vai imprimir "Joaozinho SPDMF Junior"

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.