Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    150

    Domanda da Principiante

    Salve a tutti...

    Allora, arrivo subito al dunque...

    Io ho creato due pagine in Php
    Una principale, nel quale vi è un form per inserimento dati... e l'altra che è quella a cui il form rimanda dopo aver premuto il pulsante "Submit"

    Adesso, io riesco a fare la INSERT nel DB con i dati del form... ma se prima voglio fare un controllo per non far ripetere il Nome inserito... come devo fare ?

    Nel senso, credo di dover fare una Select che controlla nella tabella tutti i campi dove Nome è uguale a $nome...

    Poi ci metto una if, che mi dice che se il nome esiste, restituisce con l'echo un messaggio... altrimenti, se non eisste inserisce nel DB gli ultimi dati inseriti...

    Credo di aver fatto tutto giusto...

    Ma mi inserisce lo stesso i dati, anche se il nome inserito ed il nome già presente nel DB sono uguali...

    Come posso fare ??

  2. #2
    posta il codice e vediamo dove sta l'errore, concettualmente ci sei

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    150
    <?php

    include("config.inc.php");
    $db = mysql_connect($db_host, $db_user, $db_password);

    if ($db == FALSE)
    die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");

    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");

    ?>

    <body>

    <?php

    $query_sel = "SELECT * FROM tabella_prova WHERE nome='$nome'";
    $query = "INSERT INTO tabella_prova (nome,cognome) VALUES ('$nome', '$cognome')";

    if ($query_sel == TRUE);
    {
    echo ("Il nome inserito Esiste!");
    }

    ?>


    Questo è il codice che mi restituisce che il valore esiste già...

    se io ci aggiungo questa, in modo da procedere all'inserimento, nel caso non ci siano doppioni... mi da errore proprio sulla elseif..

    elseif { (mysql_query($query, $db));
    echo ("Nome Inserito");
    }

  4. #4
    codice:
    <?php
    
    $query_sel = "SELECT * FROM tabella_prova WHERE nome='$nome'";
    $query = "INSERT INTO tabella_prova (nome,cognome) VALUES ('$nome', '$cognome')";
    
    if ($query_sel == TRUE);
    Non ho capito questa parte di codice... non esegui la query, come fai a verificare se è TRUE o MENO. In $query_sel c'è solo la stringa, non c'è mysql_query...


    Edit:

    codice:
    elseif { (mysql_query($query, $db));
    echo ("Nome Inserito");
    }
    la condizione va prima della {

    codice:
    elseif (mysql_query($query, $db)) {
    echo ("Nome Inserito");
    }
    Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi! (A.Einstein)

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    150
    Per la prima parte che hai quotato... non so che dirti, me la fa eseguire ugualmente :S

    per la seconda parte..

    Grazie per la dritta delle { } non me ne ero proprio accorto...


    Ho provato a spostare la graffa, ma mi dice sempre errore su quella linea... quella dell'elseif per intenderci...

  6. #6
    codice:
    if ($query_sel == TRUE); 
    { 
    echo ("Il nome inserito Esiste!"); 
    }
    Prova a trasformarlo così:

    codice:
    if ($query_sel == TRUE){ 
    echo ("Il nome inserito Esiste!"); 
    }

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    150
    ho provato e non funziona manco così...

    Ho provato a sistemare un pò il codice... solo che mi verifica entrambe le condizioni contemporanemente...

    Ovvero mi dice che il nome esiste già... ma lo scrive ugualmente nel DB... sia che esista che non esista...

    <?php

    $query_sel = "SELECT * FROM tabella_prova WHERE nome='$nome'";
    $query = "INSERT INTO tabella_prova (nome,cognome) VALUES ('$nome', '$cognome')";
    $eseguisel = mysql_query($query_sel, $db);
    $eseguiins = mysql_query($query, $db);

    if ($eseguisel == TRUE)
    {
    echo ("Nome Esistente");
    } elseif ($eseguiins == TRUE) {
    echo ("Nome Inserito Correttamente");
    }

    ?>

  8. #8
    Credo sia perchè tu prima lo inserisci e poi controlli.
    Riscrivi il codice tipo così (come impostazione):
    <?php
    $query_sel = "SELECT * FROM tabella_prova WHERE nome='$nome'";
    $eseguisel = mysql_query($query_sel, $db);
    $eseguiins = mysql_query($query, $db);

    if (isset($_POST['nome'])) {
    if ($eseguisel == TRUE){
    echo "Esiste";
    }else {
    $query = "INSERT INTO tabella_prova (nome,cognome) VALUES '$nome', '$cognome')";
    }

    ?>

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    150
    Questa volta in entrambi i casi mi dice che esiste il nome, ma non me lo inserisce nel Db...

    Sto diventando pazzo... sigh...

    Scusami se ti sto facendo perdere tutto questo tempo...

  10. #10
    Come lo hai modificato?

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.