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

    mysql_query cancella campi comuni

    Ciao a tutti
    ho un problema.
    Sto facendo una query SELECT che unisce tabelle diverse tramite delle JOIN.
    Ma i campi nominati allo stesso modo delle tabelle mi vengono sovrascritti a quelli precedenti.


    Ad esempio:
    TABELLA1: idtab1, campo1, campo2, chiaveext (idtab2)
    TABELLA2: idtab2, campo1, campo3


    La JOIN di TABELLA1 con TABELLA2 tramite la chiaveext mi da in MYSQL il risultato corretto che voglio ottenere:
    RIS: idtab1, campo1, campo2, chiaveext, campo1, campo3

    In PHP invece ottengo:
    RIS: idtab1, campo1, campo2, chiaveext, campo3
    Ovvero campo1 della seconda tabella si sostituisce alla prima.

    Come posso fare ad ottenere il risultato del MYSQL senza modificare i nomi dei campi di ogni tabella?

    ps: sapete inoltre come posso fare una SELECT con esclusione di campi
    ad esempio SELECT [*^idtab1] FROM tab1
    ovvero tutto tranne l'id.


    GRAZIE

  2. #2
    Utente di HTML.it L'avatar di jcsnake
    Registrato dal
    Jun 2010
    Messaggi
    629
    Ciao, premesso che questo è un problema non di php ma di sql, ti consiglio di scrivere tutti i campi da proiettare e rinominarli con un alias, utilizzerai quello nella chiamata php...ti faccio un esempio

    Codice PHP:

    $strsql
    ="Select idtab1, campo1, campo2, chiaveext,idtab2 as id2, campo1 as campo1_2, campo3 as campo3_2 from ..... ";
    ......
    //quando devi utilizzare i campi della seconda tabella farai così
    $id_seconda_tabella=$riga["id2"]; //lo selezioni con il nome dell'alias
    ...... 

  3. #3
    però se io eseguo la query su Sql ottengo la prima soluzione.
    E solo quando ottengo il risultato da php che ottengo la seconda.

    Purtroppo non posso adottare la tua soluzione al mio problema.
    Infatti io non conosco a priori la composizione delle tabelle su cui vado ad operare dato che viene fatto da funzioni. Non voglio manco nella funzione inserire ogni volta l'elenco di paramentri su cui devono operare (Ovvero tutti tranne alcune eccezioni, e poi per ogniuno dovrei fare degli alias adoc).

    Se esiste preferisco adottare un'altra soluzione.
    Grazie cmq.

  4. #4
    Quindi nessuno sa se posso fare in un altro modo?

    E per la mia seconda domanda?
    ps: sapete inoltre come posso fare una SELECT con esclusione di campi ad esempio SELECT [*^idtab1] FROM tab1 ovvero tutto tranne l'id.

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.