Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. Errore MySQL ricerca su più tabelle
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • P
      pepozzo User • ultima modifica di

      Errore MySQL ricerca su più tabelle

      Salve,
      ho creato un modulo di ricerca in cui le variabili sono dichiarate così:
      [php] #Parametri ricerca
      var $fulltext = "Modello,Descrizione";
      var $table = "day_processori, day_harddisk";[/php]day_processori e day_harddisk sono due tabelle del db (in futuro ne vorrei aggiungere altre).

      Mentre la funzione di ricerca è la seguente:
      [php]function GetResource()
      {
      $this->DbConnectAndSelect();
      $sql = "SELECT * MATCH($this->fulltext) AGAINST('$this->key' IN BOOLEAN MODE) AS tot FROM $this->table WHERE MATCH($this->fulltext) AGAINST('$this->key' IN BOOLEAN MODE) ORDER BY tot DESC";
      $this->res = mysql_query($sql, $this->conn);
      //print $sql;
      //die;

          }[/php]Ciò che dovrebbe restituirmi il risultato è il codice seguente (linea 114):
      

      [php]$search->GetResource();
      while ($row = mysql_fetch_array($search->res))[/php]Tuttavia ottengo questo errore:

      **Warning**:  mysql_fetch_array(): supplied argument is not a valid MySQL result resource in **C:\...\cerca.php** on line **114**
      ```Un print sulla query mi ha restituito:
      

      SELECT * MATCH(Modello,Descrizione) AGAINST('maxtor' IN BOOLEAN MODE) AS tot FROM day_processori, day_harddisk WHERE MATCH(Modello,Descrizione) AGAINST('maxtor' IN BOOLEAN MODE) ORDER BY tot DESC

      Dove sto sbagliando??
      
      Grazie,
      S.
      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • S
        sups User Attivo • ultima modifica di

        Prova ad utilizzare questa query, in particolare con la virgola dopo l'asterisco.

        SELECT *, MATCH(...

        Ciao!

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • P
          pepozzo User • ultima modifica di

          Ciao e grazie per la risposta!

          Tuttavia niente da fare...Sempre lo stesso errore.

          Altre soluzioni?

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • L
            luigi 0 User Attivo • ultima modifica di

            credo che l'errore stia nel mancato uso dell'inner join, inoltre dovresti mettere la segnalazione dell'errore anche sulla query visto che probabilmente il problema sta lì

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • P
              pepozzo User • ultima modifica di

              Grazie per il consiglio, ma l'INNER JOIN lo dovrei inserire tra il richiamo alle due tabelle del db?

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • L
                luigi 0 User Attivo • ultima modifica di

                c'è una relazione tra le due tabelle? i campi modello e descrizione ci sono in entrambe le tabelle?

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • S
                  sups User Attivo • ultima modifica di

                  Trattandosi di operazioni su due tabelle, prova a cambiere i tag <campo> della query con i tag <tabella>.<campo>.
                  Altra cosa, le tabelle su cui esegui il matching hanno un indice full-text?

                  Ciao!

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  Caricamento altri post
                  Rispondi
                  • Topic risposta
                  Effettua l'accesso per rispondere
                  • Da Vecchi a Nuovi
                  • Da Nuovi a Vecchi
                  • Più Voti