Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    164

    Controllare se nome è già presente sul db

    Salve ragazzi,
    Sono un programmatore alle prime armi ed avrei bisogno del vostro aiuto per un problema che non riesco a risolvere.
    Prima di inserire i dati all'interno di un db mysql vorrei effettuare una verica: controllare se un campo, nel mio caso il nome, è già presente.

    Vi allego il codice php:

    Codice PHP:

    <?php
    if($_POST){
     
        
    // include database connection
        
    include 'config/database.php';
     
        try{
         
            
    // insert query
            
    $query "INSERT INTO products SET name=:name, description=:description, price=:price, created=:created";
     
            
    // prepare query for execution
            
    $stmt $con->prepare($query);
     
            
    // posted values
            
    $name=htmlspecialchars(strip_tags($_POST['name']));
            
    $description=htmlspecialchars(strip_tags($_POST['description']));
            
    $price=htmlspecialchars(strip_tags($_POST['price']));
     
            
    // bind the parameters
            
    $stmt->bindParam(':name'$name);
            
    $stmt->bindParam(':description'$description);
            
    $stmt->bindParam(':price'$price);
             
            
    // specify when this record was inserted to the database
            
    $created=date('Y-m-d H:i:s');
            
    $stmt->bindParam(':created'$created);
             
            
    // Execute the query
            
    if($stmt->execute()){
                echo 
    "<div class='alert alert-success'>Record was saved.</div>";
            }else{
                echo 
    "<div class='alert alert-danger'>Unable to save record.</div>";
            }
             
        }
         
        
    // show error
        
    catch(PDOException $exception){
            die(
    'ERROR: ' $exception->getMessage());
        }
    }
    ?>

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Prima di fare l'insert devi fare una select cercando una entry con il nome che vorresti inserire.
    Se viene trovato un risultato vuol dire che già esiste e quindi non devi eseguire l'insert.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    164
    Grazie Alhazred, il problema è proprio quello vorrei capire come fare per fare la verifica come impostare la query col select in modo da fare la verifica prima dell'insert

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Sai fare un'insert e non una select?

    SELECT nome FROM products WHERE nome='$nome'

    se il risultato contiene un numero di righe pari a 0 esegui la insert, altrimenti non fai niente, oppure notifichi che quel nome già esiste, è un semplice if/else.

  5. #5
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,360
    La query fa un INSERT ma ha la sintassi dell'UPDATE ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    164
    Scusami, mi sono espresso male io. So come fare la select ma, a livello di codice, non so come impostare la condizione.

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Sai contare il numero di righe trovate da una select?

    Leggi la documentazione di PDO per imparare come si fa (c'è una funzione apposita), te lo dico perché imparare a leggere la documentazione di ciò che si usa è molto più importante che aspettare che altri ti diano le soluzioni belle e pronte, ti rende indipendente e ti fa risparmiare un sacco di tempo.
    L'aiuto da altri va cercato per problematiche di livello un po' superiore alle basi di un argomento e quello che ti serve è proprio terra terra, visto che esiste una funzione che ti dice quante righe ha preso la select.

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Quote Originariamente inviata da badaze Visualizza il messaggio
    La query fa un INSERT ma ha la sintassi dell'UPDATE ?
    In effetti... nemmeno l'avevo letta.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    164
    Ok grazie lo stesso...

Tag per questa discussione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.