Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    81

    Ricerca direttamente in resource mysql_query

    Salve ragazzi,
    non riesco a risolvere un piccolo problemino. In una tabella PERSONAGGIO, ho un record così composto:

    Mario, Rossi, 3, 4, 1

    I valori 3,4,1 descrivono le qualità della persona e il valore associato (l'aggettivo, per intenderci) è scritto in un'altra tabella QUALITA, esempio:

    3 | dolce
    4 | amabile
    1 | asociale

    In fase di visualizzazione vorrei vedere:

    Mario, Rossi, dolce, amabile, asociale

    Per fare questo, non posso avvalermi di una JOIN, ma di due query separate, una per il PERSONAGGIO e l'altra per richiamare tutti i record di QUALITA, ovvero $resultQ = mysql_query(select * from QUALITA).

    Non ho trovato funzioni che permettano una ricerca diretta nella resource $resultQ. Voi ne conoscete qualcuna? Oppure è necessario ciclare tutti gli elementi e confrontare di volta in volta i valori ottenuti tramite mysql_fetch_array($resultQ) con quelli presenti nella tabella PERSONAGGIO?

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    81
    Altro quesito:

    Se effettuo un ciclo iterativo (while oppure for) sulla resource $resultQ, tale ciclo viene eseguito solamente una volta... perchè?

    In pratica se cerco "4" la prima volta mi restituisce correttamente "amabile". Se cerco "3" subito dopo non mi restituisce nulla, perchè la ricerca riparte da "4". Come mai?

    Questo è il codice:
    Codice PHP:
    function search_val ($result$value){
      
    //echo $value;
      
    while ($row mysql_fetch_assoc($result)){
     
    //echo $row['ID_Qualita'];
        
    if ($row['ID_Qualita']==$value){
        
    $txt $row['TXT_Qualita'];
        return (
    $txt);
        break;
        }
      }
    }

    $sql "SELECT * FROM QUALITA";
    $res_qualita mysql_quer($sql);
    $array_val search_val($res_qualita'4'); 

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    81
    Ragazzi,
    nessuna idea? Nessun piccolo aiutino?

    Io sto leggendo molti articoli ma non credo si possa fare più di un ciclo sulla resource $resultQ (o si dovrebbe dire result set???). Mi confermate questa impressione?

    Ma allora, in caso di tabelle relazionali (con FOREIGN KEY), devo eseguire di volta in volta una query al database?

    Cioè mi volete dire che se ho un record con 10 valori (di cui 8 con FOREIGN KEY) devo eseguire 8 query, anche se la tabella esterna è sempre la stessa?

    Aiuto, vorrei chiarire questo aspetto... ho un po' di confusione!!!

    Grazie

  4. #4
    Azzolina che confusione .... sembra una spiaggia a ferragosto...


    ma se in una funzione ci metti un return .... che deve fare il php????

    Il puntatore del "result set" puntato dal resource id# si ferma dove fai il return. Lo puoi scorrere tutte le volte che vuoi spostando il puntatore all'inizio del result set.

    Vedi un po' con mysql_data_seek()

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

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    81
    piero.mac, sei il mio salvatore... se fossi donna, prenderei un treno per venirti a baciare!!! Da oggi ti annovero tra i miei idoli... ragazzi ci ho perso una giornata e il "grande" piero.mac ha risolto in secondi numero cinque... Non c'è lo "smilies" dell'applauso ma te lo faccio io... BRAVISSIMO!!!

    Una domanda... in che cosa ho manifestato la mia "confusione"? Ti giuro di aver cercato mille volte all'interno del sito www.php.net ma non ho mai trovato una funzione per spostare il puntatore...

    Ancora mille volte grazie!

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.