Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Problema strano submit/enter

    Ciao a tutti,
    premetto che non sono molto esperto di php/mysql, ho un problema relativo un piccolo sistema di ricerca(in un campo di una tabella di un db mysql) che ho da poco inserito nel mio sito: l'utente inserisce in un campo una parola che gli interessa ricercare, invia il form che porta i dati alla pagina dei risultati, con un if si determina (se non ci sono risultati), l'apparizione della scritta "Nessun risultato corrispondente a "(qui appare tramite una variabile il testo immesso dall'utente)". Il problema é che se l'utente inserisce nel campo di ricerca "cane" e per inviare il form usa il tasto enter della tastiera(molto più comodo e rapido) esce sempre la scritta "Nessun risultato corrispondente a "cane(la variabile della parola cercata funziona)", se invece l'utente invia il form con "cane" nel campo di ricerca e preme con il mouse "invia" nella pagina dei risultati appare giustamente il record cane. La particolarità del problema sta appunto nel fatto che con il tasto enter della tastiera invia i dati alla pagina dei risultati, infattila variabile $parola_ricerca nella scritta "Nessun risultato corrispondente a "$parola_ricerca"." corrisponde a quella inserita, però non si visualizza il record come sarebbe giusto.
    Premendo invia con il mouse invece tutto funziona correttamente. Sono veramente confuso, sperando che qualcuno sappia come aiutarmi vi ringrazio in anticipo.

  2. #2
    può essere che ci sia un carattere di escape dopo la parola che viene inserita nel campo?
    "Una volta che si saranno esaurite senza successo tutte le possibilita', ci sara' una soluzione, semplice e ovvia, che saltera' immediatamente all'occhio di chiunque altro."

    Guardate: Il Miracolo delle Noci!!

  3. #3
    Come già scritto non sono molto esperto, potresti spiegarti meglio?

  4. #4
    cioè non dovrebbe accadere, però potrebbe anche esserci un carattere di escape nel capo di testo, cioè premendo INVIO nel campo, il form può anche capire che stai aggiugnendo un carattere particolare (in questo capo proprio il ritorno a capo che si da con invio) e quindi darti dei problemi in fase di ricerca perchè sta cercando oltre alla parola, anche un'altro carattere che non c'è nel database.
    Posta la query che usi per la ricerca o lo script che usi per la ricerca.
    "Una volta che si saranno esaurite senza successo tutte le possibilita', ci sara' una soluzione, semplice e ovvia, che saltera' immediatamente all'occhio di chiunque altro."

    Guardate: Il Miracolo delle Noci!!

  5. #5
    codice:
    <form action="?temp_view=ricerca_result.php3" method="POST">
    <font color="FF9933">Cerca un gioco:</font>
    <input align="middle" type="text" name="nome"> 
    <input type="submit" align="center" name="submit" value="CERCA">
    </form>
    questo é il form di entrata.

    Questo invece é la pagina che riceve i dati:

    codice:
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <body>
    <center>
    
    <?php
    /* This program gets news items from the database */
    include("config.php");
    $db = mysql_connect("$mysql_host", "$mysql_user", "$mysql_pass");
    mysql_select_db("$mysql_name", $db);
    if ($orderby == 'date'):
    elseif (isset($submit)):
    $sql = "select * from giochi where `nome` LIKE '%$nome%' order by `nome` limit 0, 100000000";
    endif;
    $result = mysql_query($sql);
    $num_rows = mysql_num_rows($result);
    ?>
    <?
    if ($num_rows >= "1") {print "Ci sono $num_rows risultati della ricerca di &quot;$nome&quot;:";}
    ?>
    
    
    
    <?
    while ($row = mysql_fetch_array($result)) {
    ?>
    <center>
    <table border="0" cellpadding="0" cellspacing="0" width="443" height="160" id="table1">
    	<tr>
    		<td height="30" width="443" colspan="4">
    		<a target="_blank" href="<? print"../giochi/$row[desgioco]$row[extgioco]" ?>">
    		<font size="4" color="#FF6600"><? print"$row[nome]" ?></font></a></td>
    	</tr>
    	<tr>
    		<td height="19" width="113"><font color="#FF6600"><font size="2">Data</font>:
    		</font><? print"$row[data]" ?></td>
    		<td height="19" width="101"><font color="#FF6600"><font size="2">Ora</font>: </font><? print"$row[ora]" ?></td>
    		<td height="19" width="126"><font color="#FF6600"><font size="2">
    		Genere</font>:</font> <? print"$row[genere]" ?></td>
    		<td height="19" width="103"><font color="#FF6600"><font size="2">Voto</font>: </font><font size="4"><? print"$row[voto]" ?></font></td>
    	</tr>
    	<tr>
    		<td height="87" width="443" colspan="4">
    		">[img]<? print[/img]" width="80" height="70" align="left"><? print"$row[body]" ?></td>
    	</tr>
    	<tr>
    		<td width="443" colspan="4"><hr color="#FF6600"></td>
    	</tr>
    </table>
    <?
    }
    ?>
    <?
    if ($num_rows == "") {print "Nessun gioco corrisponde alla parola &quot;$nome&quot;.<a href=\"?temp_view=ricerca.php3\">Clicca qui per riprovare.</a>"; exit;}
    ?>
    </center>
    </center>
    </body>
    </html>

  6. #6
    Utente bannato
    Registrato dal
    Jan 2002
    Messaggi
    852
    hai la query errata

    $sql = "select * from giochi where nome LIKE '%".$_POST'[nome']."%' order by nome limit 0, 100000000";

  7. #7
    prova intanto a modificarlo così:
    Codice PHP:
    <?
    if ($num_rows >= 1) {print "[b]Ci sono $num_rows risultati della ricerca di [i]"$nome":[/i][/b]";}
    ?>
    e così:
    Codice PHP:
    <?
    if ($num_rows == 0) {print "[b]Nessun gioco corrisponde alla parola [i]"$nome"[/i].<a href=\"?temp_view=ricerca.php3\">Clicca qui per riprovare.</a>[/b]"; exit;}
    ?>
    "Una volta che si saranno esaurite senza successo tutte le possibilita', ci sara' una soluzione, semplice e ovvia, che saltera' immediatamente all'occhio di chiunque altro."

    Guardate: Il Miracolo delle Noci!!

  8. #8
    Utente bannato
    Registrato dal
    Jan 2002
    Messaggi
    852
    Originariamente inviato da Lathspell
    prova intanto a modificarlo così:
    Codice PHP:
    <?
    if ($num_rows >= 1) {print "[b]Ci sono $num_rows risultati della ricerca di [i]"$nome":[/i][/b]";}
    ?>
    e così:
    Codice PHP:
    <?
    if ($num_rows == 0) {print "[b]Nessun gioco corrisponde alla parola [i]"$nome"[/i].<a href=\"?temp_view=ricerca.php3\">Clicca qui per riprovare.</a>[/b]"; exit;}
    ?>
    Deve cominciare ad imparare a recuperare i valori dell var con gli appositi array '$_POST'

  9. #9
    Facendo le tre modifiche che mi avete scritto mi esce questo:

    Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in lista_ricerca.php3 on line 17

  10. #10
    Utente bannato
    Registrato dal
    Jan 2002
    Messaggi
    852
    Originariamente inviato da nyo89
    Facendo le tre modifiche che mi avete scritto mi esce questo:

    Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in lista_ricerca.php3 on line 17
    metti la linea di codice?

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.