IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[SQL] Requete insert into


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2003
    Messages
    216
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 216
    Par défaut [SQL] Requete insert into
    Bonjour
    J'ai une table avec 2000 enregistrements structure suivante :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    CREATE TABLE nuke_queue (
      qid smallint(5) unsigned NOT NULL auto_increment,
      uid mediumint(9) NOT NULL default '0',
      uname varchar(40) NOT NULL default '',
      subject varchar(100) NOT NULL default '',
      story text,
      storyext text NOT NULL,
      timestamp datetime NOT NULL default '0000-00-00 00:00:00',
      topic varchar(20) NOT NULL default '',
      alanguage varchar(30) NOT NULL default '',
      PRIMARY KEY  (qid),
      KEY qid (qid),
      KEY uid (uid),
      KEY uname (uname)
    ) TYPE=MyISAM;

    Je voudrais passer ces enregistrements dans cette table :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    CREATE TABLE nuke_stories (
      sid int(11) NOT NULL auto_increment,
      catid int(11) NOT NULL default '0',
      aid varchar(30) NOT NULL default '',
      title varchar(80) default NULL,
      time datetime default NULL,
      hometext text,
      bodytext text NOT NULL,
      comments int(11) default '0',
      counter mediumint(8) unsigned default NULL,
      topic int(3) NOT NULL default '1',
      informant varchar(20) NOT NULL default '',
      notes text NOT NULL,
      ihome int(1) NOT NULL default '0',
      alanguage varchar(30) NOT NULL default '',
      acomm int(1) NOT NULL default '0',
      haspoll int(1) NOT NULL default '0',
      pollID int(10) NOT NULL default '0',
      score int(10) NOT NULL default '0',
      ratings int(10) NOT NULL default '0',
      associated text NOT NULL,
      PRIMARY KEY  (sid),
      KEY pid (sid),
      KEY cid (catid)
    ) TYPE=MyISAM;

    Ca fait 2 jours que j'essaie de trouver une requête php ou sql qui ferait ça mais je ne vois pas du tout comment faire, pourriez vous m'aiguiller s'il vous plait ?

    Voila le sql pour un seul enregistrement mais comment faire pour tous les 2000 et vider la table nuke_queue ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result = sql_query("insert into ".$prefix."_stories values (NULL, '$catid', '$aid', '$subject', now(), '$hometext', '$bodytext', '0', '0', '$topic', '$author', '$notes', '$ihome', '$alanguage', '$acomm', '$haspoll', '$id', '0', '0', '$associated')", $dbi);

  2. #2
    Membre chevronné Avatar de Asmodean
    Profil pro
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Par défaut
    Ben je ne vois qu'un SELECT * FROM nuke_queue suivie d'une boucle qui pour chaque enregistrement fais un insert into. Sauf que ca risque d'etre un peu long enfin si ca marche essaie de le faire sur des partie de ta table (genre 500 par 500).

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2003
    Messages
    216
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 216
    Par défaut reponse
    Merci pour ta réponse

    Voila ce que j'ai reussi à faire, mais ça ne marche toujours pas, peux tu me donner un coup de pouce ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    <?
     
    $db = mysql_connect('localhost', 'user', 'passe') or die(mysql_error());  
    mysql_select_db('base',$db);  
     
    $sql = "SELECT * FROM nuke_queue"; 
    $sql2 = mysql_query($sql) or die(mysql_error()); 
     
    while ($Rowsql2 = mysql_fetch_assoc($sql2)) 
    { 
    $sql = "insert into nuke_stories values (NULL, '$catid', '$aid', '$subject', now(), '$hometext', '$bodytext', '0', '0', '$topic', '$author', '$notes', '$ihome', '$alanguage', '$acomm', '$haspoll', '$id', '0', '0', '$associated')"; 
    $sql2 = mysql_query($sql) or die(mysql_error());
    } 
     
     
    ?>

  4. #4
    Membre émérite Avatar de Spoutnik
    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 672
    Par défaut
    Hello,

    regarde de ce coté là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    INSERT INTO nuke_stories(colonne1[, colonne2])
    SELECT champ1[, champ2]
    FROM nuke_queue
    [WHERE critères]
    cf : http://dev.mysql.com/doc/refman/5.0/en/insert-select.html

    (PS : je ne sais pas depuis quand cette commande est dispo sur MySQL)

  5. #5
    Membre chevronné Avatar de Asmodean
    Profil pro
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Par défaut
    Tiens je ne connaissais pas ça , c'est d'ailleurs surement le meilleur moyen.

    Sinon pour ton code isa le problème c'est que tu affectes ta variable Rowsql2 par un fetch_array mais qu'après tu utilise des variables, alors que c'est un tableau associatif :


    à la place de


    Par contre pour faire comme tu fais il existe une méthode si je me souviens bien c'est

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    extract($monTableauAssociatif)

    Qui te permet ensuite d'utiliser des variable portant les noms des clés du tableau.

  6. #6
    Membre éclairé
    Inscrit en
    Avril 2003
    Messages
    216
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 216
    Par défaut code php
    Merci pour votre aide, voici mon code finalement mais il n'interprete pas les variables $rowsql2 ('".$Rowsql2['story']."') , il insert du vide au lieu de la variable, quelle est la syntaxe ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
     
    <?
     
    $db = mysql_connect('localhost', 'user', 'pass') or die(mysql_error());  
    mysql_select_db('base',$db);  
     
    $sql = "SELECT * from nuke_queue"; 
    $sql2 = mysql_query($sql) or die(mysql_error()); 
     
    while ($rowsql2 = mysql_fetch_assoc($sql2)) 
    { 
    $sqli = "insert into nuke_stories values (NULL, '0', 'isa', '".$Rowsql2['subject']."', '".$Rowsql2['timestamp']."','".$Rowsql2['story']."','".$Rowsql2['storyext']."','0', '0', '".$Rowsql2['topic']."', '".$Rowsql2['uname']."','','0','', '0', '0','0', '0','0', '')"; 
    $sql2i = mysql_query($sqli) or die(mysql_error());
     
    echo "ok<br>";
    } 
     
     
    ?>
    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL] requete INSERT INTO ne marche pas
    Par mimagyc dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 07/08/2007, 11h48
  2. Requete INSERT INTO
    Par cheers94wow dans le forum Requêtes
    Réponses: 1
    Dernier message: 10/05/2006, 11h13
  3. [SQL] requete INSERT possible?
    Par clad523 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 03/08/2005, 15h42
  4. petite aide sur une requete INSERT INTO
    Par bonneti dans le forum Langage SQL
    Réponses: 3
    Dernier message: 14/03/2005, 15h17
  5. Erreur lors d'une requete insert into.. select
    Par Mr N. dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 04/11/2004, 17h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo