Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di leomac
    Registrato dal
    Mar 2009
    Messaggi
    188

    PHP - Inserimento e estrapolazione dati e in database Mysql

    Ciao a tutti,
    ho un problema con il codice qui sotto in php associato ad 1 form in html con 2 submit "invia" e "prendi" e 8 textbox (vedi variabili in php).

    In pratica l'errore è che non mi inserisce i dati nel DB di Mysql. Non riesco a capire se il problema è nel codice o del database di Mysql.

    Infine ho un altro errore/lacuna personale nella parte $_POST["invia"] o $_POST["prendi"] dipende da che tasto premi nel form. Mi da errore scrivendomi "Undefined index" e la riga delle sopracitate stringhe.
    Credo che l'errore sia dovuto al fatto che ["invia"] o ["prendi"] sia vuota invece che nulla. Ma allora perchè mi da errore se la condizione è sempre falsa?
    Scusate ma ho iniziato ieri per la prima volta a scrivere.
    Grazie a tutti.

    Codice PHP:
    <?php
    $HOST 
    "localhost";
    $USER "pino";
    $PASSWORD "gigi";

    if(
    $_POST["invia"]){
    //la stringa mysql_connect con i dati relativi al proprio database

    mysql_connect($HOST ,$USER,$PASSWORD) or die ("invia x connessione al server fallita!".mysql_error());
    mysql_select_db("contabilità") or die ("invia x connessione al database fallita!".mysql_error());

    // recupero i valori e li assegno alle variabili $
    $data_contabile $_POST["data_contabile"];
    $data_reale $_POST["data_reale"];
    $tipo_spesa $_POST["tipo_spesa"];
    $chi $_POST["chi"];
    $cosa $_POST["cosa"];
    $euro $_POST["euro"];
    $utente $_POST["banca"];
    $note $_POST["note"];
    $data_inserimento date('d/m/Y H:i:s');

    //inserimento dati
    $insert "INSERT INTO db_contabilità (data_contabile, data_reale, tipo_spesa, chi, cosa, euro, utente, data_inserimento, note) VALUES ($data_contabile$data_reale$tipo_spesa$chi$cosa$euro$utente$data_inserimento$note)";

    //verifica se inserito o no
    $result mysql_query($insert);
    if(
    $result){
    echo(
    "<br>Inserimento avvenuto correttamente");}
    else{
    echo(
    "<br>Inserimento non eseguito");
    }
    }
    ?>
    <table>
    <?php
    //estrae i dati da database

    if ($_POST["prendi"])
    {
    $db_connectionmysql_connect($HOST ,$USER,$PASSWORD) or die ("prendi x connessione al server fallita!".mysql_error());
    $db_selection mysql_select_db("contabilità",$db_connection) or die ("prendi x connessione al database fallita!".mysql_error());

    $query mysql_query("SELECT * FROM db_contabilità");
    while(
    $cicle=mysql_fetch_array($query)){
    echo 
    "
    <tr>
    <td>"
    .$cicle["ID"]."</td>
    <td>"
    .$cicle["data_contabile"]."</td>
    <td>"
    .$cicle["data_reale</td>
    <td>"
    .$cicle["tipo_spesa"]."</td>
    <td>"
    .$cicle['chi']."</td>
    <td>"
    .$cicle['cosa']."</td>
    <td>"
    .$cicle['euro']."</td>
    <td>"
    .$cicle['utente']."</td>
    <td>"
    .$cicle['data_inserimento']."</td>
    <td>"
    .$cicle['note']."</td></tr>"; }
    }
    ?>
    </table>
    Ultima modifica di leomac; 06-09-2016 a 20:33

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Mostra il codice del form, 2 submit per un form non mi pare una cosa ortodossa.

  3. #3
    Utente di HTML.it L'avatar di leomac
    Registrato dal
    Mar 2009
    Messaggi
    188
    Ciao, ecco a te. Non sapevo non si potevano mettere due submit in uno stesso form. Ok grazie.

    codice HTML:
    <html>
    <head>
    <title> 
    Contabilità</title>
    Contabilità</head>
    <body>
    
    <form id="form1" name="form1" method="post" action="cont.php">
    Data Contabile <input type="date" name="data_contabile" id="data_contabile"> <br>
    Data Reale <input type="date" name="data_reale" id="data_riferimento"> <br>
    Tipo di spesa <input type="text" name="tipo_spesa" id="tipo_spesa" value="inserisci spesa"> <br>
    Chi <input type="text" name="chi" id="chi" value="inserisci chi"> <br>
    Cosa <input type="text" name="cosa" id="cosa" value="inserisci cosa"> <br>
    Euro <input type="value" name="euro" id="euro" value="inserisci euro"> <br>
    Utente <input type="text" name="utente" id="utente" value="inserisci utente"> <br>
    Note <input type="text" name="note" id="note" value="inserisci note"> <br>
    
    <input type="submit" name="invia" value="salva i dati">
    <input type="submit" name="prendi" value="prendi i dati">
    </form></body></html>

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Non è che non si possa fare.
    Comunque ti succede perché hai 2 if separati, se premi su "prendi"
    if($_POST['invia'])
    ti da l'errore perché l'indice "invia" nell'array $_POST non esiste.
    Se premi su "invia", il primo if va bene, ma poi arrivi al secondo e $_POST['prendi'] non è settato.
    Modifica così
    Codice PHP:
    if ( isset($_POST['invia']) )
    {
        
    // codice se si preme invia
    }
    else if ( isset(
    $_POST['prendi']) )
    {
        
    // codice per prendi


  5. #5
    Utente di HTML.it L'avatar di leomac
    Registrato dal
    Mar 2009
    Messaggi
    188
    Alhazred grazie ma non va.
    Per prima cosa se metto else if mi va in errore con <table> che non è in linguaggio php. Avevo per questo staccato i due codici:
    Codice PHP:
    ?>
    <table>
    <?php
    Quindi tenendo staccati sempre i due codici e ho scritto per entrambi:

    Codice PHP:
    if ( isset($_POST['invia']) )
    {
        
    // codice se si preme invia
    }

    if ( isset(
    $_POST['prendi']) )
    {
        
    // codice se si preme prendi

    Non so se esiste qualche altro artificio che possa snellire.

    Anche facendo come dici l'inserimento non va ancora a buon fine in quanto mi entra nel ciclo di controllo che segue sotto scrivendomi: "Inserimento non eseguito". Come faceva inizialmente. Cioè praticamente $result è vuota. Anche vedendo da DB di Mysql non inserisce nulla.

    Codice PHP:
    //verifica se inserito o no
    $result mysql_query($insert);
    if(
    $result){
    echo(
    "<br>Inserimento avvenuto correttamente");}
    else{
    echo(
    "<br>Inserimento non eseguito");

    Se non ho fatto casini nel codici e non mi sembra forse è dovuto a qualche cosa settata male in Mysql?

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Puoi fare a meno di if/else if visto che tanto sicuramente solo una delle condizioni sarà vera
    Però il controllo deve restare con isset() che in caso l'indice sia inesistente non da errore
    Codice PHP:
    if ( isset($_POST['invia']) )
    {
        
    // codice per invia
    }

    if ( isset(
    $_POST['prendi']) )
    {
        
    // codice per prendi


  7. #7
    Utente di HTML.it L'avatar di leomac
    Registrato dal
    Mar 2009
    Messaggi
    188
    Si si ho fatto come dici ma non va lo stesso. Cioè ora errori non ne da ma l'inserimento non va ancora a buon fine in quanto mi entra nel ciclo di controllo che segue sotto, scrivendomi: "Inserimento non eseguito". Questo lo faceva anche inizialmente quando ho iniziato il thread ma prima mi dava anche l'errore che ho risolto con If (isset).

    Cioè praticamente $result è vuota. Anche vedendo da DB di Mysql non inserisce nulla. Ovviamente le textbox nel form HTML sono compilate.


    Codice PHP:
    //verifica se inserito o no
    $result = mysql_query($insert);
    if(
    $result){
    echo(
    "<br>Inserimento avvenuto correttamente");}
    else{
    echo(
    "<br>Inserimento non eseguito");
    }



    Se non ho fatto casini nel codici e non mi sembra, forse è dovuto a qualche cosa settata male in Mysql?

  8. #8
    Utente di HTML.it L'avatar di ttcc
    Registrato dal
    Dec 2008
    Messaggi
    489
    Codice PHP:
    echo "
    <tr>
    <td>"
    .$cicle["ID"]."</td>
    <td>"
    .$cicle["data_contabile"]."</td>
    <td>"
    .$cicle["data_reale</td>
    <td>"
    .$cicle["tipo_spesa"]."</td>
    <td>"
    .$cicle['chi']."</td>

    </table> 
    forse c'è anche qualche problema con le virgolette

  9. #9
    Utente di HTML.it L'avatar di leomac
    Registrato dal
    Mar 2009
    Messaggi
    188
    Grazie ttcc ma il problema sta col submit "invia" non con quello "prendi". Quindi nella prima parte del codice in quanto la variabile $result dovrebbe essere non nulla dato l'inserimento dati, invece mi entra nel else dandomi la scritta "Inserimento non eseguito".
    Ed infatti nel DB di Mysql non inserisce nulla. Non riesco a capire purtroppo quello che sta succedendo non sono molto pratico. E' il primo codice che scrivo in PHP.

  10. #10
    Utente di HTML.it L'avatar di leomac
    Registrato dal
    Mar 2009
    Messaggi
    188
    Forse il problema non è nel codice ma nel DB. Ma come faccio a capirlo??

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.