Visualizzazione risultati 1 fino 5 di 5

Discussione: tempo scrittura post, problema

  1. #1
    Guest

    Predefinito tempo scrittura post, problema

    Ciao a tutti, ho un problema.
    Io ho creato una tabella nel database dove specifico due campi, uno per il post e uno per il tempo, vorrei che ogni post avesse il suo tempo che dipendentemente da quando è stato scritto visualizzi nella pagina quanto tempo fa è stato scritto,
    io ho provato a fare così

    Codice PHP:
    $getime=mysql_query("SELECT * FROM post ORDER BY tempo DESC");
    while (
    $getime_post=mysql_fetch_assoc($getime)){
    $tempopost = $getime_post['tempo'];
    $post = $getime_post['post'];

    $diff=time()-$tempopost;
    switch (
    1){
    case(
    $diff < 60):
    $tempo= $diff;
    if (
    $count == 0)
    $tempo= "al momento";
    else if (
    $count == 1)
    $suffisso = "secondo";
    else
    $suffisso = "secondi";
    break;

    case (
    $diff > 60 && $diff < 3600 ):

    $tempo= floor($diff/60);
    if (
    $tempo== 1)
    $suffisso = "minuto";
    else
    $suffisso = "minuti";
    break;

    case (
    $diff > 3600 && $diff < 86400 ):

    $tempo= floor($diff/3600);
    if (
    $tempo== 1)
    $suffisso = "ora";
    else
    $suffisso = "ore";
    break;

    case (
    $diff > 86400 && $diff < 2629743):

    $tempo= floor($diff/36400);
    if (
    $tempo== 1)
    $suffisso = "giorno";
    else
    $suffisso = "giorni";
    break;

    case (
    $diff > 2629743 && $diff < 31556926):

    $tempo= floor($diff/2629743);
    if (
    $tempo== 1)
    $suffisso = "mese";
    else
    $suffisso = "mesi";
    break;

    case (
    $diff > 31156926):
    $tempo= floor($diff/31556926);
    if (
    $tempo== 1)
    $suffisso = "anno";
    else
    $suffisso = "anni";
    break;
    }


    echo
    "$post postato $tempo $suffisso fa";
    }
    Come mai tutti i post hanno lo stesso tempo?

  2. #2
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,753

    Predefinito

    Dopo che ho visto questo, ho smesso di leggere:

    Codice PHP:
    switch (1){
    case(
    $diff < 60):

    ...che vuol dire switch(1)?
    Poi, nei case non va una condizione, ma una costante!

    ...dovresti ripassare (o studiare) lo switch...

    Ciao!

  3. #3
    Guest

    Predefinito

    Antipatico

    Ho scritto switch(1) soltanto per vere un pretesto ad usare i case era inutile switchare qualcos'altro, che non per altro scritti così funzionano e non ho alcun problema, soltanto che non so perchè è come se distribuisse lo stesso valore a tutti quanti i valori che prendo, come se fosse un ciclo chiuso

    se riesci a spiegarmi perchè non mi dà differenti valori, ti ringrazio

    se no, pace

  4. #4
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,753

    Predefinito

    Il fatto che funziona non significa nulla; usare lo switch in quel modo è brutto.

    Comunque, prova a stampare il valore $tempopost ogni volta, per vedere se il problema sta nella lettura del db o nello switch.

    Comunque, se capita che la differenza di secondi è 60? oppure 86400 ? oppure 2629743? ... Alcuni > dovresti trasformarli in >=.

    Ciao!

  5. #5
    Guest

    Predefinito

    Sistemato, era solo un problema di lettura al db, comunque hai ragione ho usato il tutto in modo brutto, studierò lo switch.

    Grazie!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •