Visualizzazione risultati 1 fino 22 di 22
Like Tree1Likes
  • 1 Post By

Discussione: stampa a video con formattazione

  1. #1
    Guest

    Predefinito stampa a video con formattazione

    Ciao a tutti
    dalla tabella del db recupero i dati campo1 e campo2

    Vorrei inserirli in una pagina html
    ad esempio nel seguente modo come nell'immagine allegata

    cioè formattando nel modo desiderato.
    Come fare?
    Grazie a tutti
    Codice HTML:
    <head>
    <title>Documento senza titolo</title>
    </head>
    
    
    <body>
    
    
    <?php 
    
    //Connessione
    
    $host = 'xxxxxxxxx';
    
    $db_user = 'xxxxxxxx';
    
    $db_psw = 'xxxxxxxxxx';
    
    $database = 'xxxxxxxxxxxxxx';
    
    //Connessione server
    
    $connessione= mysql_connect($host, $db_user, $db_psw) 
    or die ("Errore critico di Connessione al Database");
    
    //Selezione del database
    
    mysql_select_db($database)
    or die("Impossibile connetters al Database");
    
    // creo le variabili e carico i dati inviati dalla pagina modulo
    
    $id= $_POST['id'];
    $campo1= $_POST['campo1'];
    $campo2= $_POST['campo2'];
    
    //preparo la query di inserimento
    
    $query_insert = "INSERT INTO a_modello (id, campo1, campo2) VALUES ('$id','$campo1', '$campo2')"; 
    
    //lancio la query
    $risultato_insert = mysql_query($query_insert);
    
    //controllo l'esito
    if(!$risultato_insert) 
    {
        die("errore nella query $query_insert: " . mysql_error());
    }
    
    $query = mysql_query("SELECT id, campo1, campo2 FROM a_modello ORDER BY id DESC LIMIT 1") 
    or die("Errore query.<br/>" . mysql_error());
    
    //array dei risultati
    while ($row = mysql_fetch_array($query))
    {
    echo "Cognome ".$row['campo1']; echo " NOME: ".$row['campo2'];
    }
    ?> 
    
    </body>
    </html>
    Rispondi quotando Rispondi quotando
    Ultima modifica di codicec : 30-12-2016 alle ore 12.28.15

  2. #2
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Le funzioni mysql_* sono deprecate, dovresti sostituirle con mysqli o PDO.

    A parte questo, nel momento in cui recuperi i valori dei due campi (in $row['campo1'] e $row['campo2'], rispettivamente), si tratta solo di usare HTML e CSS per ottenere l'impaginazione che vuoi. Considerando l'immagine che hai mostrato, puoi usare un <div> in cui inserire le informazioni (allineandole a destra), ciascuna su una riga:
    Codice HTML:
    <div style="text-align: right">
      Spett.le <br />
      <strong><?= $row['campo1'] ?><br />
      Indirizzo<br />
      <strong><?= $row['campo2'] ?><br />
    </div>
    meglio ancora se fatto con CSS anziché l'orribile attributo style...

  3. #3
    Guest

    Predefinito

    grazie in anticipo
    ho inserito il codice postato ma viene visualizzato solo Spett.le e indirizzo.

    Codice HTML:
    <head>
    </head>
    
    
    <body>
    <p style="text-align: center;">&nbsp;</p>
    <div style="text-align: right">
      Spett.le <br />
      <strong><?= $row['campo1'] ?><br />
      Indirizzo<br />
      <strong><?= $row['campo2'] ?><br />
    </div>
    <p style="text-align: left;">
      <?php 
    //Connessione
     
    $host = 'xxxxxxxxxx';
     
    $db_user = 'xxxxxx';
     
    $db_psw = 'xxxxxxxxxxx';
     
    $database = 'xxxxxxxxxxx';
    
    
    
        $connessione= mysql_connect($host, $db_user, $db_psw)    
                or die ("Errore critico di Connessione al Database");
    
    
    
    mysql_select_db($database)
    or die("Impossibile connetters al Database");
    
    
    $risultato_insert = mysql_query($query_insert);
    
    
    
    
    $query = mysql_query("SELECT id, campo1, campo2 FROM a_tabella ORDER BY id DESC LIMIT 1") or die("Errore query.<br/>" . mysql_error());
    
    while ($row = mysql_fetch_array($query))
     {
        echo "".$row['campo1'];   
        echo "".$row['campo2']; 
    	
      }
    ?>
    
    </body>
    </html>
    Quale potrebbe essere il problema?
    Grazie
    Ultima modifica di codicec : 30-12-2016 alle ore 19.44.25

  4. #4
    Guest

    Predefinito

    I Dati vanno recuperati PRIMA di scriverli e non dopo.
    Col codice postato, al momento di scrivere il testo $row['campo1'] e $row['campo2'] non contengono alcun valore ed è quindi corretto che non venga stampato nulla.

  5. #5
    Guest

    Predefinito

    grazie come dovrei procedere?
    come dovrei posizionare il codice?
    Ultima modifica di codicec : 30-12-2016 alle ore 17.47.55

  6. #6
    Guest

    Predefinito

    Senza analizzare il codice, basterebbe invertire i blocchi

    Codice PHP:
    <head>
    </head>


    <body>
    <?php
    //Connessione

    $host = 'xxxxxxxxxx';

    $db_user = 'xxxxxx';

    $db_psw = 'xxxxxxxxxxx';

    $database = 'xxxxxxxxxxx';



    $connessione= mysql_connect($host, $db_user, $db_psw)
    or die (
    "Errore critico di Connessione al Database");



    mysql_select_db($database)
    or die(
    "Impossibile connetters al Database");


    $risultato_insert = mysql_query($query_insert);




    $query = mysql_query("SELECT id, campo1, campo2 FROM a_tabella ORDER BY id DESC LIMIT 1") or die("Errore query.<br/>" . mysql_error());

    while (
    $row = mysql_fetch_array($query))
    {
    echo
    "".$row['campo1'];
    echo
    "".$row['campo2'];

    }
    ?>


    <p style="text-align: center;">&nbsp;</p>
    <div style="text-align: right">
    Spett.le <br />
    <strong><?= $row['campo1'] ?><br />
    Indirizzo<br />
    <strong><?= $row['campo2'] ?><br />
    </div>
    <p style="text-align: left;">

    </body>
    </html>
    codicec likes this.

  7. #7
    Guest

    Predefinito

    grazie
    nonostante aver invertito il codice purtoppo mi stampa a video solo così

    Il valore del campo1 e campo2 e poi sotto

    Spett.le

    Indirizzo

    Ma dov'è l'errore? manca qualcosa?

    Grazie ancora
    Ultima modifica di codicec : 30-12-2016 alle ore 23.00.04

  8. #8
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Approfittiamone per dare una sistemata al codice...
    Codice PHP:
    <html>
    <head>
    </head>

    <body>
    <?php
    //Connessione
    $host = 'xxxxxxxxxx';
    $db_user = 'xxxxxx';
    $db_psw = 'xxxxxxxxxxx';
    $database = 'xxxxxxxxxxx';

    $connessione = mysql_connect($host, $db_user, $db_psw) or die ("Errore critico di Connessione al Database");
    mysql_select_db($database) or die("Impossibile connettersi al Database");

    // NOTA: Quale insert???
    $risultato_insert = mysql_query($query_insert);

    $query = mysql_query("SELECT id, campo1, campo2 FROM a_tabella ORDER BY id DESC LIMIT 1") or die("Errore query.<br/>" . mysql_error());

    // NOTA: non serve usare un ciclo while per recuperare una sola riga
    $row = mysql_fetch_array($query));
    ?>

    <div style="text-align: right">
    Spett.le <br />
    <strong><?= $row['campo1'] ?><br />
    Indirizzo<br />
    <strong><?= $row['campo2'] ?><br />
    </div>
    </body>
    </html>
    C'è una query di inserimento che non mi spiego.

    Dopodiché, se vuoi recuperare una sola riga non hai bisogno di un ciclo iterativo: recuperala e basta. Così facendo in $row hai accesso alla riga letta e puoi usarla successivamente nella stampa.

    PS: Dal punto di vista del codice è irrilevante, ma occhio ai nomi che usi:
    Codice PHP:
    $query = mysql_query(...);
    ciò che chiami $query non è una query ma un record set, sarebbe più chiaro chiamarlo $result.

  9. #9
    Guest

    Predefinito

    grazie in anticipo
    si infatti la query di inserimento non c'entra nulla, è capitata solo da un copia ed incolla da vecchio codice
    ho provato a sostituire $query con $result
    ma non riesco...
    come dovrebbe essere scritto?
    Grazie ancora
    Ultima modifica di codicec : 31-12-2016 alle ore 12.38.53

  10. #10
    Guest

    Predefinito

    Per la mancata stampa io proverei a non usare gli short tag (<?=) usando la versione estesa <?php echo... ?>
    Ultima modifica di vplaza : 31-12-2016 alle ore 14.03.15

  11. #11
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Integrando anche il suggerimento di vplaza (ahimé, gli short tag mi piacciono troppo ):
    Codice PHP:
    <html>
    <head>
    </head>

    <body>
    <?php
    //Connessione
    $host = 'xxxxxxxxxx';
    $db_user = 'xxxxxx';
    $db_psw = 'xxxxxxxxxxx';
    $database = 'xxxxxxxxxxx';

    $connessione = mysql_connect($host, $db_user, $db_psw) or die ("Errore critico di Connessione al Database");
    mysql_select_db($database) or die("Impossibile connettersi al Database");
    $result = mysql_query("SELECT id, campo1, campo2 FROM a_tabella ORDER BY id DESC LIMIT 1") or die("Errore query.<br/>" . mysql_error());

    $row = mysql_fetch_array($result));

    if (
    $row === false) {
    echo
    "Nessuna riga nella tabella!";
    }
    ?>

    <div style="text-align: right">
    Spett.le <br />
    <strong><?php echo $row['campo1']; ?><br />
    Indirizzo<br />
    <strong><?php echo $row['campo2']; ?><br />
    </div>
    </body>
    </html>
    Ho aggiunto un controllo che riporta l'assenza di righe nella tabella.
    Ultima modifica di mzanella : 31-12-2016 alle ore 12.56.28

  12. #12
    Guest

    Predefinito

    Grazie e buona anno a tutti,
    adesso funzionaa;
    a volte però esce l'errore internal server 500, oppure è lento il caricamento e mi è stato riferito che può dipendere da funzioni my_sql.
    In effetti prima di inserire il nuovo codice php andava tutto regolare.
    Come dovrei sostituire il codice mysqli?
    Grazie a tutti

  13. #13
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    l'errore internal server 500, oppure è lento il caricamento e mi è stato riferito che può dipendere da funzioni my_sql.
    Mi sembra strano: sono funzioni deprecate, quindi prima o poi verranno rimosse... ma fino a quel momento sono tenute a funzionare correttamente!

    Come dovrei sostituire il codice mysqli?
    Se vuoi usare la "versione" procedurale di mysqli cambia veramente poco: mysqli.

  14. #14
    Guest

    Predefinito

    ho provato a vedere il link
    dovrei aggiungere al codice di sopra solo le i dopo mysql ?
    Grazie ancora

  15. #15
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Praticamente sì. Cambia leggermente la funzione connect:
    Codice PHP:
    $connessione = mysqli_connect($host, $db_user, $db_psw, $database);
    e non si usa più la select_db. Inoltre per eseguire le query occorre passare il parametro $connessione:
    Codice PHP:
    $result = mysqli_query($connessione, "...");

  16. #16
    Guest

    Predefinito

    grazie molto gentile...
    a titolo informativo, iniziando a conoscere le potenzialità di php, è possibile generare un file word?
    In pratica: inserire i valori prelevati dal db campo 1 campo 2 all'interno di un file word precompilato con dei segnalibri?
    Grazie ancora

  17. #17
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    In teoria sì, ma farlo a mano è improponibile.
    Dovresti usare delle librerie, ma non so quante e quali siano installabili od utilizzabili su AlterVista PHP generate docx file.

  18. #18
    Guest

    Predefinito

    salve a tutti
    essendo presenti molti record, è possibile recuperare il record che ha l'id = all'id presente nel form di inserimento?
    Grazie a tutti

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

    Predefinito

    Non ho ben capito perché ti serve. Inoltre non conosco la struttura del database ma di solito gli id sono primary_key e non possono esserci più id con lo stesso valore.

    In ogni caso, per filtrare i dati devi usare la clausola "WHERE"

    Ciao!

  20. #20
    Guest

    Predefinito

    salve grazie per la risposta,
    in pratica dal componente fabrik installato in joomla riesco da un form ad inserire dei dati in una tabella.
    poi con il codice sopra postato riesco a stampare a video, e quindi in pdf, l'ultimo record inserito che compare nella lista di fabrik, presente nel database.
    pertanto dalla lista di fabrik è possibile selezionare il record selezionato.
    io vorrei stampare a video, e quindi richiamare solo il record selezionato dalla lista.

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

    Predefinito

    Ah ok, quindi necessiti di un form con quell'id. Sì, puoi farlo con il WHERE:
    Codice:
    'SELECT ... WHERE id='.$POST['id_form'];
    Con le opportune verifiche sul dato passato da form.

    Ciao!

  22. #22
    Guest

    Predefinito

    ho provato ad inserire
    $result = mysql_query("SELECT id, campo1, campo2 FROM a_tabella ORDER BY id DESC LIMIT 1 WHERE id='.$POST['id_form']") or die("Errore query.<br/>" . mysql_error());

    ma purtroppo esce l'errore.

Regole di scrittura

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