begin process at 2012 05 30 13:18:54
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

creation de table en PHP


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

creation de table en PHP

vendredi 29 juin 2007 à 15:00:11 | creation de table en PHP

chapata

Hello ,


je cherche à créer un table MySQL à l'identique de ma table ODBC
mais je butte sur ma boucle ...

if

(odbc_execute(
$req )) {
   for (
$i = 1 ; $i <= odbc_num_fields( $req ); $i ++) {
   $champ = odbc_field_name( $req , $i );
   
$format = odbc_field_type( $req , $i );
   
$len = odbc_field_precision( $req , $i );
}

$sql_create1 = 'CREATE TABLE `' . $db . '`.`' . $odbc_table . '` (' ;
$sql_create2 = '`' . $champ [ $i ]. '` ' . $format [ $i ]. '( ' . $len [ $i ]. ' ) NOT NULL default ' ;
$sql_create3 = ') ENGINE = MYISAM DEFAULT CHARSET = latin1' ;

$q

= mysql_query($sql_create1.$sql_create2.$sql_create3);

etc ....

Mais je ne sais pas comment placer mes $sql_create ... pour que cela fonctionne
Bien, sur mes connections ODBC et MYSQL sont ouvertes ...

Si une ame charitable est présente ...

ChaPaTa
vendredi 29 juin 2007 à 16:30:15 | Re : creation de table en PHP

coucou747

Administrateur CodeS-SourceS
Salut

pour savoir quelle est ton erreur, ajoute or die(mysql_error()); apres mysql_query() (mais avant le ;)

ensuite, donne nous l'erreur, ca sera alors plus simple de t'aider


une recherche sur exalead vous aurait peut-etre evite de poser cette question
In a dream, I saw me, drop dead...
U were there, U cried...
It was just a dream,
if I die, U won't cry, maybe, U'll be happy
samedi 30 juin 2007 à 13:42:19 | Re : creation de table en PHP

chapata

Salut,

voici le code de ma fonction :

function odbc_create_table($conn, $odbc_table) {
 $d = mysql_query('DROP TABLE IF EXISTS '.$odbc_table.'');
 
 if (!$d) {
  echo mysql_error();
  echo 'impossible de supprimer la table'.$odbc_table;
  exit;
 }
 
 $sql = 'select * from '.$odbc_table.' order by 1,2,3 ';
 $req = odbc_prepare($conn, $sql);
 if(!$req) die('Impossible de charger la table : '.$odbc_table);
 
 if(odbc_execute($req)) {
  
  $debut = true;
  
  for ($i = 1; $i <= odbc_num_fields($req); $i++) {
      $champ = odbc_field_name($req, $i);
      $format = odbc_field_type($req, $i);
      $len = odbc_field_precision($req, $i);
     
   if ($debut = true) {
    
    if ($format = "CHAR") {
      $format = "VARCHAR";
      $sql2 = "`$champ` $format( $len ) NOT NULL default ";
    }else{
     $sql2 = '`'.$champ.'` '.$format.' NOT NULL default ';
    }
    $debut = false;
   }elseif ($debut = false){
    if ($format = "CHAR") {
     $format = "VARCHAR";
     $sql2 = $sql2.", `$champ` $format ( $len ) NOT NULL default ";
    }else{
     $sql2 .= $sql_create2.', `'.$champ.'` '.$format.' NOT NULL default ';
    }
   } 
   
  }
  
  $sql1 = "CREATE TABLE `database`.`$odbc_table` (";
  $sql3 = ')';// ENGINE = MYISAM DEFAULT CHARSET = latin1';
  echo $sql1.$sql2.$sql3;
  $do_create = mysql_query($sql1.$sql2.$sql3);
  
  if (!$do_create) {
   echo mysql_error();
   echo 'impossible de creer la table '.$odbc_table;
   exit;
  }
 }
 echo '<script language="javascript">document.location.href=\''.$_SERVER['PHP_SELF'].'\';</script>';
}



mais, je butte, j'ai des erreurs ...

je veux qu'à chaque champs de ma table ODBC, il le crée en format MySQL,
j'ai donc vérifier avec $debut, que c'est bien le premier champ de la table
sinon, il concatène avec le . la varaible $sql2

Je regarde aussi le format du champ, car MysQL ne supporte pas "CHAR" alors j'ai mis VARCHAR
et suivant, si c'est un VARCHAR ou non, il ajoute la précesion ($len)

apres mon objectif, c'est d'ajouter toute les valeurs de la table, mais, je dois d'abord parer ce problème.


ChaPaTa
samedi 30 juin 2007 à 14:17:15 | Re : creation de table en PHP

chapata



Oups,

je remet mon code sans erreur :

function odbc_create_table($conn, $odbc_table) {
 
 
   //supprime la table importeée si elle existe déjà
   $d = mysql_query('DROP TABLE IF EXISTS '.$odbc_table.'');
 
   if (!$d) {
     echo mysql_error();
     echo 'impossible de supprimer la table'.$odbc_table;
     exit;
    }
 
    //requete selection de la table odbc
    $sql = 'select * from '.$odbc_table.' order by 1,2,3 ';
    $req = odbc_prepare($conn, $sql);
    if(!$req) die('Impossible de charger la table : '.$odbc_table);
 
    if(odbc_execute($req)) {
      //debut = true
      $debut = true;
  
      // pour chaque champ de la table ODBC
      for ($i = 1; $i <= odbc_num_fields($req); $i++) { 
         $champ = odbc_field_name($req, $i);
         $format = odbc_field_type($req, $i);
         $len = odbc_field_precision($req, $i);     
   
         //si premier champ = true
         if ($debut = true) {
    
            // si le format est CHAR alors le passe en VARCHAR
            if ($format = "CHAR") {
              $format = "VARCHAR";
              $sql2 = '`'.$champ.'` '.$format.' ( '.$len.' ) NOT NULL default ';
            }else{
              $sql2 = '`'.$champ.'` '.$format.' NOT NULL default ';
             }
       
            //fin du premier champ
            $debut = false;
         
         //sinon si debut = faux ...
         }elseif ($debut = false){
            
            // meme opération pour le formatage du champ 
            if ($format = "CHAR") {
              $format = "VARCHAR";
              $sql2 = $sql2.', `'.$champ.'` '.$format.' ( '.$len.' ) NOT NULL default ';
            }else{
              $sql2 = $sql2.', `'.$champ.'` '.$format.' NOT NULL default ';
          }
      } 
  }
  
  $sql1 = "CREATE TABLE `mabase`.`$odbc_table` (";
  $sql3 = ')';// ENGINE = MYISAM DEFAULT CHARSET = latin1';
  echo $sql1.$sql2.$sql3;
  $do_create = mysql_query($sql1.$sql2.$sql3);
  
  if (!$do_create) {
   echo mysql_error();
   echo 'impossible de creer la table '.$odbc_table;
   exit;
  }
 }
 echo '<script language="javascript">document.location.href=\''.$_SERVER['PHP_SELF'].'\';</script>';
}



ChaPaTa

samedi 30 juin 2007 à 14:25:46 | Re : creation de table en PHP

coucou747

Administrateur CodeS-SourceS
Salut

et comme erreurs, ca renvoi quoi ???

(c'est quand meme le truc qui nous dit ce que ton code ne fait pas de bon...)


une recherche sur exalead vous aurait peut-etre evite de poser cette question
In a dream, I saw me, drop dead...
U were there, U cried...
It was just a dream,
if I die, U won't cry, maybe, U'll be happy
dimanche 1 juillet 2007 à 10:44:01 | Re : creation de table en PHP

chapata



Salut,

l'erreur est au niveau de la syntaxe SQL

1 - il ne me converti pas le "CHAR" en VARCHAR
2 - il ne me concatène pas $sql2= $sql2. etc... (j'ai donc uniquement le dernier champ de ma table ODBC et non tous les champs

Je fait un echo pour voir mon $do_create .....
je fais  $do_create = mysql_query($sql1.$sql2.$sql3); mais impossible de créer la table.

L'erreur doit venir de ma boucle :

// pour chaque champ de la table ODBC
      for ($i = 1; $i <= odbc_num_fields($req); $i++) { 
         $champ = odbc_field_name($req, $i);
         $format = odbc_field_type($req, $i);
         $len = odbc_field_precision($req, $i);     
   
         //si premier champ = true
         if ($debut = true) {
    
            // si le format est CHAR alors le passe en VARCHAR
            if ($format = "CHAR") {
              $format = "VARCHAR";
              $sql2 = '`'.$champ.'` '.$format.' ( '.$len.' ) NOT NULL default ';
            }else{
              $sql2 = '`'.$champ.'` '.$format.' NOT NULL default ';
             }
       
            //fin du premier champ
            $debut = false;
         
         //sinon si debut = faux ...
         }elseif ($debut = false){
            
            // meme opération pour le formatage du champ 
            if ($format = "CHAR") {
              $format = "VARCHAR";
              $sql2 = $sql2.', `'.$champ.'` '.$format.' ( '.$len.' ) NOT NULL default ';
            }else{
              $sql2 = $sql2.', `'.$champ.'` '.$format.' NOT NULL default ';
          }
      } 

mais je ne vois pas où ...

Meric Coucou


Cette discussion est classée dans : table, req, mysql, sql, odbc


Répondre à ce message

Sujets en rapport avec ce message

mysql et php [ par nico606 ] Salut g un probleme je debute en php et je viens de charger un espace membre pour mon site il est evidemment en php et Mysql y a une page d'installati Select dans deux table [ par speedylol ] Bonjour j aimerais selectionner un champs ou plusieur de deux table mes je vois pas comment faire cela sauriez vous m'aider merci? car je débute en ph besoins d'aide pour E-commerce [ par speedylol ] Bonjour j aimerais selectionner un champs ou plusieur de deux table mes je vois pas comment faire cela sauriez vous m'aider merci?car je débute en php Création de table [ par chatainsim ] Bonsoir, j'ai une petite question, comment crée des tables mysql à l'aide du php ? En fait j'aimerais pouvoir créer une installation automatiser pour Création de table [ par chatainsim ] Bonsoir, j'ai une petite question, comment crée des tables mysql à l'aide du php ? En fait j'aimerais pouvoir créer une installation automatiser pour pb DELETE requete sql [ par kyript ] Bonjours à tous voila mon problème j'ai un script avec un formulaire qui met a jour une table de la bdd. A la fin de ce script j'ai un "include" su Peut-on dire "SAUF" en SQL ? [ par nougitch ] Bonjour, J'aimerai savoir s'il y a possibilité de traduire un "SAUF" dans une requête SQL. Je cherche en effet à sélectionner tous les enregistreme Probleme recuperation de l'id d'une table pour insérer dans une autre par la methode update [ par Alpha911 ] Bonjour,Je test plusieurs methodes pour pouvoir prendre l'id d'une table qui et la recopier dans une autre table j'ai 2 tables UTILISATEUR et une autr afficher age compris entre 2 valeur grace a une base sql help [ par guigui2mars ] hello voila je veux pouvoir grace a une date de naissance qui est inscrite dans la bas de donnée arrivé a afficher l'intervalle d'age ( ex 18 - 25 ans SQL - ACCESS [ par flopad ] Bonjour, j'ai le code suivant, comment est ce que je peux l'adapter pour une basse access et non SQL...??  $base="D:\\Qualite\Annuaire\Annuaire.mdb";


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 6,864 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales