ALP - Aquileia Linux Project

Gruppo Utenti GNU/Linux – Free Software Bassa Friulana
Oggi è 23/06/2017, 17:26

Tutti gli orari sono UTC




Apri un nuovo argomento Rispondi all’argomento  [ 8 messaggi ] 
Autore Messaggio
 Oggetto del messaggio: Ordinare dei dati
MessaggioInviato: 25/06/2007, 10:16 
Non connesso
pinguino_imperatore
pinguino_imperatore
Avatar utente

Iscritto il: 25/10/2006, 10:15
Messaggi: 352
Ciao ragassssi!....
Ho una tabella in mysql costituita come segue
Codice:
----------------------------------------
|               tour                   |
----------------------------------------
id | day        |  number  | month     |
----------------------------------------
1  | lunedi     |  1       | Giugno    |
2  | giovedì    |  4       | Giugno    |
3  | domenica   |  7       | Giugno    |
4  | sabato     |  10      | Settembre |
5  | mercoledì  |  21      | Settembre |
6  | lunedì     |  3       | Agosto    |
7  | domenica   |  16      | Novembre  |
8  | venerdì    |  24      | Dicembre  |
----------------------------------------


Vorrei ricavare i dati in questo modo ovvero raggruppandoli per mese....

Cita:
Giugno
lunedi 1
giovedì 4
domenica 7


Agosto
lunedì 3

Settembre
sabato 10
mercoledì 21

Novembre
domenica 16

Dicembre
venerdì 24


Per recuperare i dati utilizzo il codice riportato qui sotto ottenedo tutti i dati ordinati per mese ma uno di seguito all'altro..... ho provato ad inserire nella funzione @mysql_query WHERE month= 'Giugno' e funziona ma ricavo solo quelli di luglio mentre vorrei ricavarli tutti e se presenti nella tabella...ho inoltre implementato la funzione con un array e un ciclo for,(vedi codice qui sotto)... ma no dè l'esito che speravo

Codice originale per il recupero dei valori
Codice:
$tours = @mysql_query("SELECT id, day, number, month FROM tour ORDER BY FIELD(month, 'Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno','Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'), number");

if (!$tours) {
   exit('Errore nel recuperare le date dei tour dal database. <br />' .
   'Error: ' . mysql_error() . '</p>');
   }
while ($tour = mysql_fetch_array($tours)) {
$id = htmlspecialchars($tour['id']);
$day = htmlspecialchars($tour['day']);
$number = htmlspecialchars($tour['number']);
$month = htmlspecialchars($tour['month']);

echo '<tr><td>' . $day .'</td><td>'. $number .'</td><td>'. $month .'</td></tr>';
}



Esito Codice originale
Cita:
lunedi 1 Giugno
giovedì 4 Giugno
domenica 7 Giugno
lunedì 3 Agosto
sabato 10 Settembre
mercoledì 21 Settembre
domenica 16 Novembre
venerdì 24 Dicembre




codice con ciclo e array
Codice:
for ($contatore=0; $contatore < $lungh_array; $contatore++) {

echo "$mesi[$contatore]<br>";

$tours = @mysql_query("SELECT id, day, number, month FROM tour WHERE month = '$mesi[$contatore]' ORDER BY number");

if (!$tours) {
   exit('Errore nel recuperare le date dei tour dal database. <br />' .
   'Error: ' . mysql_error() . '</p>');
   }
//echo "$mesi[$contatore]<br>";
while ($tour = mysql_fetch_array($tours)) {
$id = htmlspecialchars($tour['id']);
$day = htmlspecialchars($tour['day']);
$number = htmlspecialchars($tour['number']);
$month = htmlspecialchars($tour['month']);

echo '<tr><td>' . $day .'</td><td>'. $number .'</td></tr>';
}



Esito codice con ciclo e array
Cita:
Gennaio
Febbraio
Marzo
Aprile
Maggio
Giugno
Luglio
Agosto
Settembre
Ottobre
Novembre
Dicembre
lunedi 1
giovedì 4
domenica 7
lunedì 3
sabato 10
mercoledì 21
domenica 16
venerdì 24


Grazie a tutti per l'eventuale aiuto

_________________
Le cose migliori della vita sono gratis!
Seminate Linux che Windows si pianta da se!


Top
 Profilo  
 
 Oggetto del messaggio:
MessaggioInviato: 26/06/2007, 7:43 
Non connesso
pinguino_semplice
pinguino_semplice

Iscritto il: 19/01/2007, 8:42
Messaggi: 44
potrebbe essere solo questione di formattazione html ..

Codice:
echo "<table>";
for ($contatore=0; $contatore < $lungh_array; $contatore++) {

echo "<tr><td colspan=2>$mesi[$contatore]</td></tr>";

$tours = @mysql_query("SELECT id, day, number, month FROM tour WHERE month = '".$mesi[$contatore]."' ORDER BY number");

if (!$tours) {
   exit('Errore nel recuperare le date dei tour dal database. <br />' .
   'Error: ' . mysql_error() . '</p>');
   }
//echo "$mesi[$contatore]<br>";
while ($tour = mysql_fetch_array($tours)) {
$id = htmlspecialchars($tour['id']);
$day = htmlspecialchars($tour['day']);
$number = htmlspecialchars($tour['number']);
$month = htmlspecialchars($tour['month']);

echo '<tr><td>' . $day .'</td><td>'. $number .'</td></tr>';
}
}
echo "</table>";


Top
 Profilo  
 
 Oggetto del messaggio:
MessaggioInviato: 26/06/2007, 16:53 
Non connesso
pinguino_imperatore
pinguino_imperatore
Avatar utente

Iscritto il: 25/10/2006, 10:15
Messaggi: 352
COMPLIMENTI hai azzeccato!!!

Ora le date compaiono così
Codice:
Gennaio
Febbraio
Marzo
Aprile
Maggio
Giugno
lunedi 1
giovedì 4
domenica 7
Luglio
Agosto
lunedì 3
Settembre
sabato 10
mercoledì 21
Ottobre
Novembre
domenica 16
Dicembre
venerdì 24


Ed è correto ma posso eliminare i mesi per cui non ho nessuna data? Come faccio ?
Grazie

_________________
Le cose migliori della vita sono gratis!
Seminate Linux che Windows si pianta da se!


Top
 Profilo  
 
 Oggetto del messaggio:
MessaggioInviato: 26/06/2007, 19:31 
Non connesso
slacker
slacker
Avatar utente

Iscritto il: 07/10/2004, 12:41
Messaggi: 1296
Località: Terra - Italia - Friûl - Udine
where number <> ''

o <> 0 se il cambo number è numerico

_________________
Devo Proprio? pare di si :)


