Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    14

    Nessun risultato ricerca php in mysql

    Salve, è il mio primo post e spero di non aver sbagliato sezione.
    Ho cercato in lungo ed in largo sul web e su questo sito, letto fogli e fogli di manuali mysql ma (da ignorante forse) non sono riuscito a trovare una risposta.

    Gestisco a livello amatoriale il sito della mia scuola (www.liceomoscati.it) e dunque non so veramente niente di linguaggi di programmazione/interrogazione del server (apparte l'html che non c'entra niente)

    Ultimamente mi si è presentato il problema di creare una biblioteca online. Non conosco un programma che lo faccia da sè dunque mi sono messo all'opera e dopo varie peripezie sono giunto alla soluzione che, creata una tabella sul database con valori "autore" e "titolo" potevo inserire facilmente ed elementarmente uno script+form (php ovviamente) che ricercasse i valori nella tabella. Di script predisposti ce ne sono a bizzeffe ma tuttavia tutti hanno un errore comune: a ricerca conclusa non mostrano nè l'autore nè il titolo.
    Mi spiego meglio:
    -mi connetto al form di ricerca "www.liceomoscati.it/search.php"
    -inserisco la parola "al gore" nel form
    -lo script si connette ed esegue correttamente la ricerca
    -stampa solamente il numero di risultati ottenuti (es. 1 risultato trovato)

    Eppure al variare degli script l'echo (credo che sia la funzione "stampa" in php) è esatto (inquanto ho provato a copiare/incollare uno script che funzionava trovato su questo sito).

    La mia domanda è:
    -è possibile che il server MySql necessiti di particolari autorizzazioni per permettere allo script di "stampare" il risultato?
    -è possibile che l'host di aruba non permetta tali cose?

    Grazie per un eventuale collaborazione.

    P.S. Ho omesso l'inserimento del codice perchè a mio modestissimo parere (parlo da ignorante) non appartiene al codice l'errore inquanto, come sopra riportato, ho provato con molteplici script diversi i quali davano tutti lo stesso "errore".

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    14
    Mi scuso per l'inconveniente e faccio mea culpa.

    Ho evidentemente sbagliato sezione inquanto mi sono reso conto che il problema ha a che fare con il codice php.

    Continuo la discussione lasciando ad un moderatore il compito di spostarla:

    nel valore
    echo $r['nome_tabella'] "...."
    non stampa un bel niente (apparte la successione dei puntini)

    ho provato a sostituire cosi
    echo $r['nome_tabella'] "$search"
    ed ancora niente

    ho provato a sostituire con
    print_r ($row)
    ed ho ottenuto la stampa ma in maniera tutt'altro che aulica.

    Array ( [Autore] => al gore [Titolo] => la terra in bilico le battaglie per l�ambiente del vicepresidente usa )


    Vi allego il codice:
    Codice PHP:
    <? $connection mysql_connect('nome_host''nome_db''password') or die(mysql_error()); // Creates a new connection to the mysql server. mysql_select_db('db'); // Connects to the database. if(!isset($_POST['search'])){ // If the form has not been submitted. ?> <form method="POST"> Cerca: <input type="text" name="term" id="term" /> <input type="submit" name="search" id="search" value="Cerca" /> </form> <? }elseif(isset($_POST['search'])){ // ElseIf the form has been submitted. $term = addslashes($_POST['term']); // This is our search term, has a little sql injection protection with addslashes. $search = mysql_query("SELECT * FROM libri WHERE Autore LIKE '%$term%' OR Titolo LIKE '%$term'" ); // Using the LIKE syntax we can look in a database for a best match for the input, also the % work as wild cards. $total = mysql_num_rows($search); // Counts the total results found. if($total == 0){ // If the total is equal to 0 that means no results have been found. echo 'Nessun risultato trovato '; // Lets the user know nothing has been found! }else{ // Else there is results. while ($row = mysql_fetch_assoc($search)){ // This will loop through each row found and return the title of the tutorial. print_r ($row); } // End While. } // End Else. } // End ElseIf. ?>

    Grazie e scusate ancora.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    323
    Perdona la domanda ma qual'è la tua domanda ?

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    14
    Stampare il risultato della ricerca in maniera adeguata ed ordinata.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    323
    Perfetto allora come sai già con print_r() stampi il contenuto dell'array in maniera "disordinata" se così la si vuol chiamare.
    Per stamparla bene devi estrapolare i dati del'array con il foreach.Es :

    foreach($mio-array as $key => $value){
    echo "Il numero è $key, ed il suo valore : $value";
    }

    In questa maiera hai assegnato $key e $value all'array...Ogni array ha un proprio $key e $value dove $key è la chiave della parola, $value è il suo valore...

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    14
    Grazie mille! Finalmente stampa decentemente!

    Pubblico il codice perchè potrebbe essere utile a qualcun'altro.

    Codice PHP:
    <?
    $connection 
    mysql_connect('ip server''nome utente''password') or die(mysql_error()); // Creates a new connection to the mysql server.
    mysql_select_db('nome db'); // Connects to the database.
    if(!isset($_POST['search'])){ // If the form has not been submitted.
    ?>
    <form method="POST">
    Cerca: <input type="text" name="term" id="term" />
    <input type="submit" name="search" id="search" value="Cerca" />
    </form>
    <?
    }elseif(isset($_POST['search'])){ // ElseIf the form has been submitted.
        
    $term addslashes($_POST['term']); // This is our search term, has a little sql injection protection with addslashes.
        
    $search mysql_query("SELECT * FROM tua_tabella WHERE nome colonna 1 LIKE '%$term%' OR nome colonna 2 LIKE '%$term'" ); // Using the LIKE syntax we can look in a database for a best match for the input, also the % work as wild cards.
        
    $total mysql_num_rows($search); // Counts the total results found.
        
    if($total == 0){ // If the total is equal to 0 that means no results have been found.
            
    echo 'Nessun risultato trovato '// Lets the user know nothing has been found!
        
    }else{ // Else there is results.
            
    while ($row mysql_fetch_assoc($search)){ // This will loop through each row found and return the title of the tutorial.
                
    foreach($row as $key => $value){
             echo 
    "$value";
    }
                } 
    // End While.
        
    // End Else.
    // End ElseIf.

    ?>

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    14
    Scusate altro problema:

    Stampando più risultati, il valore $value non tiene conto delle differenze.

    Avrei bisogno di ordinare i risultati in colonna del tipo:

    Autore Titolo
    Autore1 Titolo1
    Autore2 Titolo2
    ... ...



    Come potrei farlo?

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    323
    In che senso non tiene conto delle differenze ? stampa valore : X,valore : Y.......







    P.S : Alla fine dell echo.... mettici un
    così ti va a capo
    foreach($row as $key => $value){
    echo "$value
    ";
    }

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    14
    Allora, se inserisco "hegel" per esempio, nella tabella libri ci saranno valori 'Autore' con "hegel" e valori 'Titolo' con "Hegel".

    nel momento in cui stampa la ricerca, non ordina Autore | Titolo ma stampa cosi:

    Autore
    Titolo
    Autore1
    Titolo1
    Autore2
    Titolo2

    Vorrei quindi che mi stampasse l'autore ed il titolo corrispondente tutto su una riga quindi, andare a capo e stamparmi un altra coppia di "autore-titolo".

    Ovviamente nel database l'autore ed il titolo sono inseriti in maniera esatta e nella stessa tabella.

  10. #10
    Originariamente inviato da fdavide
    Grazie mille! Finalmente stampa decentemente!

    Pubblico il codice perchè potrebbe essere utile a qualcun'altro.

    Codice PHP:
    <?
    $connection 
    mysql_connect('ip server''nome utente''password') or die(mysql_error()); // Creates a new connection to the mysql server.
    mysql_select_db('nome db'); // Connects to the database.
    if(!isset($_POST['search'])){ // If the form has not been submitted.
    ?>
    <form method="POST">
    Cerca: <input type="text" name="term" id="term" />
    <input type="submit" name="search" id="search" value="Cerca" />
    </form>
    <?
    }elseif(isset($_POST['search'])){ // ElseIf the form has been submitted.
        
    $term addslashes($_POST['term']); // This is our search term, has a little sql injection protection with addslashes.
        
    $search mysql_query("SELECT * FROM tua_tabella WHERE nome colonna 1 LIKE '%$term%' OR nome colonna 2 LIKE '%$term'" ); // Using the LIKE syntax we can look in a database for a best match for the input, also the % work as wild cards.
        
    $total mysql_num_rows($search); // Counts the total results found.
        
    if($total == 0){ // If the total is equal to 0 that means no results have been found.
            
    echo 'Nessun risultato trovato '// Lets the user know nothing has been found!
        
    }else{ // Else there is results.
            
    while ($row mysql_fetch_assoc($search)){ // This will loop through each row found and return the title of the tutorial.
                
    foreach($row as $key => $value){
             
    print_r($row);
    }
                } 
    // End While.
        
    // End Else.
    // End ElseIf.

    ?>
    Mi dici cosa ti stampa print_r($row); al post di echo $value;

    ?
    Ciao!

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.