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

EDI, CMS, Outils, Scripts et API PHP Discussion :

extraire d'une base de données


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 3
    Par défaut extraire d'une base de données
    Bonjour
    objet : obtenir le prénom d'un candidat dont on connaît le nom

    L'utilisateur (formulaire partie publique) entre le nom ce qui produit la variable $nom_candidat

    La table "candidats" (non spip) est rentrée dans la base de données par Phpmyadmin avec la commande importer, elle comprend les champs "nom" et "prenom"

    Toute la partie CVT "roule" jusqu'à la requête

    Elle est faite avec sql_getfetsel (bon choix?), sur le champ "prenom" de la table "candidats", mais je n'arrive pas écrire le "where" càd dire obtenir la ligne dans laquelle "nom" est "$nom_candidat"..

    Spip 2.1.2 en local

    Merci d'avance

    jm

    PS : si possible, ajouter le critère LIKE pour ne rentrer que les premières lettres du nom...

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 183
    Par défaut
    Ca manque de précisions tout ça.

    Est-ce dans le cadre de la réalisation d'un plugin ?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 3
    Par défaut
    bjr

    Du tout, c'est un formulaire dans un article appelé par

    <formulaire|nom_du_formulaire>

    construit en suivant la "Documentation technique sur SPIP 2.1", de Matthieu Marcillaud, et la doc officielle.

    Ce qui me fait problème dans la partie "Traiter" est le fonctionnement de sgl_getfetsel, qui fait partie de l'API SQL SPIP.

    La séquence :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $prenom = sql_getfetsel('prenom','candidats','nom = $nom_candidat');
     
    if ($prenom) { 
    		$retour['message_ok'] = "Le pr&eacute;nom est $prenom";
    	} else {
    		$retour['message_erreur'] = "Erreur lors de la recherche !";
    	}
    	return $retour;
    retourne "Erreur lors de la recherche".

    Il y a une erreur de syntaxe?

    J'ai remarqué que si la variable est un nombre entier, "ça marche"

    De fait, dans les exemples (enfin ceux consultés), on a toujours qqe chose comme "intval($variable)"

    J'ai donc rajouté dans la table un champ "id_nom", le nom du champ "nom" est transformé en nombre dans "id_nom" en affectant a chaque lettre son code ASCII et effectivement la bonne ligne est trouvée (et donc la bonne cellule)

    Resterait plus qu'à transformer le nom saisi par le visiteur selon le même procédé (en cours), je mettrais bien cette nouvelle fonction au début de la partie Traiter...

    Il n'y a pas plus simple?

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 3
    Par défaut
    La suite de mon message précédent :

    Quelques lignes insérées dans la partie traitement

    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
    Début :
    	$tmp=0;	
    	$res=0;
    //initialisation des variables.
    	$lgnom = strlen($nom_candidat);
    //on récup la longueur du nom
    //Tadpole considère les chaines comme étant des tableaux de caractères...
    //on boucle en analysant chaque caractère tour à tour jusqu'au bout du nom.
    for ($i = 0; $i < $lgnom; $i++) {
    	$tmp = ord($nom_expert[$i]);
    	$res += $tmp * pow(1000,$i);
    //on ajoute la valeur ascii multipliée par 1000 puissance i (ASCII est sur trois chiffres, i commence à zéro)
    //noter que les lettres à gauche ont leur code à droite (garder la même convention pour le remplissage de la table!!
    }
     
    Fin
    Note_1 : utiliser toutes les lettres conduit à un nombre énorme

    Dans mon cas je limite pour le moment aux quelques premières

    En utilisant par exemple une correspondance bi-univoque entre les lettres de l'alphabet et leur numéro d'ordre, on devrait mieux s'en tirer, question à suivre...autres solutions?

    Note_2 : je teste le remplissage de la BDD avec Excel

    Bonne année en attendant

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 183
    Par défaut
    Tu devrais trouver ici la fonction qui te correspond le mieux

    http://doc.spip.org/abstract_sql-php

Discussions similaires

  1. extraire des données d'une base de donnée
    Par Médéstrac dans le forum VB.NET
    Réponses: 0
    Dernier message: 29/03/2010, 09h34
  2. extraire des info d'une base de donnée
    Par pierrot10 dans le forum Zope
    Réponses: 2
    Dernier message: 11/05/2009, 20h43
  3. Extraire une image tiff d'une base de donnée sql server
    Par aristotetg dans le forum Bases de données
    Réponses: 1
    Dernier message: 09/05/2007, 21h51
  4. Extraire une Base de donnée Excel vers Mysql ??
    Par Arvulis dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 09/01/2006, 22h58

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