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

Langage PHP Discussion :

unefined variable avec substract


Sujet :

Langage PHP

  1. #1
    Membre éclairé Avatar de monlou
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Par défaut unefined variable avec substract
    Bonjour,

    je voudrais soustraire des formats séparés jj/mm/aannee avec substr pour une valeur contenue dans une date

    j'ai une valeur inclue dans ce champ caché

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input name="hiddenField2" type="hidden" id="hiddenField2" value="<?php echo $row_rsmod_voiturier2['date_naissance']; ?>" />
    j'ai essayé a peu pres tout j'usqu' ici comme ici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    $_jour =  substr(mysql_free_result(rsmod_voiturier_2)['date_naissance'], 8, 2);
    $_annee = substr( echo $row_rsmod_voiturier_2['date_naissance'], 0, 4);
    $_mois = substr($row_rsmod_voiturier_2['date_naissance'], 5, 2); ?>
    mais ca me donne des messages indefined variables avec les 3 facons


    pour d'autres infos, j'ai aussi le script qui recupere les infos de la base

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $colname_rsmod_voiturier2 = "41";
    if (isset($_SESSION['membres_id'])) {
      $colname_rsmod_voiturier2 = $_SESSION['membres_id'];
    }
    mysql_select_db($database_connexionweziwezo, $connexionweziwezo);
    $query_rsmod_voiturier2 = sprintf("SELECT membres.password, gestion_voiturier.membres_id, gestion_voiturier.prenom, gestion_voiturier.nom, gestion_voiturier.adresse, gestion_voiturier.ville, gestion_voiturier.pays, gestion_voiturier.province, gestion_voiturier.code_postal, gestion_voiturier.telephone, gestion_voiturier.cellulaire, gestion_voiturier.occupation, gestion_voiturier.sexe, gestion_voiturier.date_naissance, gestion_voiturier.photo, gestion_voiturier.email, gestion_voiturier.message, gestion_voiturier.date_inscription, gestion_voiturier.permis_conduire, gestion_voiturier.annee_experience FROM gestion_voiturier, membres WHERE membres_id = %s AND gestion_voiturier.membres_id=membres.id", GetSQLValueString($colname_rsmod_voiturier2, "text"));
    $rsmod_voiturier2 = mysql_query($query_rsmod_voiturier2, $connexionweziwezo) or die(mysql_error());
    $row_rsmod_voiturier2 = mysql_fetch_assoc($rsmod_voiturier2);
    ?>

  2. #2
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $_jour =  substr(mysql_free_result(rsmod_voiturier_2)['date_naissance'], 8, 2);
    $_annee = substr( echo $row_rsmod_voiturier_2['date_naissance'], 0, 4);

    Tu rajoute des trucs qui n'ont pas de sens.
    Le echo n'a strictement rien à faire là. Un echo c'est pour dire à Php d'afficher quelque chose.
    Idem pour mysql_free_result(), c'est pour libérer le résultat de la mémoire. N'a strictement rien à faire là.

    Evite d'inventer des trucs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $_jour =  substr($row_rsmod_voiturier_2['date_naissance'], 8, 2);
    $_annee = substr($row_rsmod_voiturier_2['date_naissance'], 0, 4);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query_rsmod_voiturier2 = sprintf("SELECT membres.password, gestion_voiturier.membres_id, gestion_voiturier.prenom, gestion_voiturier.nom, gestion_voiturier.adresse, gestion_voiturier.ville, gestion_voiturier.pays, gestion_voiturier.province, gestion_voiturier.code_postal, gestion_voiturier.telephone, gestion_voiturier.cellulaire, gestion_voiturier.occupation, gestion_voiturier.sexe, gestion_voiturier.date_naissance, gestion_voiturier.photo, gestion_voiturier.email, gestion_voiturier.message, gestion_voiturier.date_inscription, gestion_voiturier.permis_conduire, gestion_voiturier.annee_experience FROM gestion_voiturier, membres WHERE membres_id = %s AND gestion_voiturier.membres_id=membres.id", GetSQLValueString($colname_rsmod_voiturier2, "text"));
    Dans ce contexte là, la fonction sprintf ne sert pas à grand (personnellement je dirais même : à rien), par ce membres_id DOIT être un identifiant, un nombre, en entier.
    "Typer" (int)$var le paramètre me semble bien plus simple, et de plus bien plus efficace et sécurisé que n'importe quel autre routine de code.
    Ceci dit, quitte à utiliser cette fonction sprintf, il aurait fallut utiliser %d (nombre) plutôt que %s (string).
    Voir la doc sur les différents paramètres pour cette fonction : http://fr2.php.net/manual/fr/function.sprintf.php

    Donc en plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query_rsmod_voiturier2 = "SELECT ... etc ... WHERE membres_id = '".(int)$colname_rsmod_voiturier2."' AND gestion_voiturier.membres_id=membres.id";
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (isset($_SESSION['membres_id'])) {
      $colname_rsmod_voiturier2 = $_SESSION['membres_id'];
    }
    Pourquoi créer un nom qui fait 10Km de long et qui plus est n'est pas franchement très "parlant".
    Tu initialise une variable avec $_SESSION['membres_id'], pourquoi ne pas utiliser $membre_id comme nom ?
    C'est pourtant explicite comme nom $membre_id, non ?

Discussions similaires

  1. [VB.NET] Problem de récupération de variable avec une DLL
    Par ludovic85 dans le forum Windows Forms
    Réponses: 11
    Dernier message: 19/01/2005, 12h37
  2. Réponses: 4
    Dernier message: 28/10/2004, 11h57
  3. Variable avec saut de ligne à l'intérieur
    Par MaTHieU_ dans le forum Langage
    Réponses: 2
    Dernier message: 09/08/2004, 23h39
  4. Generer des noms de variables avec une boucle
    Par moutanakid dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 28/07/2004, 18h45
  5. Désigner une variable avec une variable?
    Par littleman dans le forum Paradox
    Réponses: 4
    Dernier message: 12/08/2002, 12h21

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