Visualizzazione risultati 1 fino 3 di 3

Discussione: Valori duplicati e index unique

  1. #1
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    Predefinito Valori duplicati e index unique

    Salve a tutti

    ho nel database 2 campi con index unique per prevenire duplicati



    il problema e che qualcosa e' sbagliato nel codice, non mi visualizza gli avvisi e mi da errore

    ATTENZIONE!! Codice duplicato
    Warning: Cannot modify header information - headers already sent by (output started at E:\__PHP__\OpenServer\domains\localhost\duplicati\ insert.php:34) in E:\__PHP__\OpenServer\domains\localhost\duplicati\ insert.php on line 35

    Warning: Cannot modify header information - headers already sent by (output started at E:\__PHP__\OpenServer\domains\localhost\duplicati\ insert.php:34) in E:\__PHP__\OpenServer\domains\localhost\duplicati\ insert.php on line 52
    inoltre mi inserisce anche nuovi record con id e altri campi vuoti



    codice trovato in rete e adattato con l'errore 1062 di unique index

    form.php

    Codice HTML:
    <form action="insert.php" method="POST">
        <input type="text" name="articolo" placeholder="articolo" autofocus="on">
        <input type="text" name="codice" placeholder="codice">
        <input type="submit">
    </form>


    insert.php

    Codice PHP:

    <?php

    //INSERISCO LE VARIABILI IN ALTRETTANTI VARIABILI DI SESSSIONE



    $host = 'localhost';
    $user = 'user';
    $password = 'pass';
    $db = 'duplicati';

    $connessione = new mysqli($host, $user, $password, $db);

    // verifica su eventuali errori di connessione
    if ($connessione->connect_errno) {
    echo
    "Connection failed: ". $conn->connect_error . ".";
    exit();
    }


    session_start();
    $_SESSION['codice'] = $codice;
    $_SESSION['articolo'] = $articolo;


    if (!
    $result = $connessione->query("SELECT * FROM articoli")) {
    echo
    "Errore della query: " . (mysqli_errno($connessione) == 1062) . "."; // questo per errore uinique e visualizzare avviso in formato testuale
    }


    else{
    // conteggio dei record
    if ($connessione) {
    echo
    'ATTENZIONE!! Codice duplicato'.' ' .$codice .' '.$articolo;
    header("location: form.php#mess");
    }


    // esecuzione della query per l'inserimento dei record
    if (!$connessione->query("INSERT INTO articoli (articolo,codice) VALUES
    ('
    $articolo','$codice')")) {
    echo
    "Errore della query: " . $connessione->error . ".";
    }


    //-----LEGGE IL DB E NE MEMORIZZA L'ID APPENA INSERITO

    if (!$result = $connessione->query("SELECT * FROM articoli WHERE codice = '$codice'")) {
    echo
    "Errore della query: " . $connessione->error . ".";
    }else{
    // conteggio dei record
    if($result->num_rows > 0) {
    while(
    $row = $result->fetch_array(MYSQLI_ASSOC)) {
    $id = $row['id'];
    }
    }
    }
    $_SESSION['messaggio']='OK!! Il record è stato correttamente inserito. Il suo id è: '.$id;
    header("location: form.php#mess");


    }

    // chiusura della connessione
    $connessione->close();

    ?>
    Ultima modifica di blackskyisback : 18-03-2022 alle ore 16.36.52

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,843

    Predefinito

    Non capisco come tu possa avere l'errore unique quando esegui solamente la query "SELECT * FROM articoli". Non inserendo nulla, non puoi avere quell'errore.

    La echo
    Codice PHP:
    echo 'ATTENZIONE!! Codice duplicato'.' ' .$codice .' '.$articolo;
    La esegui quando la precedente query va a buon fine, come mai?

    Infine, la session_start() richiamala all'inizio, prima di ogni output HTML.

    Ciao!

  3. #3
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    Predefinito

    grazie alemoppo, ma ho risolto ieri cambiando tutto il codice

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •