inserire query in mysql

andrea1971

Nuovo Utente
29 Dic 2010
29
0
0
ciao a tutti ,premetto che sono un neofitta in programmazione e chiedo l'aiuto di qualcuno per fare questa piccola operazione,vorrei inserire in un database una tabella di parole piu ricercate sul mio sito,diciamo che qualcosa ho fatto ma dovrei risolvere,due cose ossia:
quando la query esiste gia,aumentare le hit,mentre se uno fa una ricerca senza inserire nessuna parola,dovrebbe non aggiornare nulla.
questo è la semplice struttura del database:


id
keywords
hit

mentre questo e' il codice php:

PHP:
$searchstring=($_REQUEST['searchtext']); 		
$sSQL="INSERT INTO ".PREFIX."pm_search SET  keywords='".$searchstring."'"; 		
$db->query($sSQL);

al momento funziona ma mi inserisce ogni query anche se esiste gia e mi crea un nuovo id per le parole vuote.

grazie mille!
 
Ultima modifica di un moderatore:

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
PHP:
if($_REQUEST['searchtext'] !='')
{
$searchstring=($_REQUEST['searchtext']);         
$sSQL="INSERT INTO ".PREFIX."pm_search SET  keywords='".$searchstring."'";         
$db->query($sSQL);
}else{
echo "Non hai ricercato alcuna key";
}
 

andrea1971

Nuovo Utente
29 Dic 2010
29
0
0
grazie

strano,ma cosi non mi inserisce nessun record neanche quando metto la parola!
intanto grazie del'aiuto
 

andrea1971

Nuovo Utente
29 Dic 2010
29
0
0
PHP:
if($_request['searchtext'] !='')
{
$searchstring=($_request['searchtext']);         
$ssql="insert into ".prefix."pm_search set  keywords='".$searchstring."'";         
$db->query($ssql);
}else{
echo "non hai ricercato alcuna key";
}




cosi funziona e solo che dovrei risovere il problema delle parole doppie e incrementare le hit se una parola esiste gia!!!
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Prova così:
PHP:
<?php
// supponendo che $db sia un'istanza di PDO

if ($_REQUEST['searchtext'] != '') {
	$stm = $db->prepare('SELECT * FROM '. PREFIX .'pm_search WHERE keywords = ?');
	$stm->execute(array($_REQUEST['searchtext']));
	
	if ($stm->rowCount() > 0) {
		$sql = 'UPDATE '. PREFIX .'pm_search SET hit = hit + 1 WHERE keywords = ?';
	}
	else {
		$sql = 'INSERT INTO '. PREFIX .'pm_search (keywords, hit) VALUES (?, 1)';
	}
	
	$stm = $db->prepare($sql);
	$stm->execute(array($_REQUEST['searchtext']));
}
else {
	echo 'Non hai ricercato alcuna keyword.';
}
 

andrea1971

Nuovo Utente
29 Dic 2010
29
0
0
Prova così:
PHP:
<?php
// supponendo che $db sia un'istanza di PDO

if ($_REQUEST['searchtext'] != '') {
	$stm = $db->prepare('SELECT * FROM '. PREFIX .'pm_search WHERE keywords = ?');
	$stm->execute(array($_REQUEST['searchtext']));
	
	if ($stm->rowCount() > 0) {
		$sql = 'UPDATE '. PREFIX .'pm_search SET hit = hit + 1 WHERE keywords = ?';
	}
	else {
		$sql = 'INSERT INTO '. PREFIX .'pm_search (keywords, hit) VALUES (?, 1)';
	}
	
	$stm = $db->prepare($sql);
	$stm->execute(array($_REQUEST['searchtext']));
}
else {
	echo 'Non hai ricercato alcuna keyword.';
}



cosi funzionerebbe,l'unica cosa e' che mi inserisce anche le ricerche senza parola creando un id e lasciando vuoto la colonna keywords:
PHP:
$searchstring=($_REQUEST['searchtext']); 
$sSQL="SELECT keywords FROM ".PREFIX."pm_search WHERE keywords='".$searchstring."'";	
    $result = $db->query($sSQL);  
	
	  if($result->size()>0)
		{
		while($rs=$result->fetch())	
	
$sSQL="UPDATE ".PREFIX."pm_search SET hit = hit + 1 WHERE keywords='".$searchstring."'";
$db->query($sSQL);
	}
	else {
    $searchstring=($_REQUEST['searchtext']);		
$sSQL="INSERT ".PREFIX."pm_search SET  keywords='".$searchstring."'ON duplicate KEY UPDATE hit=hit+ 1 ";         
$db->query($sSQL);
}
 

