evitare doppioni

minatore

Utente Attivo
25 Set 2007
410
0
0

Ciao a tutti sto facendo un casino con questo codice, vorrei solo che non venga inserita una categoria già presente nel db
spero in un vostro aiuto
distinti saluti
qui il codice
PHP:
<?php
	if($_POST)
		{
			inserisci_record();
		}
	else
		{
			mostra();
		}
	
	function inserisci_record()
		{
			//richiamo il file di configurazione
			require 'Config.php';
			//richiamo il file di connessione
			require 'Connect.php';
		
			$categoria=trim($_POST['frm_categoria']);
			
			if(get_magic_quotes_gpc())
				{
					$categoria=stripslashes($categoria);
				}
			$categoria=mysql_real_escape_string($categoria);
			if(!$categoria)
				{
					$messaggio=urlencode("Non hai inserito la Categoria");
					header('location:'.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
					exit;
				}
			$query=("SELECT descrizione FROM categorie WHERE descrizione=".$_POST['frm_categoria']);
			if(mysql_num_rows($query)==1)
					{
						$messaggio=urlencode("Categoria già presente");
						header('location:'.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
						exit;
					}
	 		
			//preparo la query di inserimento
			$query="INSERT INTO categorie(descrizione)
			VALUES('$categoria')";
			//invio query
			$result=mysql_query($query);
			//controllo l'esito
			if(!$result)
				{
					die("errore nella query;".mysql_error());
				}
			//chiudo la connessione
			mysql_close();
		}
		
		function mostra()
			{
				if(isset($_GET['msg']))
					{
						echo htmlentities($_GET['msg']);
					}
			}
?>
 

minatore

Utente Attivo
25 Set 2007
410
0
0
ciao ragazzi, lo so che la cosa che la cosa è alquanto semplice.
Io ci sto ancora lavorando, ma non riesco ad uscirne
ho provato a fare una cosa del genere
PHP:
$query_di_verifica=mysql_query("SELECT descrizione FROM categorie WHERE descrizione=".$_POST['frm_categoria']); 
            mysql_query($query_di_verifica);
			if(mysql_num_rows($query_di_verifica)==1)
			
                    { 
                        $messaggio=urlencode("Categoria già presente"); 
                        header('location:'.$_SERVER['PHP_SELF'].'?msg='.$messaggio); 
                        exit; 
                    }
che ne dite?
P.S. comunque non funziona
Ciao da minatore
 

minatore

Utente Attivo
25 Set 2007
410
0
0
Ciao,
hai ragione quello era il vecchio script
ecco il nuovo ma uguale non funziona
PHP:
$query_di_verifica="SELECT descrizione FROM categorie WHERE descrizione=".$_POST['frm_categoria']; 
            mysql_query($query_di_verifica);
			$num=mysql_num_rows($query_di_verifica);
			if($num==1)
			        { 
                        $messaggio=urlencode("Categoria già presente"); 
                        header('location:'.$_SERVER['PHP_SELF'].'?msg='.$messaggio); 
                        exit; 
                    }

Grazie


errore che viene visualizzato è:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in insert_categoria.php on line 33
la linea 33 è questa
PHP:
$num=mysql_num_rows($query_di_verifica);

Potrest darmi una mano?
 

jan267

Utente Attivo
6 Mar 2003
1.950
2
38
35
Milano
twitter.com
E' sempre sbagliata la query! $query_di_verifica è una stringa.
Così dovrebbe andare:
PHP:
$query_di_verifica_stringa="SELECT descrizione FROM categorie WHERE descrizione='".$_POST['frm_categoria']."';";  
$query_di_verifica = mysql_query($query_di_verifica_stringa);
E poi ti consiglio di usare:
PHP:
if ($num > 0)
al posto di == 1
 

minatore

Utente Attivo
25 Set 2007
410
0
0
Ciao jan267
prima cosa grazie lo script funziona
ma come mai
1 - query_di_verifica_stringa e dopo usi query_di_verifica
2 - perchè > di 0 e non uguale a 0?

Comunque un grazie tante
da minatore

Ti faccio domande per non incappare nello stesso errore

Grazie
 

jan267

Utente Attivo
6 Mar 2003
1.950
2
38
35
Milano
twitter.com
Ciao, allora: per il primo punto io ho usato due variabili solo per il fatto che tu hai preferito dichiarare la query in una stringa anzichè direttamente (es:)
PHP:
$query = mysql_query("SELECT * FROM tabella;");
per il secondo punto è consigliabile (a mio parere) usare > 0 quando cerchi se è presente il record almeno una volta per evitare un problema: magari quel risultato c'è più di una volta e quindi se fai "== 1" lui non ti stampa l'errore.
 

minatore

Utente Attivo
25 Set 2007
410
0
0
Ciao, jan267, grazie per la spiegazione, ho capito
forse perchè mi trovo agli inizi, ma è la prima volta che vedo scritto
PHP:
$query_di_verifica_stringa="SELECT descrizione FROM categorie WHERE descrizione='".$_POST['frm_categoria']."';";
Non chiamarmi scocciatore, ma perchè le virgolette singole e poi le doppie, addirittura 2 volte il punto e virgola
Potresti spiegarmelo?

Ah dimenticavo, lo script va bene finchè non inserisco categorie con l'apostrofo, ma il controllo io già l'ho fatto, non dovrebbe darmi errore

cosa c'è che non va?

grazie da minatore
 
Ultima modifica:

jan267

Utente Attivo
6 Mar 2003
1.950
2
38
35
Milano
twitter.com
  • Virgolette - le virgolette singole racchiudono il testo della variabile $_POST, le virgolette doppie invece servono per evidenziare la variabile
  • Punto e virgola - il primo punto e virgola è facoltativo e serve per impostare la fine della query, il secondo è obbligatorio.
  • Per il terzo punto, prima della stringa della query metti:
    PHP:
    $_POST['frm_categoria'] = addslashes($_POST['frm_categoria']);
Comunque, studia! :book:
 

minatore

Utente Attivo
25 Set 2007
410
0
0
Ciao jean grazie x le spiegazioni e per l'ultimo consiglio, anche se avevo già cominciato
Ciao e buona domenica :fonzie:
 
Discussioni simili
Autore Titolo Forum Risposte Data
A Evitare estrazione record doppioni PHP 2
D evitare di inserirre duplicati in mysql PHP 4
W Evitare ridondanza dei dati Classic ASP 3
G Evitare che mi continui ad arrivare in alice mail spam Posta Elettronica 2
U Posizionamento Rack nel locale tecnico ed eventuali accortezze per evitare incendi Reti LAN e Wireless 1
D consiglio evitare truffe Annunci servizi di Social Media Marketing 11
andreas88 Evitare che la mia idea venga rubata Leggi, Normative e Fisco 5
C [PHP] Ricerca multipla, evitare if PHP 4
elpirata [PHP] Evitare la visualizzazione del carattere di nuova linea \r\n PHP 5
A [Javascript] [CSS] elenco affiancato per evitare scorrimento pagina Javascript 4
michele357 TAG HTML: Come evitare che venga riprodotto un file .mp3 senza cancellarlo HTML e CSS 1
M Evitare la compilazione automatica NomeUtente e Password con Chrome PHP 2
M Evitare rischio assunzione programmatori per nuove aziende? Leggi, Normative e Fisco 3
Antonio_Cantaro Cookie rendirizamento per evitare la loro scrittura Javascript 1
felino Scambio link: consigliato o meglio evitare? SEO e Posizionamento 0
xone Evitare Meta Tag duplicati su paginazione php PHP 2
A [risolto] evitare refresh index dopo recaptcha sbagliato PHP 7
J Evitare al refresh della pagina la ritrasmissione di un form PHP 1
G come evitare l'a capo del testo nelle tabelle HTML e CSS 4
M Evitare SQL Injection senza deformare testo PHP 3
M Confrontare data, ora e aula per evitare sovrapposizioni PHP 8
L Paginazione file evitare di inserire questi \ o altro nella get PHP 1
Shyson Evitare che la pagina si ricarichi jQuery 7
Z evitare il download diretto di file PHP 2
asevenx evitare inserimento dati già presenti in DataBase PHP 20
zerobit Evitare records duplicati nel database PHP 6
S urgentissimo necessità di script per evitare di far visualizzare immagini "rubate" Javascript 12
L invio multiplo e refresh pagina come evitare? PHP 3
A Evitare che una pagina sia accessibile digitando l'url PHP 2
R Evitare SPAM nelle tabelle DI MYSQL MySQL 6
T Evitare refresh pagina Javascript 7
riminese77 Evitare doppio click nelle pagine ASP.NET 5
alessandro1997 Evitare che span finisca sopra i bordi HTML e CSS 9
I Evitare inserimento dati in database con refresh PHP 5
max_400 Evitare lo scatto di fine foto e aumentare la velocità Flash 2
P [checkbox e className] evitare di richiamare più volte la stessa funzione Javascript 0
M Evitare i frames HTML e CSS 6
Z Evitare la ridondanza PHP 3
I Come evitare che il preload compaia 2 volte? Flash 1
G Come evitare in Excel messaggio per apertura pdf? Windows e Software 2
G Stampante canon: evitare il taglio nel caricare? Hardware 0
T come evitare file ldb Database 4
I Menu in flash è da evitare? SEO e Posizionamento 2
E modifica js per evitare il blank Javascript 0
P Help filtraggio input...Evitare caratteri Javascript 0
B Evitare i motori di ricerca HTML e CSS 2
B Evitare che explorer blocchi pulsanti flash Flash 3
A Controllo per evitare inserimenti di spazi Javascript 1
M Evitare blocco pop-up Classic ASP 0
P evitare la scrittura in un campo Javascript 5

Discussioni simili