Top
 Profilo  
 
 Oggetto del messaggio:
MessaggioInviato: 26/06/2007, 20:42 
Non connesso
pinguino_imperatore
pinguino_imperatore
Avatar utente

Iscritto il: 25/10/2006, 10:15
Messaggi: 352
Ciao bdm, ma nel mio caso i mesi sono dati da un array un ciclo for e un echo...... anche se metto il where number <> 0 mi stampa comunque i nomi dei mesi
grazie

_________________
Le cose migliori della vita sono gratis!
Seminate Linux che Windows si pianta da se!


Top
 Profilo  
 
 Oggetto del messaggio:
MessaggioInviato: 27/06/2007, 13:00 
Non connesso
pinguino_semplice
pinguino_semplice

Iscritto il: 19/01/2007, 8:42
Messaggi: 44
Prova così ...
Codice:
echo "<table>";
for ($contatore=0; $contatore < $lungh_array; $contatore++) {

//echo "<tr><td colspan=2>$mesi[$contatore]</td></tr>";

$tours = @mysql_query("SELECT id, day, number, month FROM tour WHERE month = '".$mesi[$contatore]."' ORDER BY number");

if (!$tours) {
   exit('Errore nel recuperare le date dei tour dal database. <br />' .
   'Error: ' . mysql_error() . '</p>');
   }
//echo "$mesi[$contatore]<br>";
$nr=mysql_num_rows($tours);
if ($nr>0){
echo "<tr><td colspan=2>$mesi[$contatore]</td></tr>";
while ($tour = mysql_fetch_array($tours)) {
$id = htmlspecialchars($tour['id']);
$day = htmlspecialchars($tour['day']);
$number = htmlspecialchars($tour['number']);
$month = htmlspecialchars($tour['month']);

echo '<tr><td>' . $day .'</td><td>'. $number .'</td></tr>';
}
}
}
echo "</table>";
 


Ultima modifica di stabi il 27/06/2007, 13:08, modificato 1 volta in totale.

Top
 Profilo  
 
 Oggetto del messaggio:
MessaggioInviato: 27/06/2007, 13:07 
Non connesso
pinguino_semplice
pinguino_semplice

Iscritto il: 19/01/2007, 8:42
Messaggi: 44
oppure partendo dal primo codice ...
Codice:
echo "<table>";
$tours = @mysql_query("SELECT id, day, number, month FROM tour ORDER BY FIELD(month, 'Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno','Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'), number");
$old='';
if (!$tours) {
   exit('Errore nel recuperare le date dei tour dal database. <br />' .
   'Error: ' . mysql_error() . '</p>');
   }
while ($tour = mysql_fetch_array($tours)) {

        $id = htmlspecialchars($tour['id']);
        $day = htmlspecialchars($tour['day']);
        $number = htmlspecialchars($tour['number']);
        $month = htmlspecialchars($tour['month']);
        if ($old<>$month ) {
          echo "<tr><td colspan=2>$month</td></tr>";
          $old=$month;
        }
        echo '<tr><td>' . $day .'</td><td>'. $number .'</td></tr>';
}
echo "</table>";


Top
 Profilo  
 
 Oggetto del messaggio:
MessaggioInviato: 28/06/2007, 11:41 
Non connesso
pinguino_imperatore
pinguino_imperatore
Avatar utente

Iscritto il: 25/10/2006, 10:15
Messaggi: 352
Grazie stabi, funge tutto alla grande..... ma al mattino fai colazione con pane e php??? :mrgreen: :mrgreen: :mrgreen:

_________________
Le cose migliori della vita sono gratis!
Seminate Linux che Windows si pianta da se!


Top
 Profilo  
 
Visualizza ultimi messaggi:  Ordina per  
Apri un nuovo argomento Rispondi all’argomento  [ 8 messaggi ] 

Tutti gli orari sono UTC


Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite


Non puoi aprire nuovi argomenti
Non puoi rispondere negli argomenti
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi inviare allegati

Cerca per:
Vai a:  
cron
Powered by phpBB® Forum Software © phpBB Group
Traduzione Italiana phpBBItalia.net basata su phpBB.it 2010
[ Time : 0.029s | 13 Queries | GZIP : Off ]