Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543

    Ricercare un campo in più tabelle e stampare le righe in cui è contenuto?

    Buona sera,
    vorrei stampare tutte le righe di tutte le tabelle che hanno un certo valore passato con una funziona.
    Ho impostato la query in questo modo:
    codice:
    $sql = "SELECT * FROM magazzino AS m, servizi AS s, clienti AS c WHERE c.timestamp=$data OR s.data=$data OR m.timestamp=$data";
    Secondo voi è giusta questa query?
    Come faccio, poi, a stampare tutti i campi di tutte le tabelle in cui questo valore è contenuto?
    Senza fare 3 while, c'è un modo per stampare tutto quanto magari separando cun un testo, del tipo
    Tabella Magazzino
    --------
    --------
    --------

    Tabella Servizi
    --------
    --------
    --------

    Tabella Clienti
    --------
    --------
    --------

    Grazie.
    "To iterate is human, to recurse, divine." (R.(Heller))

  2. #2
    ciao vorrei aiutarti perché poco tempo fa credo di aver fatto una cosa simile, ma non ho capito tu cosa vuoi. vuoi elencare i dati del database in una tabella?
    es Tabella Magazzino vuoi fare una tabella con tutti i campi del database del magazzino ecc.. ?

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Così non ottieni quello che vorresti, penso tu debba fare una query diversa per ogni tabella

  4. #4
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543
    Quello che voglio fare io è questo: ammettiamo che io abbia un database chiamato "magazzino" e 3 tabelle:
    - acquisti
    - fatture
    - vendite

    ognuna di queste 3 tabelle ha un campo in cui ci metto la data in formato timestamp.
    Vorrei poter estrarre i dati di tutte le tabelle che hanno timestamp = timestamp_passata senza dove fare una query per ogni tabella, per il semplice motivo che se in futuro le tabelle saranno più di 3 non dovrò scrivere altre query e quindi altri cicli while, ma semplicemente modificare l'unica query scritta.
    Spero di essermi spiegato e grazie in anticipo per il vostro aiuto.
    "To iterate is human, to recurse, divine." (R.(Heller))

  5. #5
    Ci sono molte soluzioni a mio avviso, dipende da come lo vuoi gestire.

    Se le tue tabelle aumenteranno ma non sai quante saranno potresti creare un indice di tabelle.

    Esempio
    1) NON VUOI toccare più il codice PHP
    - Creo una tabella che chiamo nome_tabella dove ci saranno esattamente i nomi delle tabelle che vuoi usare
    2) Su php :
    Codice PHP:
    $sql Select_query("SELECT nome FROM nome_tabella");
    while(
    $row mysql_fetch_assoc($sql))
    {
         
    $sql_tabella "SELECT * FROM ".$row["nome"];
         
    $row_tabella Select_fetch_assoc($sql_tabella );
          
    print_r($row_tabella);

    Dove
    Select_query = mysql_query con connessione al DB ecc
    Select_fetch_assoc = mysql_fetch_assoc con connessione al DB ecc

    2) Se vuoi toccare PHP potresti usare un array o strutturare con classi.

    Spero di averti dato un suggerimento.
    Google Partner | Senior Developer
    Guida su Google Tag Manager

  6. #6
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543
    Sicuramente il primo suggerimento è molto valido e credo che lo utilizzerò da subito, anche solo per prova.
    Riguardo, inceve, al secondo consiglio potresti spiegarti meglio? Perchè ho già scritto questa applicazione con paradigma OOP e quindi con le relative classi.
    "To iterate is human, to recurse, divine." (R.(Heller))

  7. #7
    Il secondo è un consiglio basato su una struttura a classi un po' più complessa non ho framework o classi esistenti particolari, son solito a scriverle ad hoc, quindi il mio era un consiglio alternativo alle tabelle del db.

    Sicuramente gestire il tutto da database è un'ottima soluzione quando non hai le idee ben chiare di come si evolverà il progetto.

    In questa maniera avrai le porte aperte.
    Google Partner | Senior Developer
    Guida su Google Tag Manager

  8. #8
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543
    Per ora adotterò la scelta del nome delle tabelle in un'altra tabella, ma volevo precisare che non sto usando nessun framework, ma è tutto scritto - appunto- da zero.
    "To iterate is human, to recurse, divine." (R.(Heller))

  9. #9
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543
    Riapro un attimo questa discussione per chiedere un'ultima cosa in merito al problema che ho esposto.
    Nella query:
    Codice PHP:
    $sql "SELECT * FROM magazzino AS m, servizi AS s, clienti AS c WHERE c.timestamp=$data OR s.data=$data OR m.timestamp=$data"
    come faccio poi, una volta aver messo if(mysql_num_rows($res)) {...}, stampare solo i valori delle tabelle in cui si è verificata la condizione?
    Cioè, visto che ho 2 OR che verificano 3 condizioni, come faccio a sapere quali condizioni sono verificate?
    "To iterate is human, to recurse, divine." (R.(Heller))

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.