Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Ambiguità query

  1. #1

    Ambiguità query

    Buongiorno ragazzi,
    ho un piccolo problema che non riesco a capire.
    Prima di tutto il codice:
    Codice PHP:
    <?php
    $k 
    $_GET['k'];
      
      if ( 
    $k == TRUE && $k != "" 
          {
          if ( 
    strlen($k) >= )
          {
            
    $terms explode(" "$k);
            
    //depuriamo la stringa da cercare sul database
            
    $k =  mysql_escape_string(stripslashes($k));
      
            
    $query "SELECT * FROM Opera WHERE ";
            
    $i=0;
            foreach (
    $terms as $each)   
            {
         
    $i++;
                
        
        if(
    $i == 1)
        
         
    $query .= "TipoOpera LIKE '%$each%' OR Titolo LIKE '%$each%' OR Tecnica LIKE '%$each' ....ecc ";
        else
         
    $query .= "OR TipoOpera LIKE '%$each%' OR Titolo LIKE '%$each%' OR Tecnica  LIKE '%$each' ...ecc ";
            
    //connect
    mysql_connect("localhost","root""db09");
    mysql_select_db("Tesi");

    $query mysql_query($query);
    $numrows mysql_num_rows($query);
    if(
    $numrows>0){
      while(
    $row=mysql_fetch_assoc($query)){
        
    $TipoOpera$row['TipoOpera'];
        
    $Titolo $row['Titolo'];
        
    $Tecnica$row['Tecnica']; 
    ..... 
    ecc

        
    echo "tipo: $TipoOpera
    "
    ;
        echo 
    "titolo: $Titolo
    "
    ;
        echo 
    "tecnica: $Tecnica
    "
    ;
         ..... 
    ecc
            ?>
    <hr />
    <?php
                
    }

            }
            else    {
                        echo 
    "Nessun risultato per la chiave: \"$k\"";
                        echo 
    mysql_error();
                        
                        
    //disconnessione
                        
    mysql_close();
                    }
                    
                }
                else {echo 
    "Devi inserire almeno 3 caratteri";}
            }
            else {echo 
    'Non hai compilato il modulo di ricerca';}
    Se eseguo così la query ottengo tutti i risultati sperati. Mentre se faccio il JOIN e la query diventa:

    Codice PHP:
    $query "SELECT * FROM (((Autore JOIN Creazione ON ID=Autore)JOIN Opera On Opera=Opera.ID)JOIN File ON Opera.ID=File.Opera) WHERE "
    (la quale è corretta se inserita in phpmyadmin) ottengo sempre:
    codice:
    Nessun risultato per la chiave
    per qualsiasi input inserisca.

    C'è qualche errore? Non ho usato qualche accorgimento?
    Fatemi sapere nel caso vi risultasse intuitivo.

    Grazie

  2. #2
    stampa la query con i where compilati e testala in phpmyadmin e vedi se torna risultati
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    Risolto:

    Codice PHP:
            $query "select * from ((Autore left JOIN Creazione ON ID=Autore)right join Opera on Opera=Opera.ID)left join File ON Opera.ID=File.Opera  where "
    ho dovuto introdurre i join esterni in modo che legassero anche i campi non riempiti.

    Grazie del consiglio, l'ho utilizzato direttamente da terminale, e così è stato utile fare delle verifiche.

    Buona giornata

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.