Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    problema di stampa dati di una ricerca

    ciao,
    io ho questo script per un semplice motore di ricerca interno.
    codice:
    if ($lingua != "") {
    $clausola_where .= " WHERE studi.id_lingua = ".$lingua;
    }
    
    if ($continente != "") {
    if ($clausola_where == "") $clausola_where .= " WHERE ";
    else $clausola_where .= " AND ";
    $clausola_where .= "studi.id_continente = ".$continente;
    }
    
    if ($nazione != "") {
    if ($clausola_where == "") $clausola_where .= " WHERE ";
    else $clausola_where .= " AND ";
    $clausola_where .= "studi.id_nazione= ".$nazione;
    }
    
    if ($media != "") {
    if ($clausola_where == "") $clausola_where .= " WHERE ";
    else $clausola_where .= " AND ";
    $clausola_where .= "studi.id_media= ".$media;
    }
    
    if ($tema != "") {
    if ($clausola_where == "") $clausola_where .= " WHERE ";
    else $clausola_where .= " AND ";
    $clausola_where .= "studi.id_tema= ".$tema;
    } 
    
    $str_studi = "SELECT studi.*,"
    ."lingua.valore_lingua, "
    ."continente.valore_continente, "
    ."nazione.valore_nazione, "
    ."media.valore_media, "
    ."tema.valore_tema "
    ."FROM studi LEFT JOIN lingua "
    ."ON studi.id_lingua = lingua.id_lingua "
    ."LEFT JOIN continente "
    ."ON studi.id_continente = continente.id_continente "
    ."LEFT JOIN nazione "
    ."ON studi.id_nazione = nazione.id_nazione "
    ."LEFT JOIN media "
    ."ON studi.id_media = media.id_media "
    ."LEFT JOIN tema "
    ."ON studi.id_media = media.id_media"
    .$clausola_where; 
    
    //echo $str_studi;
    
    $result = mysql_query($str_studi)or die(mysql_error());
      if  (!$result[0]) {
            while($titolo = mysql_fetch_array($result)) {
    
    echo $titolo["titolo_studio"]."
    ";
           }
      
        } else echo "Non ci sono titoli";
       
    ?>
    il problema che non capisco è come mai mi stampa sempre 3 volte lo stesso dato $titolo["titolo_studio"]invece di una sola volta????
    grazie.

  2. #2
    ho risolto..

    c'era un problema nella query.


  3. #3

    Re: problema di stampa dati di una ricerca

    Originariamente inviato da blur

    codice:
    while($titolo = mysql_fetch_array($result)) {
    
    echo $titolo["titolo_studio"]."
    ";
           }
      
        } else echo "Non ci sono titoli";
    il problema che non capisco è come mai mi stampa sempre 3 volte lo stesso dato $titolo["titolo_studio"]invece di una sola volta????
    grazie.
    Dovresti controllare la "WHERE" della query. Stampa tre volte lo stesso dato perchè la query nel ciclo "while" ti tira fuori tre righe che soddisfano le tue condizioni.
    P.S. mi spieghi a cosa serve la barra dopo br
    ?

    CIAU CIAU
    Se la vita ti sorride, ti sta prendendo per il cul0

  4. #4
    ciao,

    non so se era quello, mi stampava 3 volte perchè era sbagliata la query

    codice:
    ."ON studi.id_media = media.id_media "
    ."LEFT JOIN tema "
    ."ON studi.id_media = media.id_media"
    .$clausola_where;
    anzichè
    codice:
    ."ON studi.id_media = media.id_media "
    ."LEFT JOIN tema "
    ."ON studi.id_tema = tema.id_tema"
    .$clausola_where;
    la barra dopo
    serve per chiudere il tag. è richiesta se utilizzi codice xhtml.

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.