Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    183

    Aiutatemi a migliorare: semplice lettura da database

    Ciao!
    Quello che posto sotto è un codice per una semplice lettura, inserimento, modifica ed elimiazione di un dato in una semplice tabella MySQL. (Tabella composta solo da due campi)
    Un campo ID chiave primaria e un campo CAMPO contentente il dato.

    Sono sicuro che un programmatore esperto rimarrà disgustato dal mio modo di programmare.
    Vi chiedo di darmi alcuni consigli su come snellire questo mio modo di programmare.

    Questo codice funziona perfettamente con PHP4 mentre riporta una serie infiniti di errori con PHP5. Non mi sono ancora dedicato a cercare di capire PHP5, ma se fosse possibile, vi chiedo di correggere il mio listato in modo che sia compatibile anche con la versione più aggiornata.

    Riporto sotto il codice del mio file prova.php
    Il file richiede l'inclusione di due files che non riporterò
    prova_config.php -> con i miei dati per accedere al database in localhost
    prova_funzioni -> un file dove definisco alcune funzioni di base molto semplici

    prova.php :
    codice:
    <?php
    
    include("prova_funzioni.php");  // archivio funzioni
    
    include("prova_config.php");    // parametri di connessione al database
    
    $link=@mysql_connect( $dbhost, $dbuser , $dbpass )or die("Errore di connessione al server SQL: username o password errati");
    $dbw=mysql_select_db($dbname)or die("Errore di connessione al database");
    
    ?>
    
    <html>
    <head>
    <title>Prova</title>
    </head>
    <body>
    
    <?php
    
    /* ************ inserimento ***************** */
    
    if( isset ($_POST['ins']) )
    {
    
    $campo = $_POST['campo'];
    
    
    if ( strlen($campo) > 0 AND substr($campo, 0, 1) != ' ') 
    {
    $sql = "SELECT * FROM tabella ORDER BY campo ASC";
    
    $rs = mysql_query($sql, $link) or die ("Errore recupero dati" . mysql_error());
    $dati = array();
    while ($rec = mysql_fetch_array($rs))
    {
    $dati[] = $rec;
    }
    
    $id = ultimo_id (tabella, id);  // funzione presente nel file prova_funzioni.php che determina la prima chiave id disponibile
    
    mysql_select_db("my_db", $link);
    
    if (!mysql_query("INSERT INTO $dbname.`tabella` ( `id` , `campo`) VALUES ( \"$id\", \"$campo\" )") )
    {
    print("Attenzione, impossibile inserire il nuovo dato
    
    ");
    }
    else
    {
    /* print("inserito nuovo dato
    "); */
    }
    
    }
    else
    {
    echo"
    campo errato o vuoto
    
    ";
    }
    
    }
    
    /* ************ cancella ***************** */
    
    if( isset ($_POST['del']) )
    {
    
    $id = $_POST['id'];
    
    if (!mysql_query("DELETE FROM $dbname.`tabella` WHERE (`tabella`.`id` =  \"$id\") "))
    {
    print("Attenzione, impossibile eliminare dato 
    
    ");
    }
    else
    {
    /* print("[/b]eliminato dato 
    "); */
    }
    
    }
    
    /* ************ modifica ***************** */
    
    if( isset ($_POST['mod']) )
    {
    
    $id = $_POST['id'];
    $campo = $_POST['campo'];
    
    if ( strlen($campo) > 0 AND substr($campo, 0, 1) != ' ') 
    {
    mysql_select_db("my_db", $link);
    
    if (!mysql_query("UPDATE $dbname.`tabella` SET `campo` = \"$campo\" WHERE (`tabella`.`id` = \"$id\")") )
    {
    print("Attenzione, impossibile modificare campo 
    
    ");
    }
    else
    {
    /* print("modificato campo
    
    "); */
    }
    }
    else
    {
    echo"
    campo errato o vuoto
    
    ";
    }
    }
    
    /* ************ inizio ***************** */
    
    $sql = "SELECT * FROM tabella ORDER BY campo ASC";
    $rs = mysql_query($sql, $link) or die ("Errore recupero dati" . mysql_error());
    
    $dati = array();
    while ($rec = mysql_fetch_array($rs))
    {
    $dati[] = $rec;
    }
    
    ?>
    
    <table border=1>
    <tr>
    <td>[b]campo</td>
    </tr>
    
    <?php
    
    foreach ($dati as $d)
    {
    $id = $d['id'];
    $campo = $d['campo'];
    
    ?>
    
    <form method="post">
    <tr>
    <input type="hidden" name="id" value="<?php echo $id ?>" />
    <td><input name="campo" value="<?php echo $campo; ?>"</td>
    <td>
    <input type="submit" name="mod" value="modifica">
    <input type="submit" name="del" value="elimina">
    </form></td>
    </tr>
    
    <?php
    
    }
    
    ?>
    <form method="post">
    <tr>
    <td><input type="text" name="campo"></td>
    <td><input type="submit" name="ins" value="inserisci" /></form></td>
    </tr>
    </table>
    
    
    </form>
    
    </body>
    </html>

  2. #2

    Re: Aiutatemi a migliorare: semplice lettura da database

    Originariamente inviato da iorso
    Questo codice funziona perfettamente con PHP4 mentre riporta una serie infiniti di errori con PHP5...
    Sarebbe utile sapere di che genere di errori stiamo parlando.

    Originariamente inviato da iorso
    Riporto sotto il codice del mio file prova.php
    Il file richiede l'inclusione di due files che non riporterò
    prova_config.php -> con i miei dati per accedere al database in localhost
    prova_funzioni -> un file dove definisco alcune funzioni di base molto semplici
    Probabilmente gli errori vengono generati proprio dal file prova_funzioni dato che da una veloce occhiata non mi sembra ci sia nulla di strano nello script da te postato.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3

    Re: Aiutatemi a migliorare: semplice lettura da database

    Originariamente inviato da iorso
    Sono sicuro che un programmatore esperto rimarrà disgustato dal mio modo di programmare.
    si abbastanza

    quoto satifal. Come consiglio ti consiglierei di non fare tutte le operazioni nella stessa pagina, ma di farne una per l'aggiunta, una per la modifica,una per la visualizzazione e una per la cancellazione del record, in maniera da avere un codice più chiaro e modificabile (ti risparmio tutto il pippone sull'MVC e simile, nonchè l'uso di classi che nascondano l'uso delle api dello specifico produttore del db, in questo caso mysql, che non è tema del 3D)
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    183
    La mia domanda si riferiva principalmente allo snellimento del codice indipendente dal fatto che sia PHP4 o 5.
    La tua risposta mi fa felice anche se continuo a credere che ci sarà un modo per migliorarlo.

    COMUNQUE ho anche scoperto il problema in PHP5:
    prima mi dava questi avvisi:

    Notice: Use of undefined constant tabella - assumed 'tabella' in E:\xampp\htdocs\xampp\prove\prova.php on line 39

    e ho RISPOLTO semplicemente mettendo le ' ' 'id' 'tabella'

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    183
    Santino, perdona la mia ignoranza: cosa intendi con MVC ?
    Grazie

  6. #6
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

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