Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di Alberto
    Registrato dal
    Oct 2004
    Messaggi
    1,870

    Confronto dati dentro mysql

    Ho bisogno di inserire i dati nel db, ma allo stesso tempo vorrei evitare di inserire lo stesso dato 2 volte...

    Se faccio così non funziona
    Codice PHP:
    while($row=mysql_fetch_array($select)){

    if(
    $row['giocatore'] != $_POST['giocatore'] || $row['giocatore'] == ''){

    $query "INSERT INTO marcatori"."(giocatore,squadra)"."VALUES('".str_replace($sostituire$con$stringa2)."','".str_replace($sostituire$con$stringa3)."')";

    $result mysql_query($query) or die (mysql_error());

        print 
    "
    [b]"
    .$_POST['giocatore']." è stato inserito[/b]"."<meta http-equiv='refresh' content='2; url=marcatori.php'>";

    }else{    
        print 
    "
    [b]"
    .$_POST['giocatore']." è già presente[/b]"."<meta http-equiv='refresh' content='2; url=marcatori.php'>";
    }

    Avevo pensato di memorizzare il risultato in un array per usarlo fuori dal ciclo ma non riesco a farlo...

    Codice PHP:
    while($row=mysql_fetch_array($select)){
    $prova[] = $row['giocatore'];
    }
    print 
    $prova
    Mi dice che prova è un array senza darmi i dati nel db...

  2. #2
    Utente di HTML.it L'avatar di diaz
    Registrato dal
    Apr 2000
    residenza
    Berlin
    Messaggi
    379
    perchè non fai fare prima una query di verifica e nel caso in cui dalla verifica non risultano valori lo script prosegue con l'inserimento
    E da quel giorno, se andavo da qualche parte, io ci andavo correndo!

    Tweeting @apphancer | Views my own – except when I say things I don’t really think.

  3. #3
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Potresti settare il campo "giocatore" come UNIQUE e prevedere la gestione degli errori oppure dovresti fare una query di controllo prima di inserire effettivamente i dati nel database:

    Codice PHP:
    SELECT giocatore FROM marcatori WHERE giocatore = {$_POST['giocatore']} 
    poi controlleresti il risultato con mysql_num_rows. Se superiore a 0 è evidente che il dato che si tenta di inserire è già presente e quindi non può essere aggiunto.

  4. #4

  5. #5
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Codice PHP:
    //è più pratico memorizzare l'input in una variabile ed effettuare tutti i relativi controlli
    $giocatore $_POST['giocatore'];

    //query di controllo per decidere se proseguire con le istruzioni
    //oppure fermarsi e riproporre l'inserimento dei dati
    $sql mysql_query("SELECT giocatore FROM marcatori WHERE giocatore = '$giocatore'");

    //controllo...
    if(mysql_num_rows($sql) > 0) {

    //il nome immesso è già esistente
    //procedi come meglio credi, redirect o altro...

    } else {

    //ok, procedi senza problemi con l'inserimento dei dati





    edit: dimenticavo, potresti anche settare il campo interessato come UNIQUE, ma se non hai in previsione una gestione degli errore il metodo indicato prima dovrebbe essere più semplice da capire. Ad ogni modo ti mostro un esempio di come modificare le proprietà del campo "giocatori", dovrai solo fare una semplice query con queste istruzioni:
    Codice PHP:
    ALTER TABLE marcatori ADD UNIQUE (`giocatore`) 

  6. #6

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.