Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Select MAx() non funziona[PHP/SQL]

    Buon pomeriggio,il mio problema è il seguente:
    Con una Select Max dovrei farmi restituire dalla tabella DatiCliente l'ultimo id inserito.
    Ho provato con il query Analizer di SQLSERVER2000 e non mi da problemi,come al solito ne ho con Access,nel senso che,con questo script mi da il problema di non trovare nella select il campo "id_DatiCliente".infatti l'errore restituito è:

    Warning: Field id_DatiCliente not found in c:\phpdev\www\public\carrelloacquistiphp_access\ar eanuovocliente.php on line 116

    Questo è lo script:
    $query3 = "SELECT Max(id_DatiCliente)FROM DatiCliente where id_DatiCliente = id_DatiCliente";
    //$id = 0;
    $Risultato3 = odbc_exec($db, $query3);
    //echo "Query3: ".$query3."

    ";
    while (odbc_fetch_row($Risultato3)) {

    //qui confronta la stringa passata per ogni riga presente
    //nel campo login della tabella interessata LoginCliente
    $id = odbc_result($Risultato3,"id_DatiCliente") or die("Non riesco a capire su quale tabella cercare!!");
    echo "Id_DatiCliente: ".$id."

    ";

    Il problema è che,se uso una select distinct id_DatiCliente from DatiCliente where id_DatiCliente = id_DatiCliente";
    mi restituisce tutti i record,e la particolarità è che il campo "id_DatiCliente" lo trova,ma con la Select Max() no...

    Come Mai?

    Grazie a tutti come sempre... ciao ciao

  2. #2
    $query3 = "SELECT Max(id_DatiCliente)FROM DatiCliente where id_DatiCliente = id_DatiCliente";

    Il campo id_DatiCliente non viene estratto, ma viene estratto MAX(id_DatiCliente). Mettici un Alias...

    $query3 = "SELECT Max(id_DatiCliente)AS id_DatiCliente
    FROM DatiCliente
    where id_DatiCliente = id_DatiCliente";


    anche se mi sfugge la logica della condizione WHERE.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    non funziona perchè già avevo provato con l'alias.Questo è l'errore:

    Warning: SQL error: [Microsoft][Driver ODBC Microsoft Access] Riferimento circolare causato dall'alias 'id_DatiCliente' nell'elenco SELECT della definizione della query., SQL state S1000 in SQLExecDirect in c:\phpdev\www\public\carrelloacquistiphp_access\ar eanuovocliente.php on line 110

    non so che fa

  4. #4
    Hai letto tutto il mio post precedente...???

    Lascio sempre spazio alle valutazioni personali...

    Mettici un'altro nome come alias. Ho indicato quello per farti intendere di che si trattava. Poi quel where id = id che significato logico ha?

    Se poni la condizione che id sia uguale a id quale potrebbe essere il MAX(id)? tanto vale che fai SELECT id from tabella.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    avevi ragione...ho fatto cosi:
    //Select MAx mi consente di individuare l'ultimo id inserito
    $query3 = "SELECT Max(id_DatiCliente) as id FROM DatiCliente";
    //$query3 = "SELECT id_DatiCliente FROM DatiCliente";
    //$id = 0;
    $Risultato3 = odbc_exec($db, $query3);
    echo "Ris3: ".$Risultato3."

    ";
    //while (odbc_fetch_row($Risultato3)) {
    while (odbc_fetch_row($Risultato3)) {
    //qui confronta la stringa passata per ogni riga presente
    //nel campo login della tabella interessata LoginCliente
    $id = odbc_result($Risultato3,"id") or die("Non riesco a capire su quale tabella cercare!!");
    echo "Id_DatiCliente: ".$id."

    ";

    ok... ti ringrazio...

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.