Problema numerazione news

Discussione in 'PHP' iniziata da pinoshine, 22 Novembre 2013.

  1. pinoshine

    pinoshine Utente Attivo

    Registrato:
    15 Settembre 2012
    Messaggi:
    95
    Mi Piace Ricevuti:
    0
    Punteggio:
    0
    Ciao a tutti, ho un problema con la numerazione quando inserisco una news, nella tabella delle news ho una riga chiamata ordine composta cosi':
    Codice:
    `ordine` int(11) NOT NULL,
    dove all'interno viene scritto un numero di ordinamento in base alla mia scenda fatta dal gestionale in modo cosi' da scegliere quali news voglio vedere per prime, il problema e' quando inserisco una news questa me la trovo per prima con il numero "0" quando io vorrei che prendesse l'ultimo numero dell'ordinamento.
    Grazie
     
  2. borgo italia

    borgo italia Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    4 Febbraio 2008
    Messaggi:
    16.025
    Mi Piace Ricevuti:
    146
    Punteggio:
    63
    Sesso:
    Maschio
    Località:
    PR
    Home Page:
    ciao
    se non ho capito male il problema.
    prima di fare l'insert potresti fare una query di select tipo (schematizzo)
    PHP:
    $query="SELECT MAX(ordine) FROM tabella";
    //..
    $ordine=$riga['ordine']+1;
    //...
    //e quando fai l'insert
    $query="INSERT INTO tabella(...,'ordine'...) VALUES(...,$ordine,...)";
     
  3. pinoshine

    pinoshine Utente Attivo

    Registrato:
    15 Settembre 2012
    Messaggi:
    95
    Mi Piace Ricevuti:
    0
    Punteggio:
    0
    Grazie per l'aito, ho provato ma purtroppo ho visto che la news viene numerata con il numero "1" su tutte quelle che inserisco, questo e' il codice:
    PHP:
    <?
                                
                                
                                
    $ordine=$riga['ordine']+1

                                
    $id=$_GET["idnews"];
                                
                                 
                                    require_once 
    'config.php' ;
                                    
                                    
    $query="SELECT MAX(ordine) FROM news";

                                    

                                    
    $sql "INSERT INTO news (ordine) VALUES('$ordine')";
                                    
    $result mysql_query ($sql,$connessione) or die ("query non funzionante = $sql"); ?>
    forse sbaglio qualcosa nel codice? Grazie
     
  4. borgo italia

    borgo italia Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    4 Febbraio 2008
    Messaggi:
    16.025
    Mi Piace Ricevuti:
    146
    Punteggio:
    63
    Sesso:
    Maschio
    Località:
    PR
    Home Page:
    ciao
    così come hai scritto non fa nulla di sicuro, comunque, sempre se non ho capito male, il lavoro di leggere il max(ordine) devi farlo dove inserisci la news.
    immagino che tu abbia uno script per l'inserimento della news (schematizzo ancora)
    PHP:
    <?php
    //....
    $titolo=$_POST['titolo'];//titolo della news che inserisci
    $testo=$_POST['testo'];// testo della news
    //immagino i vari controlli su quanto inserito
    //dati di connessione
    $query="SELECT MAX(ordine) FROM news";
    $ris=mysql_query($query);
    $riga=mysql_fetch_array($ris);
    $ordine=$riga['ordine']+1;
    $query="INSERT INTO news(titolo,testo,ordine) VALUES('$titolo','$testo',$ordine)";
    //ecc...
    ?>
    se poi vuoi uppare 'ordine', quello è un'altra cosa
     
  5. pinoshine

    pinoshine Utente Attivo

    Registrato:
    15 Settembre 2012
    Messaggi:
    95
    Mi Piace Ricevuti:
    0
    Punteggio:
    0
    avevo scritto solo il succo del codice non tutto, comunque mi sono copiato il codice ma purtroppo continua a numerarmi la riga dell'ordine con il numero "1", il mio problema sta che nella home ho 8 news che voglio far vedere ed ogni volta che aggiungo una news quest'ultima mi compare nella home al primo posto, ce' qualche altro modo per evitare questo? Es. ho 10 news, vorrei che lo script aggiungendo una articolo automaticamente inserisce il numero 11 nella colonna "ordine". Grazie

    Edit: ho notato che
    PHP:
    $query="SELECT MAX(ordine) FROM news";
    non legge l'ultimo numero per questo mi rinomina sempre in "1"
     
    Ultima modifica: 22 Novembre 2013
  6. borgo italia

    borgo italia Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    4 Febbraio 2008
    Messaggi:
    16.025
    Mi Piace Ricevuti:
    146
    Punteggio:
    63
    Sesso:
    Maschio
    Località:
    PR
    Home Page:
    ciao
    prova a modificarla così
    PHP:
    $query="SELECT ordine FROM news ORDER BY ordine LIMIT 1";
    dovrebbe prenderti il maggiore
    dimenticavo eventualmente metti ORDER BY ordine DESC
     
  7. pinoshine

    pinoshine Utente Attivo

    Registrato:
    15 Settembre 2012
    Messaggi:
    95
    Mi Piace Ricevuti:
    0
    Punteggio:
    0
    Grazie ancora ma proprio non ne vuole sapere, scrive sempre "1" allora ho cambiato questo:
    PHP:
    $ordine=$riga['ordine']+100;
    cosi' mi scrive nella riga ordine il numero "100" in questo modo quando aggiungo una news non me la trovo in home!!! Grazie
     
  8. borgo italia

    borgo italia Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    4 Febbraio 2008
    Messaggi:
    16.025
    Mi Piace Ricevuti:
    146
    Punteggio:
    63
    Sesso:
    Maschio
    Località:
    PR
    Home Page:
    ciao
    d'accordo, però mi sembra che ci sia qualcosa che non va
    che tu scriva
    $ordine=$riga['ordine']+1;
    o
    $ordine=$riga['ordine']+100;
    se mettendo +1 trovi sempre 1, mettendo +100 dovresti trovare sempre 100
    metti un var_dump
    PHP:
     <?php
    //....
    $titolo=$_POST['titolo'];//titolo della news che inserisci
    $testo=$_POST['testo'];// testo della news
    //immagino i vari controlli su quanto inserito
    //dati di connessione
    $query="SELECT ordine FROM news ORDER BY ordine LIMIT 1"
    $ris=mysql_query($query);
    $riga=mysql_fetch_array($ris);
    var_dump($riga['ordine']);//qui
    $ordine=$riga['ordine']+1;
    $query="INSERT INTO news(titolo,testo,ordine) VALUES('$titolo','$testo',$ordine)";
    var_dump($query);//e anche qui
    //ecc...
    ?> 
    e posta cosa riportano
     
  9. Longo8

    Longo8 Utente Attivo

    Registrato:
    28 Marzo 2011
    Messaggi:
    1.694
    Mi Piace Ricevuti:
    0
    Punteggio:
    36
    Questo codice funziona come detto solo se viene fatta una ridenominazione del campo:
    PHP:
    $query="SELECT MAX(ordine) as ordine FROM tabella"
    //.. 
    $ordine=$riga['ordine']+1
    //... 
    //e quando fai l'insert 
    $query="INSERT INTO tabella(...,'ordine'...) VALUES(...,$ordine,...)";  
    Prova un po'.
     
Sto caricando...

Condividi questa Pagina