Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di vikey89
    Registrato dal
    Apr 2009
    Messaggi
    333

    Duplicate entry '1' for key 'PRIMARY'

    Ragazzi sto creando della pagine in php, solo che al momento di eseguire la pagina mi crea l'errore:
    Codice PHP:
    Duplicate entry '1' for key 'PRIMARY' 
    Vi posto il codice di entrambe le pagine , perchè non ho capito dov'è duplicata la PRIMARY KEY:

    Pagina 1
    Codice PHP:
    <?php
    //Collegamento MySql
    $db mysql_connect('localhost''root''******') or
          die (
    'Non è possibile connttersi');

    // Crea il Databse se non esiste
    $query 'CREATE DATABASE IF NOT EXISTS moviesite';
    mysql_query ($query$db) or die (mysql_error ($db));

    //Per sicurezza seleziona database attivo
    mysql_select_db('moviesite'$db) or die (mysql_error ($db));

    //Crea tabella movie
    $query 'CREATE TABLE movie (
        movie_id         INTEGER UNSIGNED  NOT NULL AUTO_INCREMENT,
        movie_name       VARCHAR (255)     NOT NULL,
        movie_type       TINYINT           NOT NULL DEFAULT 0,
        movie_year       SMALLINT UNSIGNED NOT NULL DEFAULT 0,
        movie_leadactor  INTEGER UNSIGNED  NOT NULL DEFAULT 0,
        movie_director   INTEGER UNSIGNED  NOT NULL DEFAULT 0,

        PRIMARY KEY (movie_id),
        KEY movie_type (movie_type, movie_year)
        )
        ENGINE=MyISAM'
    ;
        
    mysql_query($query$db) or die (mysql_error ($db));

    //Crea tabella movietype
    $query 'CREATE TABLE movietype (
        movietype_id      TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,
        movietype_label   VARCHAR(100)   NOT NULL,
        PRIMARY KEY (movietype_id)
        )
        ENGINE=MyISAM'
    ;
        
    mysql_query($query$db) or die (mysql_error ($db));

    //crea tabella people
    $query 'CREATE TABLE people (
        people_id         INTEGER UNSIGNED    NOT NULL AUTO_INCREMENT,
        people_fullname   VARCHAR (255)       NOT NULL,
        people_isactor    TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
        people_isdirector TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,

        PRIMARY KEY (people_id)
        )
        ENGINE=MyISAM'
    ;
        
    mysql_query($query$db) or die (mysql_error ($db));
        echo 
    'Movie database successfully created!';
    ?>
    Pagina 2
    Codice PHP:
    <?php
    //Collegamento MySql
    $db mysql_connect('localhost''root''******') or
          die (
    'Non è possibile connttersi');

    //Per sicurezza seleziona database attivo
    mysql_select_db('moviesite'$db) or die (mysql_error ($db));

    //Inserisci dati nella tabella movie
    $query 'INSERT INTO movie
          (movie_id, movie_name, movie_type, movie_year, movie_leadactor,
           movie_director)
           VALUES
           (1, "Bruce Almighty", 5, 2003, 1, 2),
           (2, "Office space", 5, 1999, 5, 6),
           (3, "Grand Canyion", 2, 1991, 4, 3)'
    ;
    mysql_query ($query$db) or die (mysql_error ($db));

    //Inserisci dati nella tabella movietype
    $query 'INSERT INTO movietype
            (movietype_id, movietype_label)
            VALUES
            (1, "Sci fi"),
            (2, "Drama"),
            (3, "Adventure"),
            (4, "War"),
            (5, "Comedy"),
            (6, "Horror"),
            (7, "Action"),
            (8, "Kids")'
    ;
    mysql_query ($query$db) or die (mysql_error ($db));

    //Inserisci dati nella tabella people
    $query 'INSERT INTO people
            (people_id, people_fullname, people_isactor, people_isdirector)
            VALUES
            (1, "Jim Carrey", 1,0),
            (2, "Tom Shadyac", 0,1),
            (3, "Lawrence Kasdan", 0,1),
            (4, "Kevin Kline", 1,0),
            (5, "Ron Livingston", 1,0),
            (6, "Mike Judge", 0,1)'
    ;
    mysql_query ($query$db) or die (mysql_error ($db));

    echo 
    'Data inserted succefully!';
    ?>
    Dove ho sbagliato?

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Perché usi degli script php per creare database e tabelle?
    Comunque è chiaro che l'errore è nella seconda pagina, alla seconda volta che la esegui hai tutte le chiavi duplicate

  3. #3
    Utente di HTML.it L'avatar di vikey89
    Registrato dal
    Apr 2009
    Messaggi
    333
    Mi sto esercitando cosi da capire bene i meccanismi per questo utilizzo script in Php per create database e tabelle, cmq quindi come dovrei procedere? nella seconda pagina cosa cancello??

  4. #4
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da vikey89
    capire bene i meccanismi
    Appunto. Se capisci qual è il problema, dopo lo sai da solo cosa cancellare o modificare. Non posso certo dirtelo io, non avendo idea di cosa vuoi fare.

  5. #5
    Utente di HTML.it L'avatar di vikey89
    Registrato dal
    Apr 2009
    Messaggi
    333
    Io sto seguendo le info di un libro che spiega il php, solo che a me da questo errore....

  6. #6
    Originariamente inviato da vikey89
    Io sto seguendo le info di un libro che spiega il php, solo che a me da questo errore....
    Guarda che Luca200 ti ha esattamente spiegato il tuo problema:

    Originariamente inviato da Luca200
    Comunque è chiaro che l'errore è nella seconda pagina, alla seconda volta che la esegui hai tutte le chiavi duplicate
    la chiave primaria autoincrementante non dovresti elencarla nei campi e nei valori della INSERT, oppure elencare il campo ma poi scrivere NULL come valore da associare all'id.

    Se lasci il valore 1,2,3 etc... e' chiaro che se sono gia presenti perche' inseriti in precedenza otterrai l'errore che hai segnalato. Una chiave primaria non puo' avere valori duplicati.

    es:
    Codice PHP:
    $query 'INSERT INTO movie
          (movie_id, movie_name, movie_type, movie_year, movie_leadactor,
           movie_director)
           VALUES
           (NULL, "Bruce Almighty", 5, 2003, 1, 2),
           (NULL, "Office space", 5, 1999, 5, 6),
           (NULL, "Grand Canyion", 2, 1991, 4, 3)'


    // OPPURE:

    $query 'INSERT INTO movie
          (movie_name, movie_type, movie_year, movie_leadactor,
           movie_director)
           VALUES
           ("Bruce Almighty", 5, 2003, 1, 2),
           ("Office space", 5, 1999, 5, 6),
           ("Grand Canyion", 2, 1991, 4, 3)'


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Utente di HTML.it L'avatar di vikey89
    Registrato dal
    Apr 2009
    Messaggi
    333
    ok provando come dici tu mi da questo errore:

    Column count doesn't match value count at row 1

  8. #8
    Originariamente inviato da vikey89
    ok provando come dici tu mi da questo errore:

    Column count doesn't match value count at row 1
    avrai fatto un mix tra le due modalita'.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    Utente di HTML.it L'avatar di vikey89
    Registrato dal
    Apr 2009
    Messaggi
    333
    no ho seguito il secondo esempio postato da te:

    Codice PHP:
    <?php
    //Collegamento MySql
    $db mysql_connect('localhost''root''010689') or
          die (
    'Non è possibile connttersi');

    //Per sicurezza seleziona database attivo
    mysql_select_db('moviesite'$db) or die (mysql_error ($db));

    //Inserisci dati nella tabella movie
    $query 'INSERT INTO movie
            (movie_id, movie_name, movie_type, movie_year, movie_leadactor,
           movie_director)
           VALUES
           ("Bruce Almighty", 5, 2003, 1, 2),
           ("Office space", 5, 1999, 5, 6),
           ("Grand Canyion", 2, 1991, 4, 3)'
    ;
    mysql_query ($query$db) or die (mysql_error ($db));

    //Inserisci dati nella tabella movietype
    $query 'INSERT INTO movietype
             (movietype_id, movietype_label)
            VALUES
            ("Sci fi"),
            ("Drama"),
            ("Adventure"),
            ("War"),
            ("Comedy"),
            ("Horror"),
            ("Action"),
            ("Kids")'
    ;
    mysql_query ($query$db) or die (mysql_error ($db));

    //Inserisci dati nella tabella people
    $query 'INSERT INTO people
            (people_id, people_fullname, people_isactor, people_isdirector)
            VALUES
            ("Jim Carrey", 1,0),
            ("Tom Shadyac", 0,1),
            ("Lawrence Kasdan", 0,1),
            ("Kevin Kline", 1,0),
            ("Ron Livingston", 1,0),
            ("Mike Judge", 0,1)'
    ;
    mysql_query ($query$db) or die (mysql_error ($db));

    echo 
    'Data inserted succefully!';
    ?>
    Mi restituisce sempre quell'errore:
    Column count doesn't match value count at row 1

  10. #10
    non credo tu abbia seguito le mie indicazioni. Prova a controllare per bene.....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.