Campo data e formattazione tabella

Ciao! ho acora un un pò di problemini con la formattazione della tabella estratta dal db.

Provo a chiedere aiuto a voi:

IL primo problema è che il campo data mi esce così "Jul 25 2007 12:00AM" io invece lo vorrei così "01/03/2008"

Il secondo è che non riesco a modificare la dimensione delle colonne, sono tanti campi quindi avrei bisogno che fossero più strette (ho provato a forzarle ma non ci riesco e non so cosa sbaglio)

Ultima cosa avrei necessità di cambiare il nome ad alcuni campi, (ad esempio ho un campo che si chiama "totale percentuale" e voglio farlo diventare "totale %" che occupa meno spazio.

Credo di dover usare al stringa str_replace ma non so in che modo.

-------------------------------------

| Totale percentuale | Totale % |

-------------------------------------

Ora estraggo i nomi dei campi tramite questo codice, li estrae automaticaticamente in base alla select ed è comodissimo perchè ogni select ha campi diversi.

<?phpfor($i =0; $i < mssql_num_fields($result); $i++) { 
/ echo '<th bgcolor= "FF0000"  width="10" bordercolor="blue">'.'<font size=1>'.'<font face=Verdana, Arial, Helvetica, sans-serif color=black>'. mssql_field_name($result, $i) . '</th>'; 

}

Vi copio parte del codice che ho usato per creare la select e stampare i dati

<?php 
if(isset($_POST['nome'])) { 
   $azienda = $_POST['nome']; 
   if($azienda == "Telephony Daily aaa"){ 
       $sql = "SELECT Queue, date, Offered, campo03, campo04,campo05, campo06,campo06,campo07,campo08, campo09, campo10, campo11 
       from [$azienda]"; 
   }else if($azienda == "Telephony Daily bbb"){ 
      $sql = "SELECT Queue, Date, campo03b, campo04b, campo05b 
       from [$azienda]"; 
}else if($azienda == "Telephony Daily ccc").......... 
}else{ 
       $sql = ""; 
       echo "errore nella definizione del nome azienda"; 
   } 
}
<?php 
Se la query che ricavo dagli if precedenti ha un valore 
if ($sql != "")  { 
   $result = mssql_query($sql); 

   //verifichi il risultato se diverso da 0. Se fallisce significa che non ci sono tabelle nel db 
   if (!$result) { 
       echo "DB Error, could not list tablesn"; 
      //echo 'MSSQL ERROR: '.mssql_get_last_message(); 
      exit; 
   } 
?> 
<?php 
if(mssql_num_rows($result) == 0) die("No record"); 
echo '<table width="50">'; 
echo '<table border="1" width="10" bordercolor="#000000" cellspacing="0">'; 
echo '<tr>'; 

for($i =0; $i < mssql_num_fields($result); $i++) { 
   echo '<th bgcolor= "FF0000"  width="10" bordercolor="blue">'.'<font size=1>'.'<font face=Verdana, Arial, Helvetica, sans-serif color=black>'. mssql_field_name($result, $i) . '</th>'; 

} 
echo '</tr>'; 
while ($row = mssql_fetch_array($result, MSSQL_ASSOC)) { 
   echo '<tr>'; 
   foreach($row as $val) { 
     echo '<td width="10" bordercolor="black">'.'<font size=1>'.'<font face=Verdana, Arial, Helvetica, sans-serif color=black>' . $val . '</td>'; 
   } 
   echo '</tr>'; 

} 
echo '</table>';

Grazie Lidia

inviato 8 anni fa
lid
lid
1
X 0 X

Per formattare una data nella query SQL devi usare la funzione DATE_FORMAT:

http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_date-format

La documentazione di str_replace() la trovi qui:

http://it.php.net/str_replace

I problemi di formattazione della tabella non riuscirai mai a risolverli se usi la stessa tabella per tutte le query. Anche se la tabella viene costruita dinamicamente, non potrai mai adattarla alle esigenze delle diverse query.

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

Ciao Gianni,

Grazie per la risposta ;)

Per formattare una data nella query SQL devi usare la funzione DATE_FORMAT:

http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_date-format

