Ir para conteúdo

POWERED BY:

Arquivado

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

Enigma_Boy

Listar arquivos

Recommended Posts

Olá muito boa tarde meus amigos, é o seguinte, estou a listar uns mp3 de uma pasta para tocarem num leitor de mp3, o problema e que esse leitor pede para separar os mp3 por (|) o que acontece e que no ultimo arquivo ele como esta no echo mp3/$res | <- separador

ele coloca mesmo no ultimo o separador, com isso aparece no leito um suposto mp3 vasio...

 

ele lista assim:

 

primeiro.mp3 | meio.mp3 | ultimo_arquivo.mp3 | <- o separador fica aqui ao apresentar na lista de mp3 aparece:

 

1º - primeiros.mp3

2º - meio.mp3

3º - ultimo.mp3

4º -

 

como podem observar o 4º não tem nada, aparece devido ao ultimo arquivo manter o | separadolr, o que queria era que no ultimo arquivo não aparecese esse separador ficasse tipo:

 

primeiro.mp3 | meio.mp3 | ultimo_arquivo.mp3 <- sem separador para evitar me apresentar um mp3 vasio

 

Código abaixo

 

<?
$dir="mp3/";
$dir1=opendir($dir);
while ($res=readdir($dir1) ){
$tipo=explode(".",$res);
if ($tipo[1]=="mp3" || $tipo[1]=="MP3"){
print "mp3/$res |";
}
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

já que você ja tem um array, leia sobre o implode()

 

http://php.net/implode

 

no manual tem formas de uso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ja tentei adicionar isso do implode mas me maneira nenhuma consegui :S

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php
$dir="mp3/";
$dir1=opendir($dir);

$mp3 = Array();

while( $res=readdir($dir1) ){
   $tipo=explode('.',$res);
   if ( $tipo[1]=='mp3' || $tipo[1]=='MP3' ){
       $mp3[] = 'mp3/'.$res;
   }
}
echo implode( '|', $mp3 );
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Espetaculo... william muito obrigado :)

 

ja agora para evitar abrir outro topico, sabes de algum sitio onde posso estudar o seguinte:

 

tenho um sistema de adicionar datas ao mysql. O objectivo é gravar uma data e em um calendario que tenho ele insere a info que se encontra ocupado, mas o sistema que fiz apenas adiciona 1 dia de cada vez.

 

Dia - mes - ano - ele grava assim, e gostava de um site onde possa entender como fazer para gravar dia - mes - ano a dia - mes - ano, e quando gravar gravame os dias todos das datas escolhdidas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dia - mes - ano - ele grava assim

grave no padrão americano, usando um campo do tipo DATE

 

 

e quando gravar gravame os dias todos das datas escolhdidas.

desnecessária e incorreta essa modelagem.

 

Basta gravar:

 

TABLE evento

inicio - date

termino - date

 

e então, antes de gravar um novo, você faz uma query para saber se uma das datas do novo evento, conflita com oque já está lá.

Tão simples qnto isso, basta modelar corretamente os dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, Enigma.

 

Consegui entender sua dúvida baseado no que o William falou. Para te ajudar mais com a parte prática, faça dois inputs, um com o início da data e outro com o término da data. Algo como:

 

<input type="text" name="data_inicio" placeholder="Data inicial" />
<input type="text" name="data_final" placeholder="Data final" />

 

Depois, na inserção, para verificar se a data inicial é diferente da final você faz:

if($_POST['data_inicio'] == $_POST['data_final']){
echo 'As datas são iguais.';
} else {
echo 'As datas são diferentes';
}

E aí, para definitivamente inserir:

INSERT INTO data VALUES ('.$_POST['data_inico'].', '.$_POST['data_final'].');

 

E você pode formatar a data da maneira que quiser. Dê uma olhada.

 

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

esse meio que me indicaste o que faz mesmo?

 

por exemplo eu coloco no form data_inicio 20-01-2011 e em data_final 30-01-2011 ele vais me gravar na base de dados o que mesmo? esses 2 dias ou garava me logo 20,21,22,23... de 01,1984?

 

é que o meu objectivo é ao gravar dessa forma data_inicio 20-01-2011 e em data_final 30-01-2011 ele me grava na bd separados por id's, 20-01-2011 - 21-01-2011 - 22-01-2011 e por ai, pk so assim o calendario que esta a ler as datas registadas no bd me pode alterar a cor conforme eu programei.

 

resulução a ideia é ao meter data_inicio 20-01-2011 e em data_final 30-01-2011 ele me grave na bd por id's separados se possivel, de forma a ficar

 

id 1 - 20-01-2011

id 2 - 21-01-2011

e por ai...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sobre listar os arquivos você pode fazer de uma forma mais simples.

 

