Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente bannato
    Registrato dal
    Jan 2005
    Messaggi
    468

    inserimento dati in db mysql (principiante)


    premetto che sono un principiante con il php...
    il codice seguente mi restituisce quest'errore:
    Parse error: parse error, unexpected T_VARIABLE in /membri/cello888/form.php on line 22
    (la linea 22 è quella in grassetto)
    codice:
    <?php 
    $connessione = mysql_connect(".....", ".....", "......")
           or die("Connessione non riuscita: " . mysql_error());
       print ("Connesso con successo
    ");
       mysql_close($connessione);
       
      $select = mysql_select_db ("....");
    $sql = "INSERT INTO news (testo) VALUES ("$testo")";
      $result = mysql_query ($sql);
    	echo "il risultato è $result
    ";
    ?>
    credo che sia dovuto al fatto che il capo testo è vuoto...
    ma come faccio a fare in modo che la query sia eseguita solo dopo aver cliccato sul submit che c'è nella form???

    grazie

  2. #2
    Allora tu hai creato il form con il quale inserisci il testo, giusto?
    Bene allora nel tuo form devi assegnare un nome al campo in cui scrivi il testo.. se nn l'hai già fatto dovrebbe essere qualcosa del genere..

    codice:
    <form method="post" action="nomefile_ke_inserisce.php">
    Testo
    
    
    <textarea cols="40" rows="10" name="testo">
    </textarea>
    <input type="submit" value="Invia">
    </form>
    Ora tu devi dire alla pagina php che salva i dati in mysql ke prenda il campo testo del precedente form..

    Per fare questo modifica così il tuo codice..

    codice:
    <?php 
    $connessione = mysql_connect(".....", ".....", "......")
           or die("Connessione non riuscita: " . mysql_error());
       print ("Connesso con successo
    ");
       mysql_close($connessione);
       
      $select = mysql_select_db ("....");
    
    //così assegni il campo testo del form alla variabile testo
    $testo = $_POST['testo'];
    
    $sql = "INSERT INTO news (testo) VALUES ("$testo")";
      $result = mysql_query ($sql);
    	echo "il risultato è $result
    ";
    ?>
    In questo modo dovrebbe andare..
    ciao!

  3. #3
    Ci sono vari errori:
    1) $sql = "INSERT INTO news (testo) VALUES ("$testo")"; qui modifica così $sql = "INSERT INTO news (testo) VALUES ('$testo')";

    2)
    Codice PHP:
    $connessione mysql_connect("....."".....""......")
           or die(
    "Connessione non riuscita: " mysql_error());
       print (
    "Connesso con successo
    "
    );
       
    mysql_close($connessione);
       
      
    $select mysql_select_db ("...."); 
    qui fai una cosa senza senso: apri una connessione e la chiudi poi cerchi di selezionare il db sull'ultima connessione aperta che non esiste dato che l'hai chiusa... direttamente dal ref di php.net:
    mysql_select_db() imposta il database attualmente attivo sul server associato all'identificativo di connessione specificato. Se nessin identificativo di connesione è specificato, viene considerata l'ultima connessione aperta. Se nessuna connessione è aperta, la funzione proverà a stabilire una connessione come se mysql_connect() fosse richiamata senza argomenti ed userà questa.

    3)
    Codice PHP:
    $result mysql_query ($sql);
        echo 
    "il risultato è $result
    "

    altro errore se vedi sulla documentazione ufficiale di php noti che la funzione mysql_query restituisce un resource e non dei valori. Per ottenere i valori usa http://www.php.net/manual/it/functio...etch-array.php

  4. #4
    Utente bannato
    Registrato dal
    Jan 2005
    Messaggi
    468
    Originariamente inviato da zero85
    Ci sono vari errori:
    1) $sql = "INSERT INTO news (testo) VALUES ("$testo")"; qui modifica così $sql = "INSERT INTO news (testo) VALUES ('$testo')";
    ma se metto una variabile tra gli apici '...' poi quando la richiamo non mi viene stampato su schermo :"$testo" e non il contenuto del campo testo???


    scusate x la confusione


    2)qui fai una cosa senza senso: apri una connessione e la chiudi poi cerchi di selezionare il db su....
    effettivamente hai ragione grazie 1000

  5. #5
    Scusa errore mio ho copiato veloce...
    fai così:
    $sql = "INSERT INTO news (testo) VALUES ('".$testo."')";

  6. #6
    Utente bannato
    Registrato dal
    Jan 2005
    Messaggi
    468
    a ok
    ho modificato il mio codice così:
    codice:
    <form>
    <textarea name="testo" cols="62" rows="8">prova testo</textarea>
    
    
    <input type="submit" name="Submit" value="Invia">
    </form>
    
    
    Codice PHP:
    <?php  $connessione mysql_connect("....""....."".....")        or die("Connessione non riuscita: " mysql_error());    print ("Connesso con successo");       $select mysql_select_db ("....");   $testo $_POST['testo'];   $sql "INSERT INTO news (testo) VALUES ("'.$testo.'")";   $result mysql_query ($sql);     echo "il risultato è $result"; mysql_close($connessione); ?>
    mi dispiace ma il http://www.php.net/manual/it/functi...fetch-array.php
    nn l'ho proprio capito

    cmq ora funxiona ma nel database viene salvato un campo vuoto
    come faccio a far eseguire la query solo dopo aver cliccato su invia???

    grazie

    p.s mi spieghi che c fanno i "." sulla variabile testo???
    sono proprio ignorante

  7. #7
    Originariamente inviato da !!Cello!!


    cmq ora funxiona ma nel database viene salvato un campo vuoto
    come faccio a far eseguire la query solo dopo aver cliccato su invia???
    visto che hai salvato in un campo la query l' hai già eseguita...quando hai fatto mysql_query ($sql);
    p.s mi spieghi che c fanno i "." sulla variabile testo???
    sono proprio ignorante
    il . è un operatore per stringhe...si chiama operatore di concatenazione e consente appunto di concatenare stringhe.
    Originariamente inviato da zero85
    Scusa errore mio ho copiato veloce...
    fai così:
    $sql = "INSERT INTO news (testo) VALUES ('".$testo."')";
    nessun errore andava benone anche come avevi scritto prima:
    $sql = "INSERT INTO news (testo) VALUES ('$testo.')";
    www.bitmade.com Momentan ist richtig_Momentan ist gut_Nicht ist wirklich wichtig_Nach der Ebbe kommt die Flut_ _Am Strand des Lebens_ohne Grund,ohne Verstand_ist nichts vergebens_ich baue di traeume auf den Sand.

  8. #8
    Allora prima di tutto devi dividere in 2 pagine diverse:

    pagina 1:
    <form action="pagina2.php" method="post">
    <textarea name="testo" cols="62" rows="8">prova testo</textarea>


    <input type="submit" name="Submit" value="Invia">
    </form>

    pagina2:
    Codice PHP:
    <?php 

    $connessione 
    mysql_connect("....""....."".....")

           or die(
    "Connessione non riuscita: " mysql_error());

       print (
    "Connesso con successo
    "
    );

       

      
    $select mysql_select_db ("....");

      
    $testo $_POST['testo'];

      
    $sql "INSERT INTO news (testo) VALUES ("'.$testo.'")";

      
    $result mysql_query ($sql);

        echo 
    "il risultato è $result
    "
    ;



    mysql_close($connessione);
    ?>
    Passiamo ora all'operatore . Questo operatore non fa altro che concatenare (unire 2 stringhe).
    es:
    $a = "ciao ";
    $b = "mondo";
    $c = $a.$b;
    echo $c;
    Questo esempio stampa "ciao mondo".

    Veniamo a
    $result = mysql_query ($sql);
    echo "il risultato è $result
    ";

    qui devi stare molto attento dato che mysql_query non restituisce il valore da te inserito ma:
    Solo per le istruzioni SELECT, SHOW, EXPLAIN o DESCRIBE mysql_query() restituisce un identificativo di risorsa o FALSE se la query non è stata eseguita correttamente. Per altri tipi di istruzioni SQL, mysql_query() restituisce TRUE in caso di successo e FALSE in caso di errore. Un valore restituito diverso da FALSE indica che la query era lecita ed è stata eseguita dal server. Questo non indica niente riguardo il numero di righe coinvolte o restituite. è assolutamente possibile che una query abbia successo ma che non coinvolga o restituisca nessuna riga.

    Elimina la riga echo "il risultato è $result
    "; dato che scritta coì no ha senso... se mi dici cosa ti aspetti ti restituisca ti aiuto a risolvere

  9. #9
    Utente bannato
    Registrato dal
    Jan 2005
    Messaggi
    468
    Veniamo a
    $result = mysql_query ($sql);
    echo "il risultato è $result
    ";

    qui devi stare molto attento dato che mysql_query non restituisce il valore da te inserito ma:
    Solo per le istruzioni SELECT, SHOW, EXPLAIN o DESCRIBE mysql_query() restituisce un identificativo di risorsa o FALSE se la query non è stata eseguita correttamente. Per altri tipi di istruzioni SQL, mysql_query() restituisce TRUE in caso di successo e FALSE in caso di errore. Un valore restituito diverso da FALSE indica che la query era lecita ed è stata eseguita dal server. Questo non indica niente riguardo il numero di righe coinvolte o restituite. è assolutamente possibile che una query abbia successo ma che non coinvolga o restituisca nessuna riga.

    Elimina la riga echo "il risultato è $result
    "; dato che scritta coì no ha senso... se mi dici cosa ti aspetti ti restituisca ti aiuto a risolvere
    mi permette di vedere se c'è stato l'inserimento dei dati nel database infatti esce scritto:
    il risultato è 1
    quando c'è l'1 capisco che la procedura è andata a buon fine (in questo caso esce 1 e infatti funziona)

    cmq nn rimarrà li è solo per le prove...

    mi dite come far eseguire la query dopo aver premuto su invia???

  10. #10
    Originariamente inviato da !!Cello!!
    mi permette di vedere se c'è stato l'inserimento dei dati nel database infatti esce scritto:
    il risultato è 1
    quando c'è l'1 capisco che la procedura è andata a buon fine (in questo caso esce 1 e infatti funziona)

    cmq nn rimarrà li è solo per le prove...
    Ok capito... allora puoi lasciare così

    mi dite come far eseguire la query dopo aver premuto su invia???
    Ci sono 2 modi: dividere lo script in 2 pagine oppure usando la stessa pagina che è più complicato... io ti consiglio la prima per adesso...
    Originariamente inviato da zero85
    Allora prima di tutto devi dividere in 2 pagine diverse:

    pagina 1.html:
    <form action="pagina2.php" method="post">
    <textarea name="testo" cols="62" rows="8">prova testo</textarea>


    <input type="submit" name="Submit" value="Invia">
    </form>

    pagina2.php:

    Codice PHP:
        <?php 

        $connessione 
    mysql_connect("....""....."".....")

               or die(
    "Connessione non riuscita: " mysql_error());

           print (
    "Connesso con successo
    "
    );

           

          
    $select mysql_select_db ("....");

          
    $testo $_POST['testo'];

          
    $sql "INSERT INTO news (testo) VALUES ("'.$testo.'")";

          
    $result mysql_query ($sql);

            echo 
    "il risultato è $result
    "
    ;



        
    mysql_close($connessione);
        
    ?>

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.