Pagina 1 di 5 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 47
  1. #1

    Effettuare una ricerca su più campi omonimi di tabelle diverse

    Salve, ho un semplice motore di ricerca che trova una o più parole presenti nel campo Titolo di una tabella.
    Vorrei che la stessa ricerca fosse estesa in automatico ad altre due tabelle, con la medesima struttura, sempre nei rispettivi campi Titolo.
    E' possibile?

    Questo è il codice, attualmente funzionante sulla tabella schede (omessi dei controlli sui caratteri speciali...):
    Codice PHP:
    @mysqli_select_db($link"$db_name");
    $testo=isset($_POST['testo']) ? htmlspecialchars($_POST['testo']) : '';
    $testo=str_replace("'","''",$testo);

    ...

    $sql "SELECT * FROM schede WHERE Titolo LIKE '%$testo%' ORDER BY Anno ASC"

  2. #2
    puoi usare UNION

    SELECT * FROM tabella1
    UNION
    SELECT * FROM tabella2

  3. #3
    Perfetto, grazie.

    Avendo delle clausole WHERE, l'UNION occorre farlo su ciascun SELECT, sennò stampa tutto il db!

  4. #4

  5. #5
    Ho notato un problema effettuando la ricerca su più tabelle: oltre ai vari campi ove è presente la chiave di ricerca, devo ottenere anche il nome della tabella poiché i risultati di ricerca producono anche un link
    Codice PHP:
    $link="scheda.php?Tabella=$tabella&Anno=$anno&Numero=$albo"
    e quindi
    Codice PHP:
    echo "<div class='col-3'><a href='$link'>Scheda</a></div>"
    Come faccio a interrogare il database circa le tabelle dove sono presenti i risultati?

  6. #6
    SELECT 'tabella1' as tabella, * FROM tabella1
    UNION
    SELECT 'tabella2' as tabella, * FROM tabella2

    that easy!

  7. #7
    SELECT 'tabella1' as tabella, * FROM tabella1
    UNION
    SELECT 'tabella2' as tabella, * FROM tabella2

    that easy!

  8. #8
    Codice PHP:
    $cerca mysqli_query($link$sql
    mi va in die.

  9. #9
    perché non posti la TUA stringa SQL?

  10. #10
    Eccola...
    Codice PHP:
    $sql "SELECT 'schede' AS Tabella, * FROM schede WHERE Titolo LIKE '%$testo%' UNION SELECT 'speciali' AS Tabella, * FROM speciali WHERE Titolo LIKE '%$testo%' UNION SELECT 'numeriuno' AS Tabella, * FROM numeriuno WHERE Titolo LIKE '%$testo%' ORDER BY Anno ASC"

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 © 2024 vBulletin Solutions, Inc. All rights reserved.