- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- motore ricerca in PHP e MySQL
-
motore ricerca in PHP e MySQL
Ciao a tutti,
sto cercando di implementare un motore di ricerca nel mio sito, ed ho concentrato le mie attenzioni su questo script:
motore ricerca in PHP e MySQL
forum.html.it/forum/showthread.php?threadid=1280944Ho seguito le istruzioni e configurato il file 'config.inc.php' ma ho riscontrato i seguenti problemi:
- la connessione al db mi è riuscita solo dopo avere sostituito (nel file 'index.php')
connessione ();
con
$connessione = mysql_connect ($host, $user, $pass) or die ("");
Questa è la funzione connessione che NON funziona:
function connessione() {
global $nome_db, $imm_ok, $imm_no, $mess_1, $mess_2, $conn, $seleziona_db;
$conn = @mysql_connect($host, $user, $pass);
if ($conn) {
$mess_1 = "Connessione a <b>MySQL</b> riuscita..." . $imm_ok;
} else {
$mess_1 = "Connessione a <b>MySQL</b> non riuscita..." . $imm_no;
}
$seleziona_db = @mysql_select_db($nome_db, $conn);
if ($seleziona_db) {
$mess_2 = "Selezione del database <b>$nome_db</b> riuscita..." . $imm_ok;
} else {
$mess_2 = "Selezione del database <b>$nome_db</b> non riuscita..." . $imm_no;
}
}- lo script che viene lanciato dopo aver effettuato il login (pagina 'index.php') non riesce a creare la tabella necessaria al funzionamento del sistema, e quindi manca il collegamento tra la tabella e la pagina che inserisce i dati 'index.php?opzione=aggiungi'
Questo è lo script che dovrebbe creare la tabella e creare il collegamento:
$query_crea_tabella = "CREATE TABLE $nome_tb (
id INT(5) UNSIGNED not null AUTO_INCREMENT,
titolo VARCHAR(50) not null,
indirizzo VARCHAR(255) not null,
parole_chiave TEXT not null,
data varchar(14) not null,
data_m varchar(14) not null,
PRIMARY KEY (id)
)";
$ris_query_crea_tabella = @mysql_query($query_crea_tabella, $conn);
if ($ris_query_crea_tabella) {
$mess_3 = "Creazione della tabella <b>$nome_tb</b> in corso..." . $imm_ok;
$mess_3 .= "Installazione dello script riuscita con successo..." . $imm_ok;
} else {
$mess_3 = "Creazione della tabella <b>$nome_tb</b> in corso..." . $imm_no;
$mess_3 .= "Impossibile creare la tabella <b>$nome_tb</b>..." . $imm_no;
$mess_3 .= "Probabilmente non hai settato bene i parametri di connessione nel file <b>config.inc.php</b> o hai già effettuato l'installazione..." . $imm_no;
}Non so se sono riuscita ad essere abbastanza chiara, ma se qualcuno avesse già riscontrato questi problemi e vuol darmi una mano...
-
Il link allo script è questo:
php.html.it/script/vedi/1958/motore-di-ricerca-in-php-e-mysql/
-
Ciao, cosi è poco chiaro, posso pensare a tante cose...
Prova ad installare la tabella con phpmyadmin...
-
Grazie,
l'ho fatto ma il risultato è identico, l'applicativo mi dice che nn è possibile creare la tabella...
:bho:
-
Prova a togliere la chiocciola davanti a @mysql_query** così ti fa vedere l'eventuale errore**
-
Scusa ma perchè ad ogni accesso devi CREARE una tabella? Se la tabella è già presente del database non basta mostrarla all'utente tramite una select?
Ho guardato il tuo file (su html.it) ma lo trovo moolto complicato! Anche io sto provando a fare un db, se vuoi ti posto il mio codice...
Purtroppo però non funziona bene ma non dovrebbe essere troppo sbagliato..Ho letto topic già presenti su altri forum e ho preso spunto per la sintassi
SELECT * FROM nome_tabella WHERE nome_campo LIKE '%testo_inserito%'form con il campo ricerca con action="" che quindi agisce nella sua stessa pagina di origine
<input type="text" name="nome_commessa" id="nome_commessa" value="" />
<input type="submit" name="cerca" id="cerca" value="Cerca" />funzione di ricerca
$nome_commessa=mysql_real_escape_string(trim(htmlspecialchars($_POST['nome_commessa'])));
$cerca=mysql_query("SELECT * FROM Backup WHERE NomeCommessa LIKE '%nome_commessa%'");if($cerca==1)
{
while ($riga = mysql_fetch_assoc($cerca)) {
$nome_commessa=$riga["NomeCommessa"];
echo "$nome_commessa" ; }
}else {
$messaggio = urlencode("Nessun risultato"); //messaggio stampato nel documento
header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio); //posizione del messaggio stampato
die(mysql_error());
}mysql_close();
}Ogni volta mi esce la stringa "Nessun risultato" anche se metto un nome che è sicuramente nel campo NomeCommessa della tabella Backup.
Magari può esserti utile...se scopri come megliorare il codice tanto meglio! Sono nei guai anche io!
-
Giusto, ma ho provato a verificare se la query fosse esatta, esguendola direttamente in phpmyadmin...
-
Questa guida puo esserti utile:
php.html.it/guide/leggi/77/guida-phpmysql-pratica/
-
@BordeauxPrugna said:
funzione di ricerca
$nome_commessa=mysql_real_escape_string(trim(htmlspecialchars($_POST['nome_commessa'])));
$cerca=mysql_query("SELECT * FROM Backup WHERE NomeCommessa LIKE '%nome_commessa%'");ogni volta mi esce la stringa "Nessun risultato" anche se metto un nome che è sicuramente nel campo NomeCommessa della tabella Backup.
Magari può esserti utile...se scopri come megliorare il codice tanto meglio! sono nei guai anche io!Mi sa che qui hai dimenticato un $ per strada...
[PHP]$cerca=mysql_query("SELECT * FROM Backup WHERE NomeCommessa LIKE '%$nome_commessa%'");[/PHP]