andrea1971

Nuovo Utente
29 Dic 2010
29
0
0
Sembra che funziona!!!

NON SO NEANCHE IO COME HO FATTO MA COSI SEMBRA CHE FUNZIONI,COME LO VOLEVO!ANCHE SE FORSE C'E' QUALCHE CODICE DI TROPPO!
INTANTO GRAZIE MILLE DEL'AIUTO,SPEREM!

PHP:
$searchstring=($_GET['searchtext']); 
$sSQL="SELECT keywords FROM ".PREFIX."pm_search WHERE keywords='".$searchstring."'";	
    $result = $db->query($sSQL);  
	
	  if($result->size()>0)
		{
		while($rs=$result->fetch())	
	
$sSQL="UPDATE ".PREFIX."pm_search SET hit = hit + 1 WHERE keywords='".$searchstring."'";
$db->query($sSQL);
	}
	else if ($searchstring=($_GET['searchtext'])== NULL)
	{
    echo '';
}
else
	{
    $searchstring=($_GET['searchtext']);
			
$sSQL="INSERT ".PREFIX."pm_search SET  keywords='".$searchstring."'ON duplicate KEY UPDATE hit=hit+ 1 ";         
$db->query($sSQL);
}
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
PHP:
var_dump($_REQUEST['searchtext']); 
$searchstring=($_REQUEST['searchtext']); //subito prima o subito dopo questa istruzione
//..........
anche se sarebbe meglio come dice alex, in funzione di come trasmetti la variabile (form con action="post" e con un link mia_pag.php?searchtext=pinco ($_GET)

PHP:
var_dump($_POST['searchtext']); 
$searchstring=($_POST['searchtext']);
//...........
poi puoi inserire i var_dump anche dopo le $sSQL, var_dump($sSQL);
e vedere se vengono scritte come si deve
ricordati, una volta che lo script funzia, di toglierli o di commentarli (io generlmente li commento a memento di dove mi sono incastrato)
 

andrea1971

Nuovo Utente
29 Dic 2010
29
0
0
ampliamento

visto che adesso funziona ,come mio solito devo trovare qualcosa per complicarmi la vita,sto cercando aggiungendo il campo section nella tabella pm_search ,section sta per "categoria" e lo richiamo con questo codice:
PHP:
$section=($_GET['type']);

vorrei che se uno fa la ricerca solo della parola,mi crea un record cosi:

id 1
keywords ciao
hit 1
section 0


mentre se uno fa una ricerca con parola e categoria mi crea un record cosi:

id 1
keywords ciao
hit 1
section 14

dove ad esempio 14 sta per categoria "piante"

grazie per chi mi puo aiutare!!!
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
PHP:
$sql = 'SELECT * FROM tabella WHERE keywords = keyword';

if (isset($_GET['type']) && $_GET['type'] != '') {
    $sql .= ' AND section = ' . $_GET['type'];
}
Dovrebbe funzionare.

Comunque il tuo script non è assolutamente protetto contro le SQL injection. Se proprio sei deciso a non usare PDO, usa almeno funzioni come addslashes per assicurarti che nessun lamer possa cancellarti l'intero database con una tecnica vecchia come il cucco.
 

andrea1971

Nuovo Utente
29 Dic 2010
29
0
0
come faccio

come ho detto al'inizio del post,sono alle prime armi,e per questo molte cose non le conosco,ti volevo chiedere se passo a questo PDO,lo script che ho attualmente in uso ,funziona ugualmente ? e come faccio a passare in PDO, con un dominio aruba mysql??


grazie,grande!!!
 

andrea1971

Nuovo Utente
29 Dic 2010
29
0
0
Sembra che la libreria pdo sia installata

come ho detto al'inizio del post,sono alle prime armi,e per questo molte cose non le conosco,ti volevo chiedere se passo a questo PDO,lo script che ho attualmente in uso ,funziona ugualmente ? e come faccio a passare in PDO, con un dominio aruba mysql??


grazie,grande!!!

Ho fatto una verifica e sembra che la libreria PDO mysql sia installata,io uso questo PHP.INI qui:

http://webx196.aruba.it/CP/index.php?ak=phpinfo&ini=reg_off_magicquota_off

Se vuoi dare un'occhiata? grazie ancora!!
 
Discussioni simili
Autore Titolo Forum Risposte Data
G [PHP] inserire risultato di una query in una tabella PHP 3
B [JAVA] - Inserire risultato query DBMS in JTable Java 4
max1850 Inserire il numero di pagine nei risultati di una query Classic ASP 3
Elisacau [Contact form 7] Inserire Numero auto incrementante WordPress 1
gara1 inserire immagine di sfondo in canvas Javascript 0
FDF182 Inserire pdf in db PHP 3
otto9due Inserire o aggiornare tabella my sql controllando una coppia di valori PHP 7
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
D Inserire link PHP 0
L PHPSpreadsheet inserire dati da file .xlsx/.xls su database PHP 2
P inserire due voci in un titolo post wp WordPress 1
R inserire video nel sito HTML e CSS 15
J Inserire blog wordpress in angular CMS (Content Management System) 0
A inserire variabile php colore in div html PHP 2
L inserire dati multi livello PHP 8
G Inserire una scritta Java 1
M Inserire variabile nella value di una hidden PHP 3
S Inserire foto in ogni cella di una tabella Javascript 0
G inserire dati automaticamente in mysql PHP 0
B Vorrei inserire una finestra con messaggio ad un history.back PHP 16
Shyson Inserire placeholder nel campo cerca PHP 5
M Lanciare alert se il codice fiscale è già presente nel db e lasciare la scelta di inserire all'utente PHP 42
atipika INSERIRE ICONE DOWNLOAD E STAMPA WORDPRESS WordPress 10
F Creare un set di date a seconda del frazionamento scelto da inserire in MySQL PHP 6
B inserire valori da una tabella a un altra mysql PHP 34
D [Javascript] inserire uno script in un file php Javascript 6
napuleone [HTML] type="file" inserire path di partenza HTML e CSS 4
Monital [Javascript] inserire dati estratti dal db in html fisso Javascript 1
R [WordPress] Inserire campi aggiuntivi ad un Submit Form già dato dal template (front-end) WordPress 0
M inserire i dati ottenuti da una jquery in una tabella già esistente jQuery 1
G Inserire "Leggi il resto dell'articolo" con link al post sul sito preso via RSS Email Marketing 0
M [PHP] Come inserire codice html in un ciclo while PHP 2
P [PHP] Inserire stringhe in input(text),memorizzarle e stamparle in file successivo PHP 0
J [Javascript] Inserire un caricamento con animazione prima dell'esecuzione di un'azione Javascript 1
Shyson [PHP] Inserire testo nel codice PHP 2
D Mailchimp - Possibile inserire doppia condizione per i triggers? Email Marketing 0
A [MS Access] Pulsante per inserire allegati in campo maschera MS Access 0
Shyson [HTML] Inserire nuovo font con @font-face HTML e CSS 5
Alex_70 Inserire photo in php PHP 0
D [Javascript] [HTML] Inserire slash dopo 3 numeri Javascript 5
F INSERIRE IN UN'UNICA CASELLA DI TESTO REPORT ACCESS I VALORI DELLA TABELLA DI UN'INTERA COLONNA MS Access 2
A [HTML] Come inserire google review stars nelle pagine del mio sito HTML e CSS 0
spider81man Connettersi ad un DB ed inserire dati con Javascript Javascript 3
spider81man [PHP] Inserire file .pdf in db PHP 6
P [WordPress] Inserire codice in pagina dinamica WordPress 0
A [PHP] Ciclare array multidimensionale e inserire valori in DB PHP 2
M [PHP] Inserire array nel db PHP 6
andreas88 [HTML] come inserire 3 riquadri in un unico rigo (vedere img allegata) HTML e CSS 11
P [Javascript] Inserire una nuova condizione in una funzione Javascript 3
G [Guida MyBB 1.8] Inserire icone accanto alle sezioni CMS (Content Management System) 0

Discussioni simili