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 :

Pilote pour base de données Access


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    239
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 239
    Points : 84
    Points
    84
    Par défaut Envoi de données vers une BDD Access AJAX (JavaScript/PHP)
    Bonjour,

    La question est dans le titre ! Dans le cadre d'une communication avec une base de données ACCESS, je souhaiterais savoir quel est le langage le plus facile à utiliser (j'ai déjà parcouru les tutoriaux ASP et PHP de W3C) et celui qui ouvre le plus de possibilités ?

    Finalement, je recherche l'implémentation la plus performante de la technologie AJAX... du popint de vue des langages de programmation !

    Merci

  2. #2
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 512
    Points
    9 512
    Par défaut
    Salut,

    C'est selon tes affinitées. ASP est mort (n'évolue plus), au contraire du PHP.
    AJAX est du javascript + un langage de script serveur (ASP ou PHP) donc aucun rapport.

    Je ne sais pas si c'est possible d'interroger une base de données Access avec du PHP. Normalement, pas de soucis car c'est juste une question de "pilote" de lecture.

    Si tu ne sais pas quoi choisir entre ASP et PHP, prend PHP. Par contre, si tu souhaites passer un jour au .NET ben fait tout de suite du .NET.

    Veux-tu que je déplace ta discussion vers le forum PHP?

    A+

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    239
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 239
    Points : 84
    Points
    84
    Par défaut
    Merci de ta réponse !

    Effectivement, je veux bien que tu déplaces mon sujet sur le forum PHP, afin d'en savoir peut-être un peu plus sur la possibilité d'interroger une base de données Access en DNSless (avec odbc_connect à ce que j'ai cru comprendre) avec du PHP ?

    Merci

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    239
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 239
    Points : 84
    Points
    84
    Par défaut
    Salut,

    Je poste un exemple de fichier PHP permettant l'ajout dans une BDD. Seul est a programmer, l'obtentiond e la ligne de données à envoyer dans le fichier PHP par la méthode POST.

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    <?php
     
    	// Fonction qui récupère les données contenues dans le RecordSet
    	// Fonctionnement :
    	//			Pour une requête SELECT de plusieurs champs recupérant plusieurs données :
    	//				-	On procède par incrémentation car le RecordSet n'est pas directement exploitable : $RecordSet -> fields[$j] -> Value;
    	//				-	le WHILE incrémente les lignes du RecordSet -> il a la particularité de permettre
    	//					une incrémentation sans connaître le nombre de données reçues en utilisant EOF ('End Of File')
    	//				-	le FOR incrémente les colonnes du RecordSet pour récupérer la donnée de chacun des champs sur UNE ligne
    	//
    	// Structure :
    	//			Les données d'une ligne du RecorSet sont stockées en ligne dans Data (structure similaire) à partir de la LIGNE n°1 (et pas 0)
    	//			Dans la LIGNE n°0, on choisit de stocker le NOMBRE DE DONNEES (ça évitera de faire un COUNT(*))
     
    	function getDataValue($RecordSet,$ind) {
    		$i = 1;
    		while(!$RecordSet -> EOF) {
    			for($j=0;$j<$ind;$j++) {
    				$Data[$i][$j] = $RecordSet -> fields[$j] -> Value;
    				echo '$Data['.$i.']['.$j.'] = ' . $Data[$i][$j] . '<br/>';
    				}
    			$RecordSet -> MoveNext();
    			$i++;
    			}
    		$Data[0][0] = $i;
    		return $Data;
    		}
     
     
     
     
    	// Fonction qui permet l'extraction des données dans le cas où elle auraient été encodées en utf8
     
    	function decodeValue($Data,$nLi,$nCol) {
    		for($i=1;$i<$nLi;$i++) {
    			for($j=0;$j<$nCol;$j++) {
    				$Data[$i][$j] = utf8_encode($Data[$i][$j]);
    				echo '$Data['.$i.']['.$j.'] = ' . $Data[$i][$j] . '<br/>';
    				}
    			}
    		return $Data;
    		}
     
     
    	// Les variables ci-dessous sont obtenues à travers l'envoi de données (programmé en JAVASCRIPT) avec une méthode POST
    	// Dans notre cas, les données envoyées sont sous la forme : "table=nom_de_la_table&field=nom_du_champ&data=donnée_envoyée"
    	// Remarque : on pourrait aussi envoyé nFields si on souhaité automatiser la démarche
     
    	$base = realpath("base_test.mdb");
    	$table = $_POST['table'];
    	$column = $_POST['field'];
    	$data = $_POST[$column];
     
    	$DB_Connexion = new COM("ADODB.Connection");
    	$DB_ConnexionString = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" . $base . ";";
    	$DB_Connexion -> open($DB_ConnexionString);
     
    			$nFields = 2; // nombre de champs (colonnes) dont on va extraire des données
     
    			$sql = "SELECT * FROM " . $table . " WHERE " . $column . " = '" . $data . "';";
    			$RS = $DB_Connexion -> execute($sql);
     
    			$typesData = getDataValue($RS,$nFields);
    			$typesData = decodeValue($typesData,$typesData[0][0],$nFields);
     
    	$DB_Connexion -> Close();
     
    ?>
    Un peu de JavaScript pour la méthode POST :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function sendForm(nData) {
    		var xhr = GetXmlHttpObject();
    		xhr.onreadystatechange = reportStatus(xhr); // vous trouverez la fonction sur le forum Developpez.com section Javascript/AJAX
    		xhr.open('post','fichier_php_appelé.php',true);	// POST : méthode / --- : URL absolue ou relative de la page XML / true : pour asynchrone
    		var data = getCmdPath('form',nData,2); // getCmdPath est une fonction que j ai écrit moi même pour obtenir ma ligne d envoi de données pour la méthode POST (elle est un peu trop lourde pour que je la POST... il va falloir réfléchir un peu ;) !)
    		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');	
    		//xhr.setRequestHeader('Content-length',data.length);
    		//xhr.setRequestHeader('Connection','close');
    		xhr.send(data);
    	}

    J'espère que ça peu aidé pour un début... moi j'ai pas mal galéré... on m'a tendu la main... c'est à mon tour de la tendre !

    Enjoy

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/10/2014, 19h35
  2. Réponses: 0
    Dernier message: 18/10/2014, 17h26
  3. [AC-2007] Aide pour base de données access 2007 svp
    Par Legirondin33 dans le forum Modélisation
    Réponses: 4
    Dernier message: 11/10/2011, 21h11
  4. Réponses: 4
    Dernier message: 20/02/2007, 11h07
  5. erreur de pilote pour base de donnée
    Par sandytarit dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 19/12/2006, 14h59

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