Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Parse error:

  1. #1

    Parse error:

    Ciao a tutti.
    Premetto che sto iniziando or ora a mettere mani e testa sul php ed i siti in generale.
    Ho creato un form per l'inserimento di dati in quanto vorrei creare una rubrica.
    Quando clicco sul tasto invio del form mi esce questo errore:

    Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting T_STRING or T_VARIABLE or '{' or '$' in C:\xampp\htdocs\rubricaoperatore\funzioni_mysql.ph p on line 19

    Sapete indicarmi dove ho sbagliato?

    Vi posto il codice .php della pagina che ho creato per popolare la tabella in mysql:

    <?php
    // inclusione del file contenente la classe
    include "funzioni_mysql.php";
    // istanza della classe
    $data = new MysqlClass();
    // chiamata alla funzione di connessione
    $data->connetti();
    // definizione delle variabili da passare alla funzione per l'inserimento dei dati
    $t = "nominativi"; // nome della tabella
    $v = array ("RegionalOperation",("RegioniItalia"),("nome"),(" cognome"),("telufficio"),("cellulare"),("mail"),(" annotazioni")); // valori da inserire
    $r = "RO,REGIONE,NOME,COGNOME,TELUFF,CELL,EMAIL,NOT E"; // campi da popolare
    // chiamata alla funzione per l'inserimento dei dati
    $data->inserisci($t,$v,$r);
    echo "Nominativo inserito con successo";
    // chiamata alla funzione di disconnessione
    $data->disconnetti();
    ?>

    Se vi serve altro fatemi sapere.

    Ciao e grazie a tutti.

    JerryLeeLeewis

  2. #2
    L'errore, come chiaramente specificato dal messaggio, e' nel file funzioni_mysql.php alla riga 19.

    Inoltre tutte le parentesi in questa espressione non servono:
    codice:
    $v = array ("RegionalOperation",("RegioniItalia"),("nome"),("cognome"),("telufficio"),("cellulare"),("mail"),("annotazioni"));
    e' sufficiente:
    codice:
    $v = array("RegionalOperation","RegioniItalia","nome","cognome","telufficio","cellulare","mail","annotazioni");

  3. #3
    ti posto il codice del file funzioni_mysql.php:

    <?php
    class MysqlClass
    {
    // variabili per la connessione al database
    private $nomehost = "localhost";
    private $nomeuser = "root";
    private $password = "";
    private $nomedb = "rubrica";


    // controllo sulle connessioni attive
    private $attiva = false;

    // funzione per la connessione a MySQL
    public function connetti()
    {
    if(!$this->attiva)
    {
    if($connessione = mysql_connect($this->localhost,$this->root,$this->"") or die (mysql_error()))
    {
    $selezione = mysql_select_db($this->rubrica,$connessione) or die (mysql_error());
    }
    }else{
    return true;
    }
    }

    //funzione per l'esecuzione delle query
    public function query($sql)
    {
    if(isset($this->attiva))
    {
    $sql = mysql_query($sql) or die (mysql_error());
    return $sql;
    }else{
    return false;
    }
    }

    //funzione per l'inserimento dei dati in tabella
    public function inserisci($t,$v,$r = null)
    {
    if(isset($this->attiva))
    {
    $istruzione = 'INSERT INTO '.$t;
    if($r != null)
    {
    $istruzione .= ' ('.$r.')';
    }

    for($i = 0; $i < count($v); $i++)
    {
    if(is_string($v[$i]))
    $v[$i] = '"'.$v[$i].'"';
    }
    $v = implode(',',$v);
    $istruzione .= ' VALUES ('.$v.')';

    $query = mysql_query($istruzione) or die (mysql_error());

    }else{
    return false;
    }
    }
    //funzione per l'estrazione dei record
    public function estrai($risultato)
    {
    if(isset($this->attiva))
    {
    $r = mysql_fetch_object($risultato);
    return $r;
    }else{
    return false;
    }
    }
    // funzione per la formattazione della data
    public function format_data($d)
    {
    $vet = explode("-", $d);
    $df = $vet[2]."-".$vet[1]."-".$vet[0];
    return $df;
    }

    // funzione per l'anteprima degli articoli
    public function preview($post, $offset, $collegamento) {
    return (count($anteprima = explode(" ", $post)) > $offset) ? implode(" ", array_slice($anteprima, 0, $offset)) . $collegamento : $post;
    }

    // funzione per il conteggio dei commenti
    public function conta_commenti($id_c, $tbl, $campo, $id_post,$enum, $valore_enum)
    {
    if(isset($this->attiva))
    {
    $query_n_com = mysql_query("SELECT COUNT($id_c) AS n_commenti from $tbl WHERE $campo = $id_post AND $enum = '$valore_enum'") or die (mysql_error());
    $obj_n_com = mysql_fetch_object($query_n_com) or die (mysql_error());
    return $obj_n_com->n_commenti;
    }else{
    return false;
    }
    }

    // funzione per la chiusura della connessione
    public function disconnetti()
    {
    if($this->attiva)
    {
    if(mysql_close())
    {
    $this->attiva = false;
    return true;
    }else{
    return false;
    }
    }
    }

    }
    ?>

  4. #4
    L'errore e' appunto alla riga 19 e precisamente
    Codice PHP:
    $this->"" 
    non e' sintassi valida, probabilmente intendevi
    Codice PHP:
    $this->password 

  5. #5
    ho messo solo due apici perchè la password non l'ho settata. In questo caso cosa ci devo scrivere al posto di password?

  6. #6
    Questa riga non ha senso:
    Codice PHP:
    mysql_connect($this->localhost,$this->root,$this->""
    la sintassi "$this->qualcosa" si riferisce a "qualcosa" come proprieta' di un'istanza della classe, non e' una stringa ma una variabile.

    Hai settato le variabili come proprieta' private della classe
    Codice PHP:
    private $nomehost "localhost";
    private 
    $nomeuser "root";
    private 
    $password "";
    private 
    $nomedb "rubrica"
    perche' non le usi?
    Codice PHP:
    mysql_connect($this->nomehost,$this->nomeuser,$this->password
    idem per la selezione del db.

    Forse ti conviene un ripasso sulla programmazione ad oggetti in PHP.

  7. #7
    L'ho rifatto un po' piu semplice in questo modo.
    Ho creato un file .php con le istruzioni per popolare i campi della tabella.
    Una volta lanciato lo script non mi ritornano errori e sembrerebbe andato a buon fine. Solo che la tabella del database non mi si popola.
    Dove ho sbagliato? Cosa manca?

    Vi posto i due file che ho creato.
    Form per la compilazione della tabella:

    <html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=windows-1250">
    <meta name="generator" content="PSPad editor, www.pspad.com">
    <title>La Rubrica del buon operatore di Help Desk</title>
    </head>
    <body>
    <form name="InvioDatiRubrica" action="ProcessaInvioDatiRubrica.php" method="POST">
    <table width=75% border=2 align="center">
    <caption align="center">Zona di riferimento</caption>
    <thead>
    <tr>
    <th>RO</th>
    <th>Regione</th>
    </tr>
    </thead>
    <tbody>
    <tr>
    <td align="center"><select name="RegionalOperation">
    <option value=" " selected="selected"></option>
    <option value="PV">PV</option>
    <option value="LO">LO</option>
    <option value="NE">NE</option>
    <option value="CN">CN</option>
    <option value="C1">C1</option>
    <option value="CE">CE</option>
    <option value="S1">S1</option>
    <option value="S2">S2</option>
    </td>
    <td align="center"><select name="RegioniItalia">
    <option value=" " selected="selected"></option>
    <option value="Abruzzo">Abruzzo</option>
    <option value="Basilicata">Basilicata</option>
    <option value="Calabria">Calabria</option>
    <option value="Campania">Campania</option>
    <option value="Emilia Romagna">Emilia Romagna</option>
    <option value="Friuli Venezia Giulia">Friuli Venezia Giulia</option>
    <option value="Lazio">Lazio</option>
    <option value="Liguria">Liguria</option>
    <option value="Lombardia">Lombardia</option>
    <option value="Marche">Marche</option>
    <option value="Molise">Molise</option>
    <option value="Piemonte">Piemonte</option>
    <option value="Puglia">Puglia</option>
    <option value="Sardegna">Sardegna</option>
    <option value="Sicilia">Sicilia</option>
    <option value="Toscana">Toscana</option>
    <option value="Trentino Alto Adige">Trentino Alto Adige</option>
    <option value="Umbria">Umbria</option>
    <option value="Valle D'Aosta">Valle D'Aosta</option>
    <option value="Veneto">Veneto</option>
    </td>
    </tbody>
    </table>


    <table width=75% border=2 align="center">
    <caption align="center">Dati Anagrafici</caption>
    <thead>
    <tr>
    <th>Nome</th>
    <th>Cognome</th>
    <th>Tel. Ufficio</th>
    <th>Cellulare</th>
    <th>E-Mail</th>
    </tr>
    </thead>
    <tbody>
    <tr>
    <td align="center" name="nome"><input type="text"></td>
    <td align="center" name="cognome"><input type="text"></td>
    <td align="center" name="telufficio"><input type="text"></td>
    <td align="center" name="cellulare"><input type="text"></td>
    <td align="center" name="mail"><input type="text"></td>
    </tr>
    </tbody>
    </table>


    <table width=75% border=2 align="center">
    <caption align="center">Annotazioni Particolari</caption>
    <tbody>
    <tr>
    <td align="center"><textarea name="annotazioni" rows="5" cols="40">Qui puoi scrivere le tue annotazioni particolari</textarea></td>
    </tr>
    </table>


    <div align="center"><input type="submit" name="submit" value="Invia i Dati"/>
    <input type="reset" name="reset" value="Ripulisci Form"/></div>
    </form>
    </body>
    </html>

    File .php con lo script:

    <?php
    $myconn = mysql_connect("localhost", "root", "") or die('Errore, mancata connessione');
    mysql_select_db('rubrica', $myconn) or die("Errore, mancata connessione al Database");
    $inserisci="INSERT INTO nominativi (RO,PROVINCIA,NOME,COGNOME,TELUFF,CELL,EMAIL,NOTE) VALUES ('RegionalOperation','RegioniItalia','nome','cogno me','telufficio','cellulare','mail','annotazioni') ";
    echo "Record Inserito con successo";

    ?>


    Ciao e grazie a tutti
    Jerry Lee Lewis

  8. #8
    Originariamente inviato da JerryLeeLeewis
    Dove ho sbagliato? Cosa manca?
    L'esecuzione della query.

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    Originariamente inviato da k.b
    L'esecuzione della query.
    LOL

    scusate non ho saputo resistere XD
    sometimes it's just like teaching pigs how to fly

  10. #10
    @JerryLeeLeewis: i messaggi privati sono per questioni private, non per questioni tecniche -- per quello c'e' il forum.

    Riguardo al messaggio specifico, mi indichi la riga in cui esegui la query?

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.