Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    87

    Query con join e estrapolazione dei dati

    Raga sto motore di ricerca si sta rivelando piu tosto di quanto pensassi, ho un due tabelle:

    codice:
    tabella utenti:    
    campi ( id, nome, cognome, citta, regione, data_nascita, data_registrazione, data_ultima_modifica, email, password )
    
    tabella annunci_attivi:
    campi (id, id_utente, data_inserimento, categoria, titolo, descrizione, prezzo, nome_foto, dimensione_foto)
    ho un form con un campo text che preleva la parola chiave e 3 campi select obbligatori

    Codice PHP:
    <form name="cerca_annunci" action="cerca_annunci.php" method="post" >  
    <
    input type="text" name="parola_annuncio" size="40" />  
    <
    select name="categoria" >..............</select>  
    <
    select name="modprovincia" >  
    <
    option value="Tutte le provincie">Tutte le provincie</option>  
    <
    option value="agrigento">Agrigento</option>  
    ......  
    </
    select>  
    <
    select name="modregione" >  
    <
    option value="Tutta Italia">Tutta Italia</option>  
    <
    option value="abruzzo">Abruzzo</option>  
    ......  
    </
    select>  
    <
    input name="cerca_annuncio" type="submit" value="  cerca" title="cerca annuncio" width="89" height="17">          
    </
    form

    e fin qui ci siamo, i problemi li incontro quando mi trovo nella pagina:
    cerca_annunci.php

    ecco il codice

    Codice PHP:
    //ottieni risultati dal post  
        
    $parola_annuncio mysql_real_escape_string($_GET['parola_annuncio']);  
        
    $categoria_annuncio mysql_real_escape_string($_GET['categoria']);  
        
    $citta_annuncio mysql_real_escape_string($_GET['modprovincia']);  
        
    $regione_annuncio mysql_real_escape_string($_GET['modregione']);  

        
    //situazione in cui tutti i campi del form vengono compilati  
        
    $query_cerca_annunci mysql_query("SELECT annunci_attivi.id_utente, annunci_attivi.titolo, annunci_attivi.descrizione,     annunci_attivi.categoria, MATCH(annunci_attivi.titolo, annunci_attivi.descrizione, annunci_attivi.categoria)   
        AGAINST('+
    $regione_annuncio +$citta_annuncio +$categoria_annuncio $parola_annuncio' IN BOOLEAN MODE)   
        as score FROM annunci_attivi   
        INNER JOIN utenti ON annunci_attivi.id_utente = utenti.id  
        WHERE MATCH(utenti.citta, utenti.regione) AGAINST('+
    $regione_annuncio +$citta_annuncio +$categoria_annuncio $parola_annuncio'   
        IN     BOOLEAN MODE) ORDER BY score DESC"
    );  

        
    //se la query funziona  
            
    if($query_cerca_annunci){  
                
    $conta_righe_annunci_trovati mysql_num_rows($query_cerca_annunci);  
              
                if(
    $conta_righe_annunci_trovati 0){  
              
                    
    $id_utenti_annunci = array();  
                    
    $id_annunci = array();  
                    
    $categorie_annunci = array();  
                    
    $prezzi_annunci = array();  
                    
    $citta_annunci = array();  
                    
    $regioni_annunci = array();  
                    
    $titoli_annunci = array();  
                    
    $descrizioni_annunci = array();  
          
                    
    $i 0;  
                    while(
    $rows_annunci_trovati mysql_fetch_array($query_cerca_annunci)){  
                        
    $i++;  
                        
    $id_annunci[$i] = $rows_annunci_trovati['id'];  
                        
    $categorie_annunci[$i] = $rows_annunci_trovati['categoria'];  
                        
    $prezzi_annunci[$i] = $rows_annunci_trovati['prezzo'];  
                        
    $citta_annunci[$i] = $rows_annunci_trovati['citta'];  
                        
    $regioni_annunci[$i] = $rows_annunci_trovati['regione'];  
                        
    $titoli_annunci[$i] = $rows_annunci_trovati['titolo'];  
                        
    $descrizioni_annunci[$i] = $rows_annunci_trovati['descrizione'];                                          
                    }  
                      
                echo 
    $citta_annunci[1];  
                  
                }else{  
                    echo 
    'Nessun annuncio trovato';  
                }  
                  
            }else{  
                echo 
    'La query non è andata a buon fine';  
            } 
    non so dirvi se la query è scritta bene so che non mi manda piu nel ramo else dove stampavo

    Codice PHP:
    echo 'La query non è andata a buon fine'
    so però che adesso mi da i seguenti errori:

    codice:
    Notice: Undefined index: id in C:EasyPHPwwwaaacerca__annunci.php on line 76  
    
    Notice: Undefined index: categoria in C:EasyPHPwwwaaacerca_annunci.php on line 77  
    
    Notice: Undefined index: prezzo in C:EasyPHPwwwaaacerca_annunci.php on line 78  
    
    Notice: Undefined index: citta in C:EasyPHPwwwaaacerca_annunci.php on line 79  
    
    Notice: Undefined index: regione in C:EasyPHPwwwaaacerca_annunci.php on line 80  
    
    Notice: Undefined index: id in C:EasyPHPwwwaaacerca_annunci.php on line 76  
    
    Notice: Undefined index: categoria in C:EasyPHPwwwaaacerca_annunci.php on line 77  
    
    Notice: Undefined index: prezzo in C:EasyPHPwwwaaacerca_annunci.php on line 78  
    
    Notice: Undefined index: citta in C:EasyPHPwwwaaacerca_annunci.php on line 79  
    
    Notice: Undefined index: regione in C:EasyPHPwwwaaacerca_annunci.php on line 80  
    
    Notice: Undefined index: id in C:EasyPHPwwwaaacerca_annunci.php on line 76  
    
    Notice: Undefined index: categoria in C:EasyPHPwwwaaacerca_annunci.php on line 77  
    
    Notice: Undefined index: prezzo in C:EasyPHPwwwaaacerca_annunci.php on line 78  
    
    Notice: Undefined index: citta in C:EasyPHPwwwaaacerca_annunci.php on line 79  
    
    Notice: Undefined index: regione in C:EasyPHPwwwaaacerca_annunci.php on line 80
    credo che quando si effettua una join non si estrapolano i dati in questo modo

    Codice PHP:
    while($rows_annunci_trovati mysql_fetch_array($query_cerca_annunci)){   
                        
    $i++;   
                        
    $id_annunci[$i] = $rows_annunci_trovati['id'];   
                        
    $categorie_annunci[$i] = $rows_annunci_trovati['categoria'];   
                        
    $prezzi_annunci[$i] = $rows_annunci_trovati['prezzo'];   
                        
    $citta_annunci[$i] = $rows_annunci_trovati['citta'];   
                        
    $regioni_annunci[$i] = $rows_annunci_trovati['regione'];   
                        
    $titoli_annunci[$i] = $rows_annunci_trovati['titolo'];   
                        
    $descrizioni_annunci[$i] = $rows_annunci_trovati['descrizione'];                                           

    qualcuno sa come fare?

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    87
    up

  3. #3
    ho letto solo le prime righe e mi son fermato a questo:

    <form name="cerca_annunci" action="cerca_annunci.php" method="post" >

    e poi.....

    $parola_annuncio = mysql_real_escape_string($_GET['parola_annuncio']);


    $_POST o $_GET ????

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

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    87
    hai ragione facendo il copia ed incolla ho sbagliato il form ha method= get scusatemi

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    87
    ho modificato la query nel sweguente modo credo sia corretta ma non riesco ad estrarre i dati con mysql_fetch_array() qualcuno mi può dire dove sbaglio ecco il codice dela nuova query

    Codice PHP:
    $query_cerca_annunci mysql_query("SELECT annunci_attivi.titolo, annunci_attivi.descrizione, annunci_attivi.categoria, annunci_attivi.prezzo, utenti.citta, utenti.regione,
        MATCH(utenti.citta, utenti.regione, annunci_attivi.titolo, annunci_attivi.descrizione, annunci_attivi.categoria)    
        AGAINST('+
    $citta_annuncio +$regione_annuncio +$categoria_annuncio +$parola_annuncio' IN BOOLEAN MODE)    
        as score FROM annunci_attivi    
        INNER JOIN utenti ON annunci_attivi.id_utente = utenti.id   
        WHERE MATCH(utenti.citta, utenti.regione, annunci_attivi.titolo, annunci_attivi.descrizione, annunci_attivi.categoria)     AGAINST('+
    $citta_annuncio +$regione_annuncio +$categoria_annuncio +$parola_annuncio' IN BOOLEAN MODE) ORDER BY score DESC"); 

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    87
    ho risolto con quest'ultima query

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