Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 28
  1. #1

    [PHP] Query che funziona in differita

    Questo è il codice della mia index:
    Codice PHP:
    <?php
    echo('
    <html>
    <head>
    <title>Home</title>
    <link rel="stylesheet" href="css/style.css" type="text/css">
    </head>
    '
    );


    include(
    '/blog/config.php');

    echo(
    '
    <body>
    <div class="logo">
    <div class="testa">
    [url="/blog/registrazione.php"]Registrati[/url] | [url="/blog/login.php"]Loggati[/url] | [url="/blog/logout.php"]Logout[/url]

    </div>
    </div>

    <div class="menu">Prova</div>

    <div class="body">
    <table width="700px;">
    <tr><td colspan="3"><h1>Ultimi Articoli</h1></td></tr>
    '
    );

    $query="SELECT*FROM articoli ORDER BY data DESC";
    $result=mysql_query($query$conn) or die ("Errore: ".mysql_error());
    while(
    $assoc=mysql_fetch_assoc($result))
    {
        echo(
    '
        
        <tr>
        <td>[b]'
    .$assoc['titolo']. '[/b]</td>
        <td>'
    .$assoc['autore']. '</td>
        <td>'
    .$assoc['data'].'</td>
        </tr>
        <tr>
        <td colspan="3">'
    .$assoc['testo'].'</td>
        </tr>
        
        '
    );
        
        
    }

    echo(
    '
    </table>
    </div>
    '
    );

    echo(
    '
    <div class="colonna">
    '
    );

    /* PRIMO BOX */
    echo('
    <div class="box">
    <table width="450px;">
    '
    );

        
    $query="SELECT*FROM articoli WHERE rubrica='primoBox' ORDER BY data DESC";
        
    $result=mysql_query($query$conn) or die ("Errore: ".mysql_error());
        
    $assoc=mysql_fetch_assoc($result);

    rubrica($assoc['rubrica']);

    while(
    $assoc=mysql_fetch_assoc($result))
    {
        echo(
    '
        
        <tr>
        <td><h2>'
    .$assoc['titolo']. '</h2></td>
        <td>di [i]'
    .$assoc['autore']. '[/i]</td>
        <td>'
    .$assoc['data'].'</td>
        </tr>
        <tr>
        <td colspan="3">'
    .$assoc['testo'].'</td>
        </tr>
        
        '
    );
        break;
        
    }

    echo(
    '
    </table>
    </div>
    '
    );

    /* FINE PRIMO BOX */
    /* SECONDO BOX */
    echo('
    <div class="box">
    <table width="450px;">
    '
    );

        
    $query="SELECT*FROM articoli WHERE rubrica='secondoBox' ORDER BY data DESC";
        
    $result=mysql_query($query$conn) or die ("Errore: ".mysql_error());
        
    $assoc=mysql_fetch_assoc($result);

    rubrica($assoc['rubrica']);

    while(
    $assoc=mysql_fetch_assoc($result))
    {
        echo(
    '
        
        <tr>
        <td><h2>'
    .$assoc['titolo']. '</h2></td>
        <td>di [i]'
    .$assoc['autore']. '[/i]</td>
        <td>'
    .$assoc['data'].'</td>
        </tr>
        <tr>
        <td colspan="3">'
    .$assoc['testo'].'</td>
        </tr>
        
        '
    );
        break;
        
    }

    echo(
    '
    </table>
    </div>
    '
    );

    /* FINE SECONDO BOX */
    /* TERZO BOX */
    echo('
    <div class="box">
    <table width="450px;">
    '
    );

        
    $query="SELECT*FROM articoli WHERE rubrica='terzoBox' ORDER BY data DESC";
        
    $result=mysql_query($query$conn) or die ("Errore: ".mysql_error());
        
    $assoc=mysql_fetch_assoc($result);

    rubrica($assoc['rubrica']);

    while(
    $assoc=mysql_fetch_assoc($result))
    {
        echo(
    '
        
        <tr>
        <td><h2>'
    .$assoc['titolo']. '</h2></td>
        <td>di [i]'
    .$assoc['autore']. '[/i]</td>
        <td>'
    .$assoc['data'].'</td>
        </tr>
        <tr>
        <td colspan="3">'
    .$assoc['testo'].'</td>
        </tr>
        
        '
    );
        break;
        
    }

    echo(
    '
    </table>
    </div>
    '
    );

    /* FINE TERZO BOX */

    echo('
    </div>
    '
    );


    echo(
    '
    </div>
    '
    );

    echo(
    '</body></html>');

    ?>
    Il problema è il seguente:

    Inserisco il primo post assegnandogli la rubrica 'primoBox'; nella colonna delle rubriche compare solo il titolo 'primoBox'.

    Inserisco un secondo post assegnandogli la stessa rubrica; adesso mi compare il testo del primo post, mentre invece dovrebbe comparire il secondo.

    Inserisco un terzo post, sempre con la stessa rubrica;adesso nella colonna compare il secondo ma non il terzo. Insomma funziona in differita.

    Non capisco il perché, mi scuso molto umilmente per la mia ignoranza, spero possiate aiutarmi; sicuramente si tratta di un mio stupidissimo errore.

    Allego uno screenshot della pagina:

  2. #2
    Se fai così:

    Codice PHP:
    ...
        
    $assoc=mysql_fetch_assoc($result);

    rubrica($assoc['rubrica']);

    while(
    $assoc=mysql_fetch_assoc($result)) 
    ... 
    il primo mysql_fetch_assoc() ti fa avanzare automaticamente il puntatore al resultset sul secondo risultato.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Originariamente inviato da satifal
    Se fai così:

    Codice PHP:
    ...
        
    $assoc=mysql_fetch_assoc($result);

    rubrica($assoc['rubrica']);

    while(
    $assoc=mysql_fetch_assoc($result)) 
    ... 
    il primo mysql_fetch_assoc() ti fa avanzare automaticamente il puntatore al resultset sul secondo risultato.
    Grazie Satifal.
    Per me è un mistero ... chissà perché cavolo avevo aggiunto quel comando!

  4. #4
    Utente di HTML.it L'avatar di _debo
    Registrato dal
    Mar 2012
    residenza
    London, UK
    Messaggi
    858

    Re: [PHP] Query che funziona in differita

    Originariamente inviato da Giovanni Pili
    Questo è il codice della mia index:
    Codice PHP:
    <?php
    echo('
    <html>
    <head>
    <title>Home</title>
    <link rel="stylesheet" href="css/style.css" type="text/css">
    </head>
    '
    );

    echo(
    '
    <body>
    <div class="logo">
    <div class="testa">
    [url="/blog/registrazione.php"]Registrati[/url] | [url="/blog/login.php"]Loggati[/url] | [url="/blog/logout.php"]Logout[/url]

    </div>
    </div>

    <div class="menu">Prova</div>

    <div class="body">
    <table width="700px;">
    <tr><td colspan="3"><h1>Ultimi Articoli</h1></td></tr>
    '
    );

        echo(
    '
        
        <tr>
        <td>[b]'
    .$assoc['titolo']. '[/b]</td>
        <td>'
    .$assoc['autore']. '</td>
        <td>'
    .$assoc['data'].'</td>
        </tr>
        <tr>
        <td colspan="3">'
    .$assoc['testo'].'</td>
        </tr>
        
        '
    );
        
    echo(
    '
    </table>
    </div>
    '
    );

    echo(
    '
    <div class="colonna">
    '
    );

    /* PRIMO BOX */
    echo('
    <div class="box">
    <table width="450px;">
    '
    );

        echo(
    '
        
        <tr>
        <td><h2>'
    .$assoc['titolo']. '</h2></td>
        <td>di [i]'
    .$assoc['autore']. '[/i]</td>
        <td>'
    .$assoc['data'].'</td>
        </tr>
        <tr>
        <td colspan="3">'
    .$assoc['testo'].'</td>
        </tr>
        
        '
    );
        break;

    echo(
    '
    </table>
    </div>
    '
    );

    /* FINE PRIMO BOX */
    /* SECONDO BOX */
    echo('
    <div class="box">
    <table width="450px;">
    '
    );

        echo(
    '
        
        <tr>
        <td><h2>'
    .$assoc['titolo']. '</h2></td>
        <td>di [i]'
    .$assoc['autore']. '[/i]</td>
        <td>'
    .$assoc['data'].'</td>
        </tr>
        <tr>
        <td colspan="3">'
    .$assoc['testo'].'</td>
        </tr>
        
        '
    );
        break;

    echo(
    '
    </table>
    </div>
    '
    );

    /* FINE SECONDO BOX */
    /* TERZO BOX */
    echo('
    <div class="box">
    <table width="450px;">
    '
    );


        echo(
    '
        
        <tr>
        <td><h2>'
    .$assoc['titolo']. '</h2></td>
        <td>di [i]'
    .$assoc['autore']. '[/i]</td>
        <td>'
    .$assoc['data'].'</td>
        </tr>
        <tr>
        <td colspan="3">'
    .$assoc['testo'].'</td>
        </tr>
        
        '
    );

    echo(
    '
    </table>
    </div>
    '
    );

    /* FINE TERZO BOX */

    echo('
    </div>
    '
    );


    echo(
    '
    </div>
    '
    );

    echo(
    '</body></html>');

    ?>


    Perché ci si ostina ancora a far scrivere codice HTML a PHP?

  5. #5
    Torno a scrivere qui per un problema analogo, solo che stavolta la tabella non subisce modifiche; cioè i dati risultano nella tabella di mysql nel giusto ordine, ma i commenti inseriti risultano comunque in differita nel sito.

    Codice PHP:

    <?php
    /* COMMENTI PUBBLICATI */

    $title=@$_SESSION['titolo_post'];

    $query="SELECT*FROM commenti WHERE post='{$title}'";
    $result=mysql_query($query$conn) or die ("Errore: ".mysql_error());

    echo(
    '
    <table width="700px;">
    '
    );
    while(
    $assoc=mysql_fetch_assoc($result))
    {
        echo(
    '
    <tr><td>di:'
    .$assoc['utente'].'</td><td>il:'.$assoc['data'].'</td></tr>
    <tr><td colspan="2">'
    .$assoc['testo'].'</td></tr>
    '
    );
    }
    echo(
    '
    </table>
    '
    );

    ?>
    Codice PHP:

    <?php
    /* FORM DI INSERIMENTO COMMENTI */


    include('commenti_pubblicati.php');

    if(!@
    session_is_registered("Logged_utente"))
    {
        
    /* Non si può commentare */
    }else
    {
        
    $commentatore=@$_SESSION['utente'];
        
        echo(
    '
        
            <h1>Scrivi un nuovo commento</h1>
            <form method="post" action="#">
            <table width="700px;">
            <tr><td><textarea cols="80" name="testo"></textarea></td></tr>
            <tr><td><input type="submit" name="submit"/></td></tr>
            </table>
            </form>
        
        '
    );
        
        
    $post=@$_SESSION['titolo_post'];
        
    $utente=$commentatore;
        
    $testo=@$_POST['testo'];
        
        
    $query="INSERT INTO commenti (post, utente, testo) VALUES ('{$post}','{$utente}','{$testo}')";
        
    $result=mysql_query($query$conn) or die ("Errore nella query ".mysql_error());
    }

    ?>
    Cosa c'è che non va in questo caso?

  6. #6

    Codice PHP:
    $query="SELECT*FROM commenti WHERE post='{$title}' ORDER BY id ASC"//o desc se vuoi partire dall'ultimo, comunque l'id deve essere su auto_increment o aumentare ogni volta 
    Ps: Ti prego butta via quel codice e rifallo, è un completo pasticcio

  7. #7
    Originariamente inviato da Soop(this)

    Codice PHP:
    $query="SELECT*FROM commenti WHERE post='{$title}' ORDER BY id ASC"//o desc se vuoi partire dall'ultimo, comunque l'id deve essere su auto_increment o aumentare ogni volta 
    Ps: Ti prego butta via quel codice e rifallo, è un completo pasticcio

    Sì, è già su autoincrement. La cosa curiosa - per me - è che su mysql è tutto in regola. Comunque provo come mi hai suggerito e ti dico. No, non cambia niente... mi sembrava strano: se l'ID è già impostato su autoincrement è superfluo, no?

  8. #8
    Originariamente inviato da Giovanni Pili
    Sì, è già su autoincrement. La cosa curiosa - per me - è che su mysql è tutto in regola. Comunque provo come mi hai suggerito e ti dico. No, non cambia niente... mi sembrava strano: se l'ID è già impostato su autoincrement è superfluo, no?
    Con differita intendi nell'ordine numerico o che vengono commenti di altri post?

  9. #9
    Originariamente inviato da Soop(this)
    Con differita intendi nell'ordine numerico o che vengono commenti di altri post?

    Inserisco un primo commento: sotto il post vedo solo il nome utente e la parte del testo è vuota.

    Inserisco un secondo commento: ora compare il testo del precedente, ma non il secondo, e così via.

    Controllo su mysql ed è tutto a posto. Proprio non capisco da cosa dipende.

  10. #10
    Originariamente inviato da Giovanni Pili
    Inserisco un primo commento: sotto il post vedo solo il nome utente e la parte del testo è vuota.

    Inserisco un secondo commento: ora compare il testo del precedente, ma non il secondo, e così via.

    Controllo su mysql ed è tutto a posto. Proprio non capisco da cosa dipende.
    Non sono sicuro ma potrebbe dipendere dalla variabile di sessione $_SESSION['titolo_post']
    perchè invece di utilizzare una sessione non usi una variabile get?

    A proposito dove si trova il session_start() ?
    Non si finisce mai di imparare...

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 © 2021 vBulletin Solutions, Inc. All rights reserved.