Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it L'avatar di Tr|k`Tr4k
    Registrato dal
    Jul 2002
    Messaggi
    2,766

    Non inserire dati doppi nel db

    Ho un campo di ricerca che ad ogni ricerca effettuata invia la parola al db
    Esempio:
    L'utente cerca la parola: volo low cost
    Fin qui tutto ok...

    Ora voglio fare in modo che se un'altro utente cerca la stessa cosa, questa cosa non va nel db perche' già c'e'.

    Come posso fare?
    Questo e' quello che ho ora:
    Codice PHP:
    $sql "insert into ricerche (id, chiave) values (NULL,\"$chiave\")";
    $risultato = @mysql_query($sql$connessione) or die (mysql_errno() . ": " mysql_error()); 

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    178
    Codice PHP:
    $query mysql_query("
         SELECT id
         FROM ricerche
         WHERE chiave='"
    .$chiave."'");
         if(
    mysql_num_rows($query) = 0) { "procedi con l'inserimento"
    } else {
    "Non procedere" 

  3. #3
    Utente di HTML.it L'avatar di Tr|k`Tr4k
    Registrato dal
    Jul 2002
    Messaggi
    2,766
    Originariamente inviato da Chierico80
    Codice PHP:
    $query mysql_query("
         SELECT id
         FROM ricerche
         WHERE chiave='"
    .$chiave."'");
         if(
    mysql_num_rows($query) = 0) { "procedi con l'inserimento"
    } else {
    "Non procedere" 
    ma sto codice lo aggiungo al mio?
    Ad ogni modo non deve uscire nessun messaggio perche' l'utente sa solo che cerca qualcosa nel motore di ricerca del sito, non deve sapere che io salvo quello che io digito

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    178
    Dove ho scritto "procedi con l'inserimento" metterai il tuo codice poichè sarai sicuro che la tua chiave non è presente nel db, dove ho messo "non procedere" semplicemente prosegui con l'esecuzione senza aggiungere la query di inserimento.

  5. #5
    Utente di HTML.it L'avatar di Tr|k`Tr4k
    Registrato dal
    Jul 2002
    Messaggi
    2,766
    ho provato cosi:
    Codice PHP:
    $query mysql_query("
         SELECT id
         FROM ricerche
         WHERE chiave='"
    .$chiave."'");
         if(
    mysql_num_rows($query) = 0) { "$sql = "insert into ricerche (idchiavevalues (NULL,\"$chiave\")";
    $risultato = @mysql_query($sql$connessione)"
    } else {
    "
    Non procedere" }

    or die (mysql_errno() . "
    " . mysql_error()); 
    Ma mi da questo errore... e penso ri rifarisca all'uguale vicino allo 0
    Parse error: parse error, unexpected '=' in cerca.php on line 7

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    178
    Codice PHP:
    <?
    $query 
    mysql_query("
         SELECT id
         FROM ricerche
         WHERE chiave='"
    .$chiave."'");
         if(
    mysql_num_rows($query) == 0) { $sql mysql_query("insert into ricerche (id, chiave) values (NULL,'".$chiave."'");
                                          
    $risultato = @mysql_query($sql$connessione) or die (mysql_errno() . ": " mysql_error());
                                        } 
    ?>

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    E se il campo fosse UNIQUE non sarebbe meglio?
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  8. #8
    Utente di HTML.it L'avatar di Tr|k`Tr4k
    Registrato dal
    Jul 2002
    Messaggi
    2,766
    Originariamente inviato da Andrea1979
    E se il campo fosse UNIQUE non sarebbe meglio?
    che significa?

  9. #9
    Utente di HTML.it L'avatar di Tr|k`Tr4k
    Registrato dal
    Jul 2002
    Messaggi
    2,766
    Originariamente inviato da Chierico80
    Codice PHP:
    <?
    $query 
    mysql_query("
         SELECT id
         FROM ricerche
         WHERE chiave='"
    .$chiave."'");
         if(
    mysql_num_rows($query) == 0) { $sql mysql_query("insert into ricerche (id, chiave) values (NULL,'".$chiave."'");
                                          
    $risultato = @mysql_query($sql$connessione) or die (mysql_errno() . ": " mysql_error());
                                        } 
    ?>
    mi da questo messaggio

    1065: Query was empty

  10. #10
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    Se il tuo campo è UNIQUE (lo setti al momento della creazione della tabella) non accetterebbe duplicati, e di conseguenza non si presenterebbe il problema, in quanto usando un @ davanti alla query, questa fallirebbe senza dare errore, e quindi non inserirebbe dei duplicati.

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.