Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 32
  1. #1
    Utente di HTML.it L'avatar di noos
    Registrato dal
    Jul 2003
    Messaggi
    1,001

    come non far visualizzare sempre gli stessi dati

    ciao ragazzi, problema

    ho un form che inserisce dei dati su un DB

    per non avere una duplicazione di dati su MySQL, con la funzione refresh del BRowser, ho utilizzato un header

    così ho la pagina del form pagina1.php che nell'action va a richiamare la pagina2.php
    la quale con header mi fa ritornare alla pagina1.php per un nuovo inserimento


    ora che ho fatto, il cliente vuole vedere nella pagina1.php i dati inseriti

    quì iniziano i problemi, nel momento in cui inserisco il secondo record, nella maschera di riepilogo dei dati visualizzo sempre e cmq il primo record che ho inserito la prima volta


    ho provato a distruggere le variabili che gli passo ma non va


    posto il codice

    pagina1.php


    Codice PHP:
    <?php
    $formlibro 
    = <<<FORM
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
      <meta http-equiv="content-type" content="text/html; charset=windows-1250">
     <title>modulo host</title>
     <link rel="stylesheet" type="text/css" href="host.css" media="screen, pojection" />
      </head>
      <body>
    <form method = "POST" action = "pagina2.php" name="form">


    <table
      <tbody>
      <tr>
    <th>libro</th><th>edizione</th><th>genere</th><th>prezzo</th></tr>

    <tr>
    <td><input name="descrizione_sw" type="text" size="50" value=
    $libro></td>
    <td><input name="versione" type="text" size="20" value=
    $edizione></td>
    <td><input name="data" type="text" size="20" value=
    $genere></td>
    <td><input name="operatore" type="text" size="20" value=
    $prezzo></td>
    </tr>

    <tr><td colspan="4">
    <input type="submit" value="Inserisci il record" name="submit"> 
    <input type="reset" value="Cancella" name="reset"></td>
    </tr> 
    </tbody>
    </table>
     </fieldset>

    </form>
      </body>
    </html>
    FORM;





    require (
    "inc.php");
    require (
    "conn.php");



    $sql2="SELECT * FROM libri LIMIT 1";


    //$res=mysql_query($sql2);

    //$counter=1;
    //while($row=mysql_fetch_array($res))


    $risultati_mysql=mysql_query($sql2,$connessione);
    $counter=1;
    $num_righe=mysql_num_rows($risultati_mysql);
        
        if  ( 
    $num_righe == ) {
    echo 
    "Spiacente, non ci sono informazioni";
    }else {
    # abbiamo dei risultati

    echo "<table border=\"1\">
      <caption>Riepilogo dati inseriti</caption>
      <tbody>"
    ;

    echo 
    "<tr><th>libro</th><th>edizione</th><th>genere</th><th>prezzo</th></tr>";


    while (
    $riga=mysql_fetch_array($risultati_mysql))

    {
    $libro=$riga["libro"];
    $edizione=$riga["edizione"];
    $genere=$riga["genere"];
    $prezzo=$riga["prezzo"];


    {
    if (
    $counter%1=='0')
    {
    echo 
    "
    <tr>
    <td>
    $riga[libro]</td>
    <td>
    $riga[edizione]</td>
    <td>
    $riga[genere]</td>
    <td>
    $riga[prezzo]</td>
    </tr>"
    ;
    }
    $counter++;
    }

    }




    echo 
    "</tbody>";
    echo 
    "</table>";

    }

    echo 
    $formlibro;




    unset(
    $_GET);
    unset(
    $_POST);
    unset(
    $riga[libro], $riga[edizione], $riga[genere], $riga[prezzo]);
    mysql_close($connessione);

    ?>

      </body>
    </html>

    pagina2.php

    Codice PHP:

    <?php
    header 
    ("Location: pagina1.php");



    # insert_it.php

    # include il file esterno
    //require ("inc.php");
    require ("conn.php");




    $sql="INSERT INTO libri (libro,edizione,genere,prezzo) VALUES ('$_POST[libro]','$_POST[edizione]', '$_POST[genere]', '$_POST[prezzo]')";
    if (!
    mysql_query($sql,$connessione)) {
    echo 
    "Errore, inserimento del record non riuscito. Fai clic sul pulsante Indietro e prova di nuovo!
    "
    ;
       exit;
      } else {
    # inserimento OK, informa l'utente

    $id=mysql_insert_id();

    echo 
    "Tabella aggiornata, [".mysql_affected_rows()."] record aggiunti
    "
    ;
        echo 
    "Il record e' stato aggiunto "$id;
        
        }
        
    unset(
    $_GET);
    unset(
    $_POST);
    unset(
    $riga[libro], $riga[edizione], $riga[genere], $riga[prezzo]);
    ?>
    Vola solo chi ha il coraggio di farlo

  2. #2
    Codice PHP:
    $sql2="SELECT * FROM libri LIMIT 1"
    Ahem, in questo modo prendi sempre lo stesso dato, prova a dargli un'ordinamento per qualche campo

  3. #3
    Utente di HTML.it L'avatar di noos
    Registrato dal
    Jul 2003
    Messaggi
    1,001
    niente da fare

    ho dato un'ordinamento

    $sql2="SELECT * FROM libri ORDER BY libro LIMIT 1";


    continuo a visualizzare sempre il primo record inserito
    Vola solo chi ha il coraggio di farlo

  4. #4
    o_O okay, quindi non hai tipo un campo data riferito a quando viene inserito giusto?

  5. #5
    Utente di HTML.it L'avatar di noos
    Registrato dal
    Jul 2003
    Messaggi
    1,001
    scusami, ma non ho capito cosa intendi
    Vola solo chi ha il coraggio di farlo

  6. #6
    se tu gli dai limit 1, ed il campo non è ordinato per qualcosa la query pesca sempre lo stesso dato se tu ordini per il campo libro, anche se ordinassi correttamente, avresti sempre lo stesso campo, con che logica inseriscono i campi gli utenti? hanno un campo data per vedere quando fanno l'inserimento oppure non è importante? c'è un campo che possiamo usare oppure dobbiamo ingegnarci?

    Ah, una query al volo è difficile ma "possibile" non l'ho mai provata ma provala te

    Codice PHP:
    $query "SELECT * FROM libri";
    $elab_q mysql_query($query$db);
    $num_q mysql_num_rows ($elab_q);
    $init $num_q 1;
    $visual_q "SELECT * FROM libri LIMIT '$init','$num_q'";
    // da qui in poi stampi a video, fai una prova non sò se gli piacciono le variabili nel limit 

  7. #7
    Utente di HTML.it L'avatar di noos
    Registrato dal
    Jul 2003
    Messaggi
    1,001
    ciao goikiu grazie x la disponibilità

    purtroppo il codice non va

    cmq mi hai fatto venire un'idea

    se nel DB, x quella tabella imposto un campo primario????

    e nella query ordino x quel campo
    Vola solo chi ha il coraggio di farlo

  8. #8
    anche non primario andrebbe bene il campo, magari un campo autoincrement, e nella select di visualizzazione scegli la voce con il numero più alto =)

  9. #9
    Utente di HTML.it L'avatar di noos
    Registrato dal
    Jul 2003
    Messaggi
    1,001
    purtroppo auto_increment non lo posso mettere in quanto questa tabella prende id da un'altra tabella

    la funzione primary non ha dato il risultato che speravo
    Vola solo chi ha il coraggio di farlo

  10. #10
    beh puoi far te un'auto increment a mano o_O ... metti un campo tipo int tipo da 5 caratteri, ogni volta che aggiungi qualcosa prende l'ultimo numero del campo e quello nuovo è quello vecchio +1, ordini in modo inverso per quel campo in visualizzazione con limit 0,1 ed il gioco è fatto

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