Visualizzazione dei risultati da 1 a 7 su 7

Discussione: JOIN non funziona

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    248

    JOIN non funziona

    salve, ho letto un po' di note sulla Join, ma contnuo ad avere problemi.

    La sintassi che uso è questa:
    $cSql = "SELECT * FROM Contratti AS Co INNER JOIN ContrattiTipo AS CoTi ON Co.Tipo = CoTi.Progressivo".

    L'ho usata nella sezione SQL di EasyPHP e funziona.
    La uso all'interno di una pagina Web e mi ritorno questo errore:
    Parse error: syntax error, unexpected T_VARIABLE in H:\EasyPHP-5.3.9\www\Contratti.php on line 95.

    Le ho proate tutte, ma non ho capito l'errore.

    Qualcuno mi può dire dove sbaglio?

    Uso Il PDO per il collegamento al dataBase

    grazie

    Gaetano

  2. #2
    Codice PHP:
    $cSql "SELECT * FROM Contratti AS Co INNER JOIN ContrattiTipo AS CoTi ON Co.Tipo = CoTi.Progressivo"
    Nel codice hai . o ; alla fine della riga precedente?
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Uhm, così ad occhio l'unico errore potrebbe essere quello che suggerisce satifal.

    Prova a scrivere così la query:

    Codice PHP:
    $cSql "SELECT *
             FROM Contratti Co
             JOIN ContrattiTipo CoTi ON (co.Tipo = CoTi.Progressivo)"


  4. #4
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    248
    ragazzi non so come ringraziarvi,

    come al solito l'errore è la stanchezza.
    Cosa procduce un punto e virgola

    Di nuovo grazie

    Gaetano

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    248
    sono di nuovo qui.
    Non so se potete aiutare anche in questo caso.
    Sempre in relazione alla query di prima non ho capito come fare a prendere dei campi.
    Il codice è questo:
    $cSql = "SELECT *, CoTi.Descrizione AS cTipoDes, Fo.Anagrafica FROM Contratti AS Co
    INNER JOIN ContrattiTipo AS CoTi ON Co.Tipo = CoTi.Progressivo
    INNER JOIN Fornitori AS Fo ON Co.Fornitore = Fo.Progressivo
    order by Numero";
    ...
    while ($riga = $Co->fetch()) {
    $Prog = $riga['Progressivo'];
    ...

    Ho spezzato la query come da consiglio ed effettivamente è + leggibile.
    Le Join funzionano bene, ma quando effettuo il while, quando valorizzo la var:
    $Prog = $riga['Progressivo'];
    Come valore del Progressivo, mi da' il valore della Tabella fornitori (collegata tramite Join) e non il valore del campo progressivo della Tabella contratti.
    Ho provato:
    $Prog = $riga['Fo.Progressivo'];

    $Prog = $riga[Fo.'Progressivo'];
    ma senza successo.

    Non ho capito come fare per prendere il valore del campo della tabella che m'interessa.
    Forse per tutti i campi devo definire un alias?
    O Soltanto per quelli che hanno il campo con lo stesso nome?

    grazie Gaetano

  6. #6
    Codice PHP:
    $cSql "SELECT *, Co.Progressivo AS prog, CoTi.Descrizione AS cTipoDes, Fo.Anagrafica FROM Contratti AS Co
    INNER JOIN ContrattiTipo AS CoTi ON Co.Tipo = CoTi.Progressivo
    INNER JOIN Fornitori AS Fo ON Co.Fornitore = Fo.Progressivo
    order by Numero"
    ;
    ...
    while (
    $riga $Co->fetch()) {
    $Prog $riga['prog'];
    ... 
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    248
    grazie per la risposta.

    Se ho capito bene, posso fare la select con l'asteriso per prendere tutti i campi e poi posso indicare il campo che m'interessa e che può avere lo stesso nome anche in un'altra tabella e creare l'Alias.

    Funziona bene.

    Ti ringrazio

    Gaetano

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.