Pagina 2 di 5 primaprima 1 2 3 4 ... ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 42
  1. #11
    Originariamente inviato da portapipe
    Devi usare SELECT DISTINCT nella query di estrazione.
    Così ti ignora i doppioni e quando fai il ciclo per inserire i valori nel menu a tendina, compaiono solo i singoli.
    grazie mille!
    Sarebbe troppo chiederti un pezzettino di codice per il menu a tendina e l'assegnamento? Perchè non so dove metterlo!

  2. #12

  3. #13
    grazie ancora!
    Ci sto riuscendo :P

    Domandona: come faccio a dire di cercare la prima parola e se c'è cercare la seconda e via dicendo?

    Diciamo che non capisco principalmente come si effettua il conto col ciclo for per quanto riguarda tutte le righe

    Io avevo pensato infatti di fare qualcosa del tipo:
    cerca parola A nel campo 1 per TOT record. Se c'è imposta VERO e cerca la seconda e via dicendo con gli altri filtri e infine stamparla a video se corrisponde, altrimenti ritornare alla parola precedente e continuare con la ricerca per gli altri record.

    Non riesco a capirlo...
    Comunque credo che debba capire qual'è il comando simile a "cerca fino alla fine della tabella".. ci deve pur essere un comando del tipo "table.row.count" o chè so io...

    Grazie


    PS:al caricamento della pagina mi dice ca:

    Notice: Undefined index: search in C:\Programmi\EasyPHP5.3.0\www\......ecc.....

    dove search è il valore del Submit, per intenderci... il bottone della ricerca... come faccio a dichiararlo prima? (credo sia questo il punto)

  4. #14
    Con mysql_num_rows .
    Così conti il numero di righe che effettui con la query.
    La ricerca la devi effettuare sulla query vera e propria:
    SELECT * FROM .... LEFT JOIN .... LEFT JOIN .... WHERE matricola ='$idmatricola'
    dove $idmatricola è magari ricavata da un POST di un form di ricerca.
    Poi fai $num=mysql_num_rows($query); e poi fai il ciclo for
    Codice PHP:
    for($i=1;$i>$num;$i++){
    //e qui il codice

    Per l'errore, basta che metti all'inizio del codice:
    $search="" o null, come preferisci.
    Ce l'ho fatta! - ItalianPixel -

  5. #15
    Originariamente inviato da portapipe
    Con mysql_num_rows .
    Così conti il numero di righe che effettui con la query.
    La ricerca la devi effettuare sulla query vera e propria:
    SELECT * FROM .... LEFT JOIN .... LEFT JOIN .... WHERE matricola ='$idmatricola'
    dove $idmatricola è magari ricavata da un POST di un form di ricerca.
    Poi fai $num=mysql_num_rows($query); e poi fai il ciclo for
    Codice PHP:
    for($i=1;$i>$num;$i++){
    //e qui il codice

    Per l'errore, basta che metti all'inizio del codice:
    $search="" o null, come preferisci.
    Per quanto riguarda l'errore me lo restituisce comunque.. ho aggiunto ovviamente il ; finale, ho provato col NULL, l'ho inserito anche in più settori PHP, ma niente. Ovviamente a ricerca effettuata non mi dà più la NOTICE. Boh...

    Per quanto riguarda la ricerca non mi è ancora chiara (mea culpa).
    Posto quì il codice:
    Codice PHP:
    for ($x 0$x count($keysSettore); $x++) {
    $querystr "SELECT * FROM cliente WHERE settore = \"$keysSettore[$x]\" OR settore LIKE \"%$keysSettore[$x]%\"";
    $result mysql_query($querystr);
    $found false;
        if (
    $frow mysql_fetch_array($result)) {
            
    $found true;
            do {
                echo 
    "" $frow["settore"] . " - ".$frow["organismo"]."
    $frow["norma"] . " - " $frow["certificato"] . 
     " 
    $frow["dal"] . " - " $frow["al"] . 
     " 
    $frow["azienda"] . " - " $frow["campo_appl_cert"] . 
     "
    $frow["stato"] . " - "$frow["regione"] . " - " $frow["provincia"] . " - " $frow["citta"] . 
    <hr> "
    ;
            } while (
    $frow mysql_fetch_array($result));

    con questo mi fa la ricerca solo sulla prima parola del form (omonima Settore). In pratica con questa prima query dovrei contare le colonne e poi, a matrioska / cascata, inserire dentro le altre? O come? Visto che potrebbe capitare, ovviamente, che la prima ricerca non ci sia mentre altre a seguire si (nel senso che la prima parola del primo campo non c'è E' VUOTA, mentre magari quella del 3° si, ecc..)

    Grazie mille comunque: mi stai aiutando davvero come non immagini!

  6. #16
    Ci sei andato quasi vicino.
    Devi fare una query normale, senza cicli o cose strane, che ti estrae quello che ti arriva, per esempio, da un form.
    POI conti i record ed è lì che fai l'estrazione con la stessa query ma, questa volta, estraendo i valori invece che il numero completo.
    In teoria potresti fregartene e fare un ciclo while, senza stare a contare le righe.
    Tanto le devi estrarre tutte senza distinzione!
    Codice PHP:
    $querystr "SELECT * FROM cliente WHERE settore = \"$keysSettore[$x]\" OR settore LIKE \"%$keysSettore[$x]%\"";
    $query=mysql_query($querystr); 
    while (
    $frow mysql_fetch_array($query)){
                echo 
    "" $frow["settore"] . " - ".$frow["organismo"]."
    $frow["norma"] . " - " $frow["certificato"] . 
     " 
    $frow["dal"] . " - " $frow["al"] . 
     " 
    $frow["azienda"] . " - " $frow["campo_appl_cert"] . 
     "
    $frow["stato"] . " - "$frow["regione"] . " - " $frow["provincia"] . " - " $frow["citta"] . 
    <hr> "

            } 

    Ti filtra i risultati già dalla query. Non hai bisogno di altro. Quello che non è true nelle condizioni della query non viene proprio estratto.
    Ce l'ho fatta! - ItalianPixel -

  7. #17
    Allora...
    sono giunto alla conclusione che l'avevo pensata troppo complicata

    in pratica, sulla base di quel pezzettino di codice, risolvo tutto, credo, facendo una cosa di questo tipo:

    SELECT * FROM cliente WHERE [se nomeCercato non è nullo]cliente.nome=nomeCercato AND [se cognomeCercato non è nullo] cliente.cognome=cognomeCercato ecc....

    in parole povere dovrebbe funzionare?
    c'è un modo per mettere l'IF nella query?


    in questo modo mi evito tanti cicli zeppi di IF e quant'altro.
    Infatti se mettessi l'if not null per ogni campo, poi mi cercherebbe il tutto solo se TUTTI i campi fossero pieni, e mi ignorerebbe una specie di ricerca parziale...

    Grazie ancora...

    ..ci sono quasi

  8. #18
    allora? mi hai abbandonato?

  9. #19
    Ma ti avevo risposto! Mi sa che non mi ha inviato il testo... uffaaa!!! Odio quando fa così!


    Ti avevo scritto che non credo esista una if da query.
    Se metti due if all'inizio, cioè
    Codice PHP:
    if(!isset($_POST['nomecercato'])){
    $nomecercato="";
    }else{
    $nomecercato=$_POST['nomecercato'];

    e lo stesso per il cognome, avrai la certezza che se non ti arriva nulla, avrai un campo vuoto (non nullo) e quindi cercherà qualsiasi nome con nessun carattere specificato, cioè tutti.
    Ce l'ho fatta! - ItalianPixel -

  10. #20
    ahahah

    Grazie ancora, ma non mi è chiara una cosa: devo mettere la ricerca per ognuno in maniera separata ogniuno nel suo if, oppure sempre a matrioska? Perchè io non riesco a capire come intrecciare i record.

    Ti spiego: se la parola Alpha è contenuta nel 2° e 3° record, mentre Beta nel 3° e nel 4°, io dovrei avere la sola visualizzazione del 3° record. Come faccio a farlo per tante parole in maniera alternata?

    (risp. con calma perchè per un'oretta non ci sarò )

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.