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 :

Pb avec une requête SQL [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 488
    Par défaut Pb avec une requête SQL
    Bonjour,

    Voici ma requête SQL, lorsque je l'exécute sous phpmyadmin, j'ai bien un résultat mais sous php, le code ne rentre pas dans la boucle "while".
    Je ne comprend pas du tout pourquoi?

    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
    $sql = "SELECT `poste_id`, `poste_date_update` FROM `agences`, `postes` WHERE `agences`.`agence_id`=`postes`.`agence_id` and `agences`.`agence_actualiseAnnonce`=1";
     
     
    $query = mysql_query($sql );
    while ($row = mysql_fetch_object($query)) {
      if (isset($row->poste_date_update)) {
        $maDateAjout= SUBSTR($row->poste_date_update,0,10);
        $maDateAjout2=getFRDate($maDateAjout);     
        $dans30jours = date($maDateAjout2, mktime(0, 0, 0, date("m"), date("d")+30,  date("Y")));
        $dateAuj= SUBSTR(now(),0,10);
        if($dateAuj>$dans30jours){
            $maDateAujUs=date('Y-m-d H:i:s');
            $sql2="UPDATE `postes` SET `poste_date_update`= '".$maDateAujUs."' WHERE `poste_id` ='".$row->poste_id."'";
            $query2 = mysql_query($sql2);
     
        }
      }
    }
    Voilà l'erreur que j'ai quand je fais un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $row=mysql_fetch_object($query) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Erreur SQL !
    SELECT `poste_id`, `poste_date_update` FROM `agences`, `postes` WHERE `agences`.`agence_id`=`postes`.`agence_id` and `agences`.`agence_actualiseAnnonce`=1
    Access denied for user 'apache'@'localhost' (using password: NO)

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 505
    Par défaut
    L'utilisateur apache n'a pas le droit de se connecter, en localhost du moins.

    de plus dans ton code, ceci ne donneras rien puisque now() est une fonction MySQL et non PHP

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 488
    Par défaut
    ben justement je comprend pas pourquoi il veut se connecter avec l'utilisateur apache alors que je lui indique bien l'utilisateur de connexion au départ.

    Je m'explique j'essaie de faire une tâche cron dans laquelle j'ai ça:

    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
    <?php
    $libZend = '../../../library/Zend-1.9.3/';
    set_include_path($libZend . PATH_SEPARATOR . get_include_path());
    include_once('Zend/Mail.php');
    include_once('../config.php');
     
    function getFRDate($date) {
                    $date_us =  $date;
                    $date_fr = implode('/',array_reverse (explode('-',$date_us)));
                    return $date_fr;
                }
    /*** Mise a jour de annonces clients ***/
    $sql = "SELECT `poste_id`,`poste_date_update` FROM `clients`,`postes` WHERE `clients`.`cli_id`=`postes`.`cli_id` and `clients`.`cli_actualiseAnnonce`=1";
    $query = mysql_query($sql);
     
    while ($row = mysql_fetch_object($query)) {
      if (isset($row->poste_date_update)) {
        $maDateAjout= SUBSTR($row->poste_date_update,0,10);
        $maDateAjout2=getFRDate($maDateAjout);     
        $dans30jours = date($maDateAjout2, mktime(0, 0, 0, date("m"), date("d")+30,  date("Y")));
         $dateAuj= SUBSTR (now(),0,10);
        if($dateAuj>$dans30jours){
            $maDateAujUs=date('Y-m-d H:i:s');
            $sql2="UPDATE `postes` SET `poste_date_update`= '".$maDateAujUs."' WHERE `poste_id` ='".$row->poste_id."'";
            $query2 = mysql_query($sql2);
     
        }
      }
    }
    Mon fichier config.php contient mes données de connexion:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    if (!$dbserver = mysql_connect('localhost','root','password')) die ('Impossible de se connecter au serveur de base de données!');
    if (!$db = mysql_select_db('bdd_test')) die('Impossible de trouver la base de données!');

  4. #4
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Sur une connexion standard en localhost on met souvent un password vide soit

    $dbserver = mysql_connect('localhost','root','')

  5. #5
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 505
    Par défaut
    @ABCIWEB : je te conseille la relecture de quelques documents sur la sécurité des base de données.

    Bon on va faire abstraction de ce que raconte ABCIWEB.

    Essaye ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    $dbserver = mysql_connect('localhost','root','password');
    $db = mysql_select_db('bdd_test',$dbserver);

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    /*** Mise a jour de annonces clients ***/
    $sql = "SELECT `poste_id`,`poste_date_update` FROM `clients`,`postes` WHERE `clients`.`cli_id`=`postes`.`cli_id` and `clients`.`cli_actualiseAnnonce`=1";
    $query = mysql_query($sql,$dbserver);

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 488
    Par défaut
    Merci!

  7. #7
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Citation Envoyé par MaitrePylos Voir le message
    @ABCIWEB : je te conseille la relecture de quelques documents sur la sécurité des base de données.
    Oui bon... c'est l'utilisateur "root" qui m'a fait penser à une config en local sur un serveur d'évaluation (non destiné à servir des données sur le net)

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 06/10/2009, 09h37
  2. Réponses: 4
    Dernier message: 11/06/2009, 16h03
  3. Réponses: 6
    Dernier message: 23/04/2007, 15h21
  4. [MySQL] Problème avec une requête SQL
    Par chobol dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 11/05/2006, 12h29
  5. [VB]Problème avec une requête SQL
    Par Tyrael62 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 18/03/2006, 17h47

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