<?php

echo implode( ' | ', glob( 'mp3/*.{mp3,MP3}', GLOB_BRACE ) );

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites
u garava me logo 20,21,22,23... de 01,1984?

desncessário isso. leia novamente o meu post.

Se quiser fazer da forma correta, aquela é a melhor modelagem.

 

Se não, boa sorte.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, se for pelo SQL você pode fazer assim:

DATE_FORMAT(NOW(), '%e/%c/%Y')

 

Apesar de não ter entendido muito sua pergunta, acho que isso resolve seu problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem ou não entendi ou so burro, ou entao nao vos expliquei bem..

 

codigo que gravo os dias...

 

<form name="form1" action="vagas.php" method="POST" style="padding-top:40px;">

<?php

if(isset($erro)){

   print '<div style="width:80%; color:#000000; padding: 5px 0px 5px 0px; text-align:center; margin: 0 auto;">'.$erro.'</div>';

}

?>

<table width="98%" align="center" >


<tbody>

<tr>

<td width="20%"><strong>Data de registo:</strong></td>

<td><select name="dia">

	<option>1</option>

       <option>2</option>

       <option>3</option>

       <option>4</option>

       <option>5</option>

       <option>6</option>

       <option>7</option>

       <option>8</option>

       <option>9</option>

       <option>10</option>

       <option>11</option>

       <option>12</option>

       <option>13</option>

       <option>14</option>

       <option>15</option>

       <option>16</option>

       <option>17</option>

       <option>18</option>

       <option>19</option>

       <option>20</option>

       <option>21</option>

       <option>22</option>

       <option>23</option>

       <option>24</option>

       <option>25</option>

       <option>26</option>

       <option>27</option>

       <option>28</option>

       <option>29</option>

       <option>30</option>

       <option>31</option>

</select>

 <select name="mes" >

 		<option>1</option>

       <option>2</option>

       <option>3</option>

       <option>4</option>

       <option>5</option>

       <option>6</option>

       <option>7</option>

       <option>8</option>

       <option>9</option>

       <option>10</option>

       <option>11</option>

       <option>12</option>
 </select>

 <select name="ano" >  		


       <option>2011</option>

       <option>2012</option>

       <option>2013</option> 
       <option>2014</option> 
       <option>2015</option> 
       <option>2016</option> 
       <option>2017</option> 
       <option>2018</option> 
       <option>2019</option> 
       <option>2020</option> 
 </select>  </td>
</tr>

<tr>

<td></td>

<td><input type="hidden" name="done" value="" /></td>
</tr>
</tbody>
</table>
<p> </p>
			        <div class="buttons">
                         <input name="button" type="submit" class="button" id="button" value="Registar datas" />
                       </div>
</form>
           </div>
	  <!-- End Box -->
<div class="box">
				<!-- Box Head -->
				<div class="box-head">
					<h2>Lista de datas registadas</h2>
	    </div>
				<div align="center">
				  <p>Abaixo todas as datas registadas.. é conveniente que a medida que as datas são antigas ir eliminando para evitar o abuso de registos e peso nas bases de dados.</p>
				  <p> </p>
				</div>

<?
          $max = 10;



$pagina = $_GET['pagina'];

if(!$pagina){

$inicio = 0;

$pagina = 1;

}else{

$inicio = ($pagina - 1) * $max;

}



$sqln = mysql_query("SELECT * FROM agenda ORDER BY id DESC");

$num = mysql_num_rows($sqln);



if($num == 0){

print "Sem dados...";

}else{



$total_paginas = ceil($num/$max);



$sqln = mysql_query("SELECT * FROM agenda ORDER BY id DESC LIMIT ".$inicio.",".$max."");

$num = mysql_num_rows($sqln);

}

?>





 <?php

 print '<div class="table"><table width="50%" border="0" align="center" cellpadding="0" cellspacing="0">

 <tr>


   <td ><span class="style3">Data ocupadas</span></td>

   <td width="20%"><span class="style3">Controlo</span></td>

 </tr>';



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

 $dtevento = @mysql_result($sqln, $i, "dtevento");

 $id = @mysql_result($sqln, $i, "id"); 

 $n = $i + 1;

 $d = $i % 2;

 if($d == 0)

 print '<tr>';


 print '<td><span class="style1">'.$dtevento.'</span></td>';


  print '<td align="center"><form id="theForm" name="theForm" method="post"  action="deletagenda.php?id='.$id.'"><input type="submit" class="button" value="Remover" /></form></td>';

 print '</tr>';

 }



 print '</table></div>';

print '<div style="text-align:center; margin-top: 30px;">';