DATE_FORMAT credo vada bene solo per Mysql io sto usando mssql (almeno credo perchè ieri l'ho provata e non funzionava)

La documentazione di str_replace() la trovi qui:

http://it.php.net/str_replace

questa ora la provo, ieri ho provato a usarla ma non sono riuscita a integrarla nel codice.

I problemi di formattazione della tabella non riuscirai mai a risolverli se usi la stessa tabella per tutte le query. Anche se la tabella viene costruita dinamicamente, non potrai mai adattarla alle esigenze delle diverse query.

Uffi ma qualcosa che sia semplice!

risposto 8 anni fa
lid
lid
1
X 0 X

Per formattare una data nella query SQL devi usare la funzione DATE_FORMAT:

http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_date-format

Sono riuscita a convertire la data con questa funzione, la scrivo che magari può essere utile a qualcuno in futuro :)

CONVERT(CHAR(12), GETDATE(), 103)date

Ora provo a capire come covertire i campi con str_replace()

 :bye:

risposto 8 anni fa
lid
lid
1
X 0 X

Eccomi di nuovo qui! :(

Non riesco a modificare i nomi dei campi.

Credo di dover inserire una funzione all'incirca come quella che ho scritto sotto, ma non so come integrarla nel codice e cosa mettere al posto di "$nonsocosa" per fa si che mi sostituisca i campi.

$nonsocosa = str_replace("Answered_Percent", "Answered %", $nonsocosa); 
$nonsocosa = str_replace("Abandoned_In", "Abandoned In", $nonsocosa);
$nonsocosa = str_replace("Speed_To", "Speed To", $nonsocosa);
<?php 
if(isset($_POST['nome'])) { 
   $azienda = $_POST['nome']; 
   if($azienda == "Telephony Daily aaa"){ 
       $sql = "SELECT Queue, date, Offered, Answered_Percent, Abandoned_In,campo05, campo06,campo06,campo07,campo08, campo09, campo10, campo11 
       from [$azienda]"; 
   }else if($azienda == "Telephony Daily bbb"){ 
      $sql = "SELECT Queue, Date, Answered_Percent, Abandoned_In, campo05b 
       from [$azienda]"; 
}else if($azienda == "Telephony Daily ccc").......... 
}else{ 
       $sql = ""; 
       echo "errore nella definizione del nome azienda"; 
   } 
} 



<?php 
Se la query che ricavo dagli if precedenti ha un valore 
if ($sql != "")  { 
   $result = mssql_query($sql); 

   //verifichi il risultato se diverso da 0. Se fallisce significa che non ci sono tabelle nel db 
   if (!$result) { 
       echo "DB Error, could not list tablesn"; 
      //echo 'MSSQL ERROR: '.mssql_get_last_message(); 
      exit; 
   } 
?> 
<?php 
if(mssql_num_rows($result) == 0) die("No record"); 
echo '<table width="50">'; 
echo '<table border="1" width="10" bordercolor="#000000" cellspacing="0">'; 
echo '<tr>'; 

for($i =0; $i < mssql_num_fields($result); $i++) { 
   echo '<th bgcolor= "FF0000"  width="10" bordercolor="blue">'.'<font size=1>'.'<font face=Verdana, Arial, Helvetica, sans-serif color=black>'. mssql_field_name($result, $i) . '</th>'; 

} 
echo '</tr>'; 
while ($row = mssql_fetch_array($result, MSSQL_ASSOC)) { 
   echo '<tr>'; 
   foreach($row as $val) { 
     echo '<td width="10" bordercolor="black">'.'<font size=1>'.'<font face=Verdana, Arial, Helvetica, sans-serif color=black>' . $val . '</td>'; 
   } 
   echo '</tr>'; 

} 
echo '</table>';

Grazie Lidia

risposto 8 anni fa
lid
lid
1
X 0 X

Ciao,

potresti creare una funzioni che ti effettui le sostituzioni che ti sevono ed inserirla in testata alla pagina.

Una cosa tipo questo:

function nomefunzione($str) {
  $str = str_replace("_", " ",  $str);
  $str = str_replace("Percent", "%", $str);
  return $str;
}

Il punto del codice in cui richiamarla è quando recuperi il nome del campo con la funzione "mssql_field_name" in questo modo:

nomefunzione(mssql_field_name($result, $i))

 :bye:

Zeta

P.S.: Ovviamente nomefunzione è fittizio e puoi scrivere quello che vuoi!!!!

risposto 8 anni fa
zeta80
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda

Domande simili