Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 17 su 17
  1. #11
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    387
    ciao piero,
    intanto grazie per l'aiuto...

    eccolo qui:

    codice:
    SELECT *, MATCH(titolo,regista,attori,trama) AGAINST('secondo il regista' IN BOOLEAN MODE) AS tot FROM dvd WHERE MATCH(titolo,regista,attori,trama) AGAINST('secondo il regista' IN BOOLEAN MODE) ORDER BY tot DESC
    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in E:\SERVER_APACHE\xampp\htdocs\dvdteca\search.php on line 106
    ho cercato per dire "secondo il regista" risultato che con una collation swedish mi restituisce questo

    codice:
    SELECT *, MATCH(titolo,regista,attori,trama) AGAINST('secondo il regista' IN BOOLEAN MODE) AS tot FROM dvd WHERE MATCH(titolo,regista,attori,trama) AGAINST('secondo il regista' IN BOOLEAN MODE) ORDER BY tot DESC
    Il codice è questo:

    http://forum.html.it/forum/showthrea...icerca+explode

    E per mysql e mysqli lo so che sono diversi. Per il momento sto testando questo script (in locale).

    Ho gli stessi problemi - cioè errre in fase di query - anche con tutt'altro script, in remoto, su macchina unix, con mysqli, che fa tutt'altro (geolocalizzazione appunto).....ù

    Questo è in mysql e l'ho mantenuto cosi senza portarlo in mysqli...

  2. #12
    scusa, ma qual'e' il codice che USI TU. Non mi rimandare ad un thread pieno di codice. Non saprei manco da che parte cominciare a guardare.

    Nel tuo codice tu ricevi un errore su mysql_fetch_array() ed e' questo che vorrei vedere per capire qualcosa della segnalazione.

    posta il blocco che riguarda la query e l'estrazione del resul set. Il tuo codice usato.

    domanda: sul db utf8 hai creato l'indice fulltext? e' per caso InnoDB?

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

  3. #13
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    387
    eccomi qui.. scusa il ritardo ma son tornato ora...

    allora, lo script è questo:

    codice:
     function DbConnectAndSelect()
            {
                $this->conn = @mysql_connect($this->host, $this->user, $this->password) or die ("Impossibile stabilire una connessione con il server.
    MySql risponde: " . mysql_error() . "
    Il codice errore é:" . mysql_errno());
                
                @mysql_select_db($this->db, $this->conn) or die ("Impossibile connettersi al database $this->db.
    MySql risponde: " . mysql_error() . "
    Il codice errore é:" . mysql_errno());
    			
    			mysql_query('set names utf8');
            }
    
            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);
    			
    			echo $sql;
                
            }
    Mentre invece il valore lo passo normalmente cosi

    codice:
    $key = $_POST['search'];
                $search = new Search($key);
    			$search->GetResource();
    			while ($row = mysql_fetch_array($search->res))
    			{
    		    echo "<h2><a href=\"dettaglio_film.php?id_dvd=".$row['id_dvd']."\">".$row['titolo']."</a>" . " (score: " . $search->CalcScore($row['tot']).")</h2>";    
    			}
    			
    			?>
    POI, il db ha fulltext su quel campo e come tipo lìintero DB è myISAM...

  4. #14
    mi sa che non c'entra nulla utf8.

    Riusi la stessa variabile nel while per cui al secondo ciclo non hai piu' il resource id ma un boolean true/false.

    Prova a togliere lo score dal while e vedrai che poi funziona.

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

  5. #15
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    387
    ciao piero,
    allora,
    reimpostato utf8, cambiato codice cosi
    codice:
    <?php
    
    			
                $key = $_POST['search'];
                $search = new Search($key);
    			$search->GetResource();
    			while ($row = mysql_fetch_array($search->res))
    			{
    		    
    			echo "<h2><a href=\"dettaglio_film.php?id_dvd=".$row['id_dvd']."\">".$row['titolo']."</a></h2>";    
    			}
    			
    			?>
    Ed ecco l'errore
    codice:
    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in
    Se rimetto la collation a swedish... fa correttamente la ricerca...

    Penso di rinunciarci... Alla fine la collation la stavo usando per salvare (è un db dei miei dvd) anche caratteri strani, come inarritu (con la n spagnola)... ma ho visto che con la dichiarazione utf-8 in cima, prima di qualsiasi altro script, comunque me li salva...

    PS non voglio stressarti oltre, rinuncio a capire dove sta il problema, ma se vuoi scritp+dump mysql se vuoi posso anche passarteli (dimmi come, per email?)


  6. #16
    l'errore che ricevi e' dato da questa riga:

    while ($row = mysql_fetch_array($search->res))

    Sinceramente non ho perso troppo tempo a studiarmi la classe e manco le funzioni ma forse dovresti valutare nella funzione della query il caso del result set = 0 record o errore di query.

    Ti ricordo ancora che non e' che puoi cambiare semplicemente la collation da swedish a utf8_general_ci. Sono due cose diverse.

    Non e' che cambiando l'etichetta al vasetto della marmellata di fichi tu la puoi far diventare una marmellata di mirtilli. Continuera' ad essere una marmellata di fichi con l'etichetta di una marmellata di mirtilli. Ovviamente se cercherai in tal vasetto dei mirtilli non ne potrai trovare.

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

  7. #17
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    387
    perdonami...
    ma se so per certo che il valore "SECONDO IL REGISTA" nel campo "TRAMA" esiste... come fa ad essere un result = 0?

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.