LORETTA B. forum

Linguaggi di programmazione => Php e MySql (data base) => Topic aperto da: fmarano - Novembre 23, 2016, 14:09:33

Titolo: ricerca nel database
Inserito da: fmarano - Novembre 23, 2016, 14:09:33
Buongiorno a tutti,
premesso che non so nulla di php, chi può aiutarmi?
Ho bisogno di fare una ricerca sul database facendo inserire nel form di ricerca almeno non meno di 3 caratteri.
Sevo indicarlo nella pagina di ricerca o nella funzione?
Nella pagina di ricerca ho questo:

<?php
if ($lemma != "") {
   echo "<h2>ricerca per " . $lemma . "</h2>\n";
   $campo = "autore1";
   $selectWhere = " WHERE autore1 LIKE '%".$lemma."%' OR titolo LIKE '%".$lemma."%' OR anno LIKE '%".$lemma."%' OR parolechiave LIKE '%".$lemma."%'";
   connect_db($tabella, $where);
} else {
   echo "Inserisci la parola da cercare<br />\n";
}

Nella funzione ho questo:

$string = "";
   $lemma = $_REQUEST['cerca'];
   if ($lemma != "") {
   $string = "&amp;cerca=".$lemma;
   }
   $Query = "SELECT * FROM ".$tabella;
   if ($where) {
      $Query .= $where;

Cosa devo scrivere per far sì che il termine inserito nel form non sia meno di 3 caratteri?

Molte grazie!

Titolo: Re:ricerca nel database
Inserito da: Loretta/Nina - Novembre 23, 2016, 17:06:32
Ciao  :ciao:  fmarano e benvenuto nel forum!


Per il tuo quesito vedo di trovare la soluzione, perché il nostro admin del php al momento è assente, cercheremo di darti risposta al più presto.

 :Party133:
Titolo: Re:ricerca nel database
Inserito da: micdas - Novembre 24, 2016, 21:20:53
ciao fmarano,
al quesito ci sono varie soluzioni:

uno in HTML
alla casella di testo dai queste direttive tutte in HTML
Codice: Non sei autorizzato a vedere i links. Registrati o Login
<input pattern=".{3,}" required title="3 characters minimum" type="text" name="cerca">
due in JS
in una pagina js (tre_car_min.js) scrivi questa funzione:
Codice: Non sei autorizzato a vedere i links. Registrati o Login
function min3 (campo) {
if (campo.value.length < 3) {
alert("nella casella "   campo.name   " inserire minimo 3 caratteri.");
campo.focus();
return false;
}
}
Nella pagina che contiene il form richiami il JS tra i tag <head>....</head>:
Codice: Non sei autorizzato a vedere i links. Registrati o Login
<script type="text/javascript" src="tre_car_min.js"></script>
Poi la sintassi della dichiarazione del form diverrà:
Codice: Non sei autorizzato a vedere i links. Registrati o Login
<form name="form_for_js" method="post" onsubmit="return min3(cerca1)" action="elabora.php">
(ovviamente i nomi 'form_for_js', cerca1' e 'elabora.php" saranno quelli da te scelti)

tre solo PHP
nella pagina del procdesso al form (non c'è bisogno di creare una propria finzione), procdesserai la casella di testo da me chiamata 'cerca2' farai questi semplici controlli:
Codice: Non sei autorizzato a vedere i links. Registrati o Login
<?php
$lemma 
trim($_REQUEST['cerca2']);
if (
$lemma != "") {
if (strlen($lemma) < 3) {
echo "Lunghezza stringa di ricerca non valido<br />\n";
echo "Torna indietro";
} else {
// elaborazione
$Query "SELECT * FROM " $tabella " WHERE autore1 LIKE '%".$lemma."%' OR titolo LIKE '%".$lemma."%' OR anno LIKE '%".$lemma."%' OR parolechiave LIKE '%".$lemma."%'";
// ecc
}
}
?>


nei test da me eseguiti funzionano tutte e tre le soluzioni.
Fammi sapere