if($pagina != 1){

print '<a href="vagas.php?'. $_SERVER['QUERY_STRING']. "&pagina=".($pagina - 1).'"><< anterior</a>';

}else{

   print '<span style="color: #ccc;"><< anterior </span>';

}

if ($total_paginas > 1){ 

   for ($i=1; $i <= $total_paginas; $i++){ 

      if ($pagina == $i){        

         echo "<span class='al'> [".$pagina."] </span>"; 

      }else{           

         echo "<a href=\"vagas.php?" . $_SERVER['QUERY_STRING']."&pagina=".$i."\"> ".$i." </a> "; 

	  }

   } 

} 

if($pagina < $total_paginas){

print '<a href="vagas.php?'. $_SERVER['QUERY_STRING']. "&pagina=".($pagina + 1).'">próxima >></a>';

}else{

   print '<span style="color: #ccc;"> próxima >></span>';

}

print '</div>';



 ?>

 

como podem ver tenho apenas uma inserça~por data e queria entao acrescentar assim:

 

<table width="98%" align="center" >


<tbody>

<tr>

<td width="20%"><strong>Data de entrada:</strong></td>

<td><select name="dia">
 <option>1</option>
 <option>2</option>
 <option>3</option>
 <option>4</option>
 <option>5</option>
 <option>6</option>
 <option>7</option>
 <option>8</option>
 <option>9</option>
 <option>10</option>
 <option>11</option>
 <option>12</option>
 <option>13</option>
 <option>14</option>
 <option>15</option>
 <option>16</option>
 <option>17</option>
 <option>18</option>
 <option>19</option>
 <option>20</option>
 <option>21</option>
 <option>22</option>
 <option>23</option>
 <option>24</option>
 <option>25</option>
 <option>26</option>
 <option>27</option>
 <option>28</option>
 <option>29</option>
 <option>30</option>
 <option>31</option>
</select>
 <select name="mes" >
   <option>1</option>
   <option>2</option>
   <option>3</option>
   <option>4</option>
   <option>5</option>
   <option>6</option>
   <option>7</option>
   <option>8</option>
   <option>9</option>
   <option>10</option>
   <option>11</option>
   <option>12</option>
 </select>
 <select name="ano" >
   <option>2011</option>
   <option>2012</option>
   <option>2013</option>
   <option>2014</option>
   <option>2015</option>
   <option>2016</option>
   <option>2017</option>
   <option>2018</option>
   <option>2019</option>
   <option>2020</option>
 </select></td>
</tr>

<tr>

<td><strong>Data de saida:</strong></td>

<td><select name="dia2">
 <option>1</option>
 <option>2</option>
 <option>3</option>
 <option>4</option>
 <option>5</option>
 <option>6</option>
 <option>7</option>
 <option>8</option>
 <option>9</option>
 <option>10</option>
 <option>11</option>
 <option>12</option>
 <option>13</option>
 <option>14</option>
 <option>15</option>
 <option>16</option>
 <option>17</option>
 <option>18</option>
 <option>19</option>
 <option>20</option>
 <option>21</option>
 <option>22</option>
 <option>23</option>
 <option>24</option>
 <option>25</option>
 <option>26</option>
 <option>27</option>
 <option>28</option>
 <option>29</option>
 <option>30</option>
 <option>31</option>
</select>
 <select name="mes2" >
   <option>1</option>
   <option>2</option>
   <option>3</option>
   <option>4</option>
   <option>5</option>
   <option>6</option>
   <option>7</option>
   <option>8</option>
   <option>9</option>
   <option>10</option>
   <option>11</option>
   <option>12</option>
 </select>
 <select name="ano2" >
   <option>2011</option>
   <option>2012</option>
   <option>2013</option>
   <option>2014</option>
   <option>2015</option>
   <option>2016</option>
   <option>2017</option>
   <option>2018</option>
   <option>2019</option>
   <option>2020</option>
 </select></td>
</tr>
<tr>
 <td></td>
 <td><input type="hidden" name="done" value="" /></td>
</tr>
</tbody>
</table>

 

de qualquer modo isso so eu que administro na admin ele grava e apresenta aos clientes o seguinte calendario

 

<?php

include('connect_DB_open.php');

@mysql_select_db($db);//selecione o banco de dados

if(empty($_GET['data'])){//navegaçao entre os meses

   $dia = date('d');

   $month =ltrim(date('m'),"0");

   $ano = date('Y');

}else{

   $data = explode('/',$_GET['data']);//nova data

   $dia = $data[0];

   $month = $data[1];

   $ano = $data[2];

}

