• User Newbie

    Problemi con PHP

    ciao a tutti sono nuova nel mondo php, devo svolgere un progetto... ed ho un problema scrivendo il codice e facendo il debug m esce questo errore...

    Parse error: syntax error, unexpected T_STRING in C:\Programmi\Apache Software Foundation\Apache2.2\htdocs\frame\reparti.php on line 33
    PHP Parse error: syntax error, unexpected T_STRING in C:\Programmi\Apache Software Foundation\Apache2.2\htdocs\frame\reparti.php on line 33

    nn riesco a capire che cosa significa, in ogni caso ora incollo qui il codice, spero che qualcuno passa aiutarmi!

    [PHP] <?php
    require_once 'MDB2.php';

    if (isset($_POST["reparti"]))
    {
    $reparti = $_POST["reparti"];
    {
    echo "Non hai scelto il reparto";
    }
    }
    else

    {
    if (!isset($liv)) {
    $home = 'home.php';
    }
    else {
    if ($_COOKIE["liv"] == 2 ) {
    $home = 'home_m.php';
    }
    if ($_COOKIE["liv"] == 3) {
    $home = 'home_p.php';
    }
    }

    $dsn= 'pgsql://postgres:xxx@localhost/xxxxx';
    $mdb2 = MDB2::connect($dsn);

    if (PEAR::isError($mdb2))
    {die($mdb2->getMessage());
    }

    $query = ( " select "Nome_R", "Nome_P", "NPiano", "Segreteria", "LettiUomo", "LettiDonna", "Nome", "Cognome"
    from "Reparto" natural join "MCompito" join "Personale" ON "MCompito"."IdP" = "Personale"."IdP"
    where "Data_F" IS NULL AND "Ruolo" = 'Primario' AND "Nome_R" = ' '") ;

    echo $query
    $output = $mdb2->query('$query');

    echo "<html>
    <head><title>Reparti - Informazioni</title></head>
    <body><table width=100%>
    <tr valign="top" align="left">
    <td><a href="$home"><img src="home_img.gif"></a><hr size="1" noshade width=100%>
    </td>
    </tr>
    </table>";

    $res =$mdb2->query($query);
    if (PEAR::isError($res))
    {die($res->getMessage());}

    echo "<table border="1 px" color="000000" align="center">
    <tr bgcolor="00c347">
    <td>Reparto</td>
    <td>Padiglione</td>
    <td>Piano</td>
    <td>Telefono</td>
    <td>Letti uomini</td>
    <td>Letti donne</td>
    <td>Primario</td>
    </tr>";

    while ($row = $res->fetchRow()) {
    echo "<tr>
    <td>$row[0]</td>
    <td align="center">$row[1]</td>
    <td align="center">$row[2]</td>
    <td>$row[3]</td>
    <td align="center">$row[4]</td>
    <td align="center">$row[5]</td>
    <td>$row[6]</td>
    </tr>";
    }

    echo " </table>
    </body>
    </html>";

    if (PEAR::isError($res))
    {die($res->getMessage());}

    $mdb2->disconnect();
    }

    ?>
    [/PHP]

    la scritta colorata e dove mi segna errore...ovvero la numero 33
    grazie
    spero qualcuno riesca ad aiutarmi


  • User Newbie

    per favore rispondete dandomi qualche indicazione è importante come cosa... non riesco a trovare nemmeno su internet indicazione su come risolvere errore...

    grazie


  • User Attivo

    Nell'impostare la query SQL hai abusato troppo delle virgolette.
    Correggi in questo modo:

    [php]
    $query = ("select Nome_R, Nome_P, NPiano, Segreteria, LettiUomo, LettiDonna, Nome, Cognome
    from Reparto natural join MCompito join Personale ON MCompito.IdP = Personale.IdP
    where Data_F IS NULL AND Ruolo = 'Primario' AND Nome_R = ''");
    [/php]Se proprio devi utilizzare le virgolette, scrivile in questo modo --> "

    [php]
    Es. $prova = "Ciao "MikykiM"";
    echo $prova; //ECHO = Ciao "MikykiM"
    [/php]

    Ciao :ciauz:


  • User Newbie

    ho corretto la prima riga come hai detto tu... ma le virgolette nel mio codice ci sono

    $query = ( " select "Nome_R", "Nome_P", "NPiano", "Segreteria", "LettiUomo", "LettiDonna", "Nome", "Cognome"
    from "Reparto" natural join "MCompito" join "Personale" ON "MCompito"."IdP" = "Personale"."IdP"
    where "Data_F" IS NULL AND "Ruolo" = 'Primario' AND "Nome_R" = ' '") ;

    ora le ho messe così:
    $query = ( " select "Nome_R", "Nome_P", "NPiano", "Segreteria", "LettiUomo", "LettiDonna", "Nome", "Cognome"
    from "Reparto" natural join "MCompito" join "Personale" ON "\MCompito"."IdP" = "Personale"."IdP"
    where "Data_F" IS NULL AND "Ruolo" = 'Primario' AND "Nome_R" = ' '") ;
    ma mi da comunque errore nella seconda riga...
    sempre parse error... che devo fare sto impazzendo...😢


  • User Attivo

    Hai di nuovo sbagliato nell'inserire le virgolette.
    Questa volta l'errore è:
    ...join "Personale" ON "*MCompito"."IdP" = "Personale"."*IdP"...
    cambialo con:
    ...join "Personale" ON *"*MCompito*"."IdP" = "Personale"."*IdP"...
    Per evitare altri problemi usa un editor di testo grafico, come NotePad++ che permette di visualizzare le inperfezioni nel codice, e quindi correggerle subito.

    Ciao!


  • User Attivo

    Mi sono accorto adesso di un altro problema, quando dichiari la variabile $query non ci devi mettere le parentesi tonde.

    Tu ha fatto così:
    [PHP]
    $query = ("...");
    [/PHP]

    Invece va fatto:
    [PHP]
    $query = "...";
    [/PHP]

    Ciao!


  • User Attivo

    C'è un altro errore, dopo che hai dichiarato (Linea 33)

    $query = "...";

    Hai messo (Linea 34)

    echo $query

    senza il ; finale.
    Forse è lì il "syntax error"

    Prova!

    Ciao