Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Problema query di ricerca

    Salve a tutti

    Qualcuno mi saprebbe dire gentilmente perchè questo pezzo di codice non va?

    Codice PHP:
    $dati=mysql_query("SELECT titolo, link FROM tabella1, tabella2 WHERE (tabella1.titolo LIKE '%key%') OR (tabella2.titolo LIKE '%key%')");

    while(
    $array=mysql_fetch_array($dati)){
    echo
    "$array[titolo] $array[link]
    "
    ;

    Eppure se lo modifico per una sola tabella la ricerca sembra andare a buon fine....

    Aspetto gentilmente le vostre utili delucidazioni.

    Grazie
    News In Web - il social news per tutti
    --> https://www.newsinweb.net <--

  2. #2
    potresti dire di quale errore si tratta.

    A spanne il "titolo" nel SELECT e' equivoco per mysql, cioe' esiste in due tabelle e non sa quindi quale prendere.

    Poi la JOIN richiede di avere un riferimento tra le due tabelle .... forse e' meglio se usassi UNION invece della join.

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

  3. #3
    Capisco...

    Non mi da un particolare errore, semplicemente non mi da risultati.

    Allora provo:
    Codice PHP:
    $dati=mysql_query("SELECT titolo, link FROM tabella1 WHERE titolo LIKE '%key%')
    UNION
    SELECT titolo, link FROM tabella2 WHERE titolo LIKE '%key%'"
    ); 

    while(
    $array=mysql_fetch_array($dati)){ 
    echo
    "$array[titolo] $array[link]
    "


    E se le tabelle sono molte non sarà troppo dispendiosa l'interrogazione al database con tutte le UNION in sequenza?
    C'è un altro metodo o bisogna cmq ridurre il numero delle tabelle?

    Grazie mille di tutto
    News In Web - il social news per tutti
    --> https://www.newsinweb.net <--

  4. #4
    Ti conviene non utilizzare molte tabelle dedite allo stesso scopo...
    My new social network project: Wriler - Organize and Join Online Events

  5. #5
    quante tabelle???

    e come farai a sapere in quale tabella si trovera' la parola cercata?

    mi sembra pero' poco funzionale la selezione se data una parola devi cercare il tutte le tabelle.

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

  6. #6
    Appunto, come dicevo, non conviene utilizzare troppe tabelle per lo stesso scopo.
    My new social network project: Wriler - Organize and Join Online Events

  7. #7
    Si, concordo con voi, mi sa che devo sistemare.

    Comunque la select:
    Codice PHP:
    $dati=mysql_query("SELECT titolo, link FROM schede_audio WHERE titolo LIKE '%key%' UNION SELECT titolo, link FROM schede_madri WHERE titolo LIKE '%key%'"); 
    non va, come mai?

    Grazie ancora
    News In Web - il social news per tutti
    --> https://www.newsinweb.net <--

  8. #8
    Perché devi inserire la connessione, ecco un esempio in cui la connessione è data da una variabile $con:

    Codice PHP:
    $dati=mysql_query("SELECT titolo, link FROM schede_audio WHERE titolo LIKE '%key%' UNION SELECT titolo, link FROM schede_madri WHERE titolo LIKE '%key%'"$con); 
    My new social network project: Wriler - Organize and Join Online Events

  9. #9
    Niente, nemmeno così va, ecco l'ultimo codice provato:
    Codice PHP:
    <? 

    // Ti connetto al DB
             
    include 'connessione.php';
             include(
    "top_foot.inc.php");
             include(
    "config.inc.php");

    top();
             
    $dati=mysql_query("SELECT titolo, link FROM schede_audio WHERE titolo LIKE '%key%' UNION SELECT titolo, link FROM schede_madri WHERE titolo LIKE '%key%'"$con);
    while(
    $array=mysql_fetch_array($dati)){
    echo
    "$array[titolo] $array[link]
    "
    ;
    }
    ?>
    Mi sto convincendo sempre di più che è meglio optare per un'unica tabella e cambiare un po' le cose.

    Anche se forse con più tabelle la velocità di interrogazione può essereme minore, se la parola viene trovata subito e non occorre sfogliare tutte le tabelle, o sbaglio?
    News In Web - il social news per tutti
    --> https://www.newsinweb.net <--

  10. #10
    Codice PHP:

    $dati 
    mysql_query("
    (SELECT titolo, link 
    FROM schede_audio 
    WHERE titolo LIKE '%key%') 
    UNION 
    (SELECT titolo, link 
    FROM schede_madri 
    WHERE titolo LIKE '%key%')
    "
    ) or die (mysql_query()); 

    while(
    $array mysql_fetch_array($dati)){ 
      echo 
    "$array[titolo] $array[link]
    "
    ;

    provaci con le parentesi e la stampa dell'eventuale errore.

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

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.