supinfo
Ouverture de  SUPINFO USA à San Francisco en 2008. Des études en informatique en Californie à un tarif abordable ! Inscrivez-vous dès maintenant !
supinfo
Connexion :

Recherche

  
   Tout| Actus| Télécharger| Comparateur de prix| Dossiers| Forums| Jeux| Google

2 messages
ok

[RESOLU] [SGDB] Problème de séléction de la BDD - Surement au niveau de l'insertion ...

Bonjour,

voilà j'ai mon script php pour remplir une table a partir d'un fichier .csv, or mon soucis est que je n'arrive pas à "selectionner" la base de données (message d'erreur qui est affiché) !!

Vous pouvez aller voir à l'adresse suivante : http://etudiant.univ-mlv.fr/~jbillard/yekh...tialisation.php

Pour info, mon script est le suivant (en rouge la ligne à laquelle ça bloque):

Code :
<html?gt;
	<head>
  <title>Mysql-Php / Importer un fichier Excel(.csv) dans une bdd MySQL</title>
	</head>
	<body>
	
<h2>Mise à jour de la base de données</h2> 

<?php
switch($action)
 {
  /* LECTURE ET AJOUT DES DONNEES DANS LA TABLE */
	case "ajouter":

  	/* Variables  globales*/
     $bdd = "produits_jenflo";  /* Base de données */
     $host = "***";  	/* Hote (localhost en principe) */
     $user = "***";    /* Utilisateur */
     $pass = "***";    /* Mot de passe */
     $fichier = "produits_jenflo.csv";	/* fichier à utiliser pour la mise à jour */ 
  
  	/* Connexion à la base de données*/
  	$link = mysql_connect($host,$user,$pass) or die("Impossible de se connecter à la base de données"); 
  	mysql_select_db($bdd); 
   
  	/* On créé la table */
  	$query = "CREATE TABLE articles( 
          ref VARCHAR(20) NOT NULL,
          nom VARCHAR(20) NOT NULL,
          type VARCHAR(20) NOT NULL 
      )";
  	$result= MYSQL_QUERY($query);
       
  	/* On ouvre le fichier à importer en lecture seulement */
  	if (file_exists($fichier))
    $fp = fopen("$fichier", "r"); 
  	else
  	{ 
    echo "Fichier introuvable !<br/>Impossible donc d'importer les données.";
    exit();
  	}
  	
  	/* Importation des données*/
  	while (!feof($fp))
  	{ 
    /* Tant qu'on n'atteint pas la fin du fichier */ 
    /* On lit une ligne */
    $ligne = fgets($fp,4096);  
  
    /* On récupère les champs séparés par un ";" dans liste */
    $liste = explode( ";",$ligne);  
  	
    /* On assigne les variables */ 
    $ref = $liste[0]; 
    $nom = $liste[1];
    $type = $liste[2];
    
  	
    /* Ajouter un nouvel enregistrement dans la table */  
    $query = 'INSERT INTO articles VALUES ("'.$ref.'", "'.$nom.'", "'.$type.'")';
    //$query = 'INSERT INTO articles VALUES ("truc", "bidule", "chouette")';
    MYSQL_QUERY($query);
    
    if(mysql_error())
    { 
    	/* Erreur dans la base de donnees */
    	print "Erreur dans la base de données : ".mysql_error();
    	print "<br/>L'importation n'a pas pu se faire correctement.";
    	exit();
    }
      
    else
    	print "$ref $nom $type <br/>";
  	} 
    
    echo "<br/>Importation terminée, avec succès."; 
      
  	/* Fermeture */ 
  	fclose($fp); 
  	MYSQL_CLOSE(); 
   
	break;
   
 
	/* DEMANDE DE LA MISE A JOUR */  
   
	default:
   
  echo "<form method=\"post\" action=\"$PHP_SELF\">"; ?>
   Pour mettre à jour les tables de la base de données, il suffit de clicker sur le bouton Créer. 
   <table border="0" cellspacing="0" cellpadding="3">
    <tr>
     <td>Voulez-vous mettre à jour la basse de données ?!</td>  
    </tr>
    <tr>
  	<td></td>  
     <td> <input type="submit" name="submit" value="Mise à jour"> </td> 
    </tr>
   </table>
   <input type="hidden" name="action" value="ajouter">  
  </form>
    <? 
	break;
   
}
   
?>

	</body>
</html?gt;
 
 
Tiens un gars de ma fac

Je suis méchant aujourd'hui, alors déjà tu as oublié de mettre les droits nécessaires (o+rx pour les dossiers, o+r pour les fichiers).

Ensuite, sur ta page d'accueil, remplace cette infâme lien vers telecharger.com par un lien vers firefox.com ou mozilla.org ...

En attente de la ligne rouge, (oui la couleur passe pas dans le tag code) plusieurs choses :

1. MYSQL_QUERY -> mysql_query (idem pour les autres fonctions mysql_*)
2. je sais bien que le serveur de la fac est à la ramasse (pas php5, pas mysql5, pas openoffice 2.0, pas apache 2.0.55, pas jedit, pas gaim, pas codeblocks, etc) mais en php, tu as l'utile, la pratique, fonction fgetcsv http://fr.php.net/manual/fr/function.fgetcsv.php

Qui t'évite entre autre de réinventer la roue

Pour finir, on évite en général d'injecter des variables brutalement dans les requêtes SQL : on les protège avec la fonction adhoc (mysql_real_escape_string) ce qui évite les erreurs de requête SQL.

Ah et sinon, certains profs (comme Mr Forax) auront du te le dire (si tu es en licence info, bien sûr), mais le switch c'est le mal

Préfère un basique if/elseif/else qui est souvent plus rapide.

Voilà.

(en attente de la ligne rouge donc :))


 
 
 
2 messages
ok
 
Vous devez être connecté pour écrire un message !
 

 Sujets Similaires:


 
Clubic.com
 
Achetez-facile.com
 
Jeuxvideo.fr
 
neteco.com
 
mobinaute.com