if($month==1){//mês anterior se janeiro mudar valor

   $mes_ant = 12;

   $ano_ant = $ano - 1;

}else{

   $mes_ant = $month - 1;

   $ano_ant = $ano;

}
if($month==12){//proximo mês se dezembro tem que mudar

   $mes_prox = 1;

   $ano_prox = $ano + 1;

}else{

   $mes_prox = $month + 1;

   $ano_prox = $ano;

}



$hoje = date('j');//função importante pego o dia corrente

switch($month.$n){/*notem duas variaveis para o switch para identificar dia e limitar numero de dias*/

   case 1: $mes = "JANEIRO";

           $n = 31;

   break;

   case 2: $mes = "FEVEREIRO";// todo ano bixesto fev tem 29 dias

           $bi = $ano % 4;//anos multiplos de 4 são bixestos

           if($bi == 0){

               $n = 29;

           }else{

               $n = 28;

           }

   break;

   case 3: $mes = "MARÇO";

           $n = 31;

   break;

   case 4: $mes = "ABRIL";

           $n = 30;

   break;

   case 5: $mes = "MAIO";

           $n = 31;

   break;

   case 6: $mes = "JUNHO";

           $n = 30;

   break;

   case 7: $mes = "JULHO";

           $n = 31;

   break;

   case 8: $mes = "AGOSTO";

           $n = 31;

   break;

   case 9: $mes = "SETEMBRO";

           $n = 30;

   break;

   case 10: $mes = "OUTUBRO";

           $n = 31;

   break;

   case 11: $mes = "NOVEMBRO";

           $n = 30;

   break;

   case 12: $mes = "DEZEMBRO";

           $n = 31;

   break;

}



$pdianu = mktime(0,0,0,$month,1,$ano);//primeiros dias do mes

$dialet = date('D', $pdianu);//escolhe pelo dia da semana

switch($dialet){//verifica que dia cai

   case "Sun": $branco = 0; break;

   case "Mon": $branco = 1; break;

   case "Tue": $branco = 2; break;

   case "Wed": $branco = 3; break;

   case "Thu": $branco = 4; break;

   case "Fri": $branco = 5; break;

   case "Sat": $branco = 6; break;

}            



   print '<table class="tabela" >';//construção do calendario

   print '<tr>';

   print '<td class="mes"><a href="?data='.$dia.'/'.$mes_ant.'/'.$ano_ant.'">  Mês anterior </a></td>';/*mês anterior*/

   print '<td class="mes" colspan="5">'.$mes.'/'.$ano.'</td>';/*mes atual e ano*/

   print '<td class="mes"><a href="?data='.$dia.'/'.$mes_prox.'/'.$ano_prox.'">  Próximo mês </a></td>';/*Proximo mês*/

   print '</tr><tr>';

   print '<td class="sem">Domingo</td>';//printar os dias da semana

   print '<td class="sem">Segunda</td>';

   print '<td class="sem">Terça</td>';

   print '<td class="sem">Quarta</td>';

   print '<td class="sem">Quinta</td>';

   print '<td class="sem">Sexta</td>';

   print '<td class="sem">Sabado</td>';

   print '</tr><tr>';

   $dt = 1;

   if($branco > 0){

       for($x = 0; $x < $branco; $x++){

            print '<td> </td>';/*preenche os espaços em branco*/

           $dt++;

       }

   }



   for($i = 1; $i <= $n; $i++ ){/*agora vamos no banco de dados verificar os evendos*/

           $dtevento = $i."-".$month."-".$ano;

       $sqlag = mysql_query("SELECT * FROM agenda WHERE dtevento = '$dtevento'") or die(mysql_error());

               $num = mysql_num_rows($sqlag);/*quantos eventos tem para o mes*/

               $idev = @mysql_result($sqlag, 0, "dtevento");

               $eve = @mysql_result($sqlag, 0, "evento");              

               if($num > 0){/*prevalece qualquer dia especial do calendario, por isso está em primeiro*/

          print '<td class="evt">';

          print ''.$i.'';

          print '</td>';

          $dt++;/*incrementa os dias da semana*/

                  $qt++;/*quantos eventos tem no mes*/

       }elseif($i == $hoje){/*imprime os dia corrente*/

           print '<td class="hj">';

           print $i;

           print '</td>';

           $dt++;



       }elseif($dt == 1){/*imprime os domingos*/

           print '<td class="td">';

           print $i;

           print '</td>';

           $dt++;

       }else{/*imprime os dias normais*/

                   print '<td class="td">';

           print $i;

           print '</td>';

           $dt++;

               }

       if($dt > 7){/*faz a quebra no sabado*/

       print '</tr><tr>';

       $dt = 1;

       }

   }

   print '</tr>';

   print '</table>';



?>

 

usei um sistema gratis de eventos e alterem conforme a minha necessidade mas cria mesmo fazer isso funcionar :(

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.