Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    108

    select che mostra solo annoCiao atuuti!, sono una neofita

    Ho letto vari post ma sono ancora all'inizio e non so se sia possibile fare in modo che da una select si possa vedere solo l'anno e non il giorno/mese /anno.
    Vorrei che es: si vedesse solo 2008 e scegliendolo l'utente vedesse tutte le notizie del 2008
    Solo che nel db ho il campo : "data" che contiene 28/10/2008, 10/05/2008 etc
    Vi posto il mio codice, il quale funziona ma fa l'elenco così:28/10/2008 e non solo 2008


    <form method="post" action="notizie_scelte.php">
    <?php
    //fai la connessione al database.
    include('connect.php');
    //fai una query
    $query = mysql_query("SELECT year(data) DATE_FORMAT(data, '%d.%m.%y') FROM notizie");
    //apro il tag select per il menu a tendina
    echo "<select name=\"sceltadata\" onChange=\"submit();\" style=\"font-family: Arial; font-size: 8 pt; font-weight: bold\" size=\"1\" >";
    //metto i risultati della query in un array e poi faccio un ciclo
    while($row = mysql_fetch_array($query))
    {//stampo option con value uguale alla data e il testo è la data
    echo "<option value=\"".$row['data']."\">".$row['data']."</option>";
    }
    //finito il ciclo chiudo il tag select
    echo"</select>";
    ?>
    </form>


    Grazie japan
    Preferisco morire per qualcosa in cui credo che per qualcosa che ritengo vero,la vita di un artista è un lungo e interminabile suicidio e in fondo non mi dispiace che sia cosi..(O.Wilde)

  2. #2
    Utente di HTML.it L'avatar di wdb
    Registrato dal
    Nov 2002
    Messaggi
    155
    Modifica la select:

    Codice PHP:
    <$query mysql_query("SELECT year(data)'data' FROM notizie"); 

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    108
    Grazie funziona!!, l'unico problema è che mi mostra tipo
    2009
    2008
    2008
    2008
    2008
    2007


    se ho tipo 4 notizie del 2008 lui ripete 2008 per n volte a seconda di quante ce ne sono nel db...
    ma come si può "dirgli" di mostrarlo 1 sola volta?

    grazie ancora
    japan
    Preferisco morire per qualcosa in cui credo che per qualcosa che ritengo vero,la vita di un artista è un lungo e interminabile suicidio e in fondo non mi dispiace che sia cosi..(O.Wilde)

  4. #4
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    devi usare DISTINCT nella query..
    prova e se non riesci chiedi pure...
    http://www.stardata.it/articoli_it/d...ticoli_it.html
    questo ti può essere di aiuto..

  5. #5
    Utente di HTML.it L'avatar di wdb
    Registrato dal
    Nov 2002
    Messaggi
    155
    Bene, un po' per volta ci arriviamo

    Codice PHP:
    <$query mysql_query("SELECT DISTINCT(year(data))'data' FROM notizie"); 

  6. #6
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    volevo farcelo arrivare da solo..
    comunque qua trovi robe interessanti sulle query..
    http://database.html.it/guide/lezion...-con-le-query/

  7. #7
    Ciao volevo suggerirti di cambiare il nome del campo "data" visto che data è una parola riservata.
    Adesso non ti da problemi, ma in applicazioni comomplesse potrebbero esserci.
    Ciao
    Scuba
    Stefano De Simone
    http://www.blackice.it Raccolta Script,C#,php,Ajax

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    108
    Grazie a tutti per i consigli e le dritte molto utili.
    Con DISTINCT funziona benissimo!!

    Non me ne avete a male se vi chiedo un'altro aiuto perchè sono proprio sullo scarso...
    la pagina che poi visualizza la scelta per anno: notizie_scelte.php
    ha dentro questo codice


    <?php
    // CONNESSIONE AL DATABASE
    include('connect.php');
    $data=$_POST['sceltadata'];
    //CREAZIONE QUERY
    $sql = "SELECT id, titolo, abstract, data FROM notizie";
    $result = mysql_query($sql);
    $array = mysql_fetch_array($result);
    $id=$array ['id'];
    $data=$array ['data'];
    $titolo=$array ['titolo'];
    ?>

    non riesce però a restituire la mia scelta dall'array sceltadata'...cioè mi mostra sempre lo stesso risultato....so che il codice vi farà inorridire ma qualcuno sa come recuperarlo??

    grazie japan
    Preferisco morire per qualcosa in cui credo che per qualcosa che ritengo vero,la vita di un artista è un lungo e interminabile suicidio e in fondo non mi dispiace che sia cosi..(O.Wilde)

  9. #9
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    Codice PHP:
    // CONNESSIONE AL DATABASE
    include('connect.php');
    $data=$_POST['sceltadata'];
    //CREAZIONE QUERY
    $sql "SELECT  id, titolo, abstract, data FROM notizie";
    $result mysql_query($sql);

    while(
    $row mysql_fetch_array($result)) { 

    echo 
    $id "
    "
    ;
    echo 
    $data  "
    "
    ;
    echo 
    $titolo "
    "
    ;

    prova che l'ho scritto al volo e magari ho scritto una fagggggianata..

  10. #10
    Utente di HTML.it L'avatar di wdb
    Registrato dal
    Nov 2002
    Messaggi
    155
    Forse perche' non hai messo la chiave di ricerca nella SELECT (la WHERE condition).

    Occorre pero' avere alcune certezze se fai una select di quel tipo: prima di tutto che sei sicura che SQL ti ritorni una ed una sola ricorrenza a fronte della chiave di ricerca, altrimenti, se non sbaglio, ti ritornera' casualmente una o l'ultima ricorrenza presente nel DB con quella chiave.

    Tanto per fare un esempio concreto:

    Codice PHP:
    $cognome "";
    $nome    "";
    $sql "SELECT AD_Cognome,            " .
           
    "       AD_Nome                " .
           
    "  FROM $tabella               " .
           
    " WHERE AD_Matricola = '$matr' ";
    $query mysql_query($sql) or die (errore_server_istr ($sql));
    $dati  mysql_fetch_array($query);
    $num   mysql_numrows($query);
    if (
    $num <> 0) {
        
    $cognome $dati['AD_Cognome'];
        
    $nome    $dati['AD_Nome'];

    Prima di memorizzare i dati, verifico se il DB mi ha ritornato qualcosa (if ($num <> 0) {)

    Altrimenti l'esempio di telegio puo' andare benissimo per recuperare piu' righe dal DB, magari con l'aggiunta della WHERE condition nella SELECT.

    Prova ad adattare l'esempio al tuo caso.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.