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 :

[Tableaux] problème avec select


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Par défaut [Tableaux] problème avec select
    Bonjour,
    j'ai un problème avec une requête sql que j'envoi avec php.
    J'expose mon pb: j'ai une table 'tab' dans laquelle pour chaque num d'identifiant (clé) j'ai des dates et des validation de [T1 et validT1] à [T6 et valid T6] .
    Le but de ma requête est de sélectionner les dates, pour n'importe quel identifiant, qui sont inférieur à ma date d'aujourd'hui (donc 2007-01-10) et dont le paramètre validT$i est égale à 0.

    voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $T=array(2=>'T2',3=>'T3',4=>'T4',5=>'T5',6=>'T6');
    for ($i=1; $i<7; $i++){
     
    	$req2="SELECT * FROM tab WHERE (T".$i."<'2007-01-10'AND T".$i."<>0) AND validT".$i."=0;";
     
    	$res2=mysql_query($req2, $connect);
    	$data2=mysql_fetch_array($res2) or die('mysql_error());
    	$visite=$data2[$T[$i]];
    	echo $visite;
    	}
    je n'ai pas de message d'erruer donc je ne sais quoi faire.

    Aider moi svp.

    Merci d'avance

  2. #2
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Il faudrait que tu mettes un or die juste après ton mysql_query pour voir si c'est la requête qui foire. Peut-être l'espace qui manque avant le AND qui sait...

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Par défaut
    j'ai mis un or die (mysql_error()) après le mysql_query et même chose. Il m'affiche une erreur au niveau du mysql_fetch array lorsque je met un or die ('erreur 2').

  4. #4
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    question de base , tu te connect a la BDD ?
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Par défaut
    oui oui je me connect
    désolé je ne l'ai pas mis dans mon morceau de code.

    Si ça peu aider: voici ce qui s'imprime quand j'imprime mon $res2:

    Resource id #4Resource id #5Resource id #6Resource id #7Resource id #8Resource id #9

    j'ai l'impression que c'est avec le mysql_fetch_array qu'il y a un pb.

    Merci d'avance

  6. #6
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    essaie :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $data2=mysql_fetch_assoc($res2)
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  7. #7
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    Salut, ton tableau $T commence à l'indice 2 alors que ta boucle commence à 1

    L'erreur vient sûrement de là

    Bon développement

  8. #8
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    Citation Envoyé par yasminati
    Si ça peu aider: voici ce qui s'imprime quand j'imprime mon $res2:

    Resource id #4Resource id #5Resource id #6Resource id #7Resource id #8Resource id #9
    ça c'est normal !

    Par contre tu es conscient quand meme qu'il faut afficher par exemple

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $visite=$data2[2]];

    tandis que toi tu affiche


    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $visite=$data2[T2];

    dans ton cas il affiche rien puisque ça ne correspond a rien !
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Par défaut
    j'ai ajouté T1 dans mon tableau: ma boucle ne boucle qu'une seule fois maintenant.

    J'ai toujours la même erreur2

    j'ai essayé avec mysql_fetch_assos: même erreur.

    Je suis désespérer :-$

  10. #10
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    Euh, juste pour être sûr, tu as affiché ta requête et tu l'as testée dans PHPMyAdmin ou autre ?

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Par défaut
    pour l'affichage du data2[$T[$i]] cela correspond en réalité à data2['Ti'] puisque dans mon tableau pour chaque valeur i correspond 'Ti'

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Par défaut
    j'ai essayer sur phpmyadmin avec un T particulier (exple T3).
    Je voudrais bien teste avec tout les T, mais je ne sais pas faire.
    Je recherche depuis un moment comment considérer n'importe quels caractère après T, mais je n'ai pas trouver pour un nom de champ mais plutôt pour une valeur (c'est 'pap%' par exemple si je veux trier tout les valeurs commençant par pap)

  13. #13
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    Re, je viens de voir un truc, dans la condition de ta requête, tu as
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    T".$i."<'2007-01-10'AND T".$i."<>0
    Tes champs Ti sont de quel type ; là il y a un mélange, c'est peut-être ça le problème

    Sinon, pour tester tes requêtes, tu peux ajouter
    dans ta boucle, et tu testes chaque ligne affichée

  14. #14
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Allez à mon tour de me lancer

    Si jamais la requête est bonne il y a sûrement un problème ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $visite=$data2[$T[$i]];
    Essaie avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $visite=$data2["T".{$i}];
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $visite=$data2["T.{$i}"];
    je sais plus...

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Par défaut
    mes champs Ti sont de type date.

  16. #16
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    Citation Envoyé par yasminati
    mes champs Ti sont de type date.
    Et le T".$i."<>0 passe ?

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Par défaut
    Merci JWhite.

    J'ai essayé mais ça fonctionne toujours pas.

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Par défaut
    "Et le T".$i."<>0 passe ? "

    oui ça passe, mais avant de venir sur ce forum j'avais tester:
    T".$i."<>0,
    T".$i."<>'0000-00-00'
    ou même T".$i."<>0000-00-00

    aider moi je n'ai plus d'idée, alors que je trouve que c'est une boucle simple et une requête simple, je ne comprends toujours pas

  19. #19
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    Re, si tu veux bien, on va reprendre doucement ; tu pourrais essayer ce script et nous dire ce qui est affiché ? (j'ai modifié un peu le tien)
    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
    <?php
    echo 'Start';
    echo '<br/><br/>===================================<br/><br/>';
    $fields = array('T1', 'T2', 'T3', 'T4', 'T5', 'T6');
    foreach($fields as $field) {
    	$sql = 'SELECT * FROM tab WHERE ' . $field . ' < \'2007-01-10\' AND ' . $field . ' <> 0 AND valid' . $field . ' = 0;';
    	echo $sql;
    	echo '<br/><br/>';
     
    	$query = mysql_query($sql, $connect) or die('Erreur mysql_query : ' . mysql_error());
    	$array = mysql_fetch_array($query);
    	echo $array[$field];
    	echo '<br/><br/>===================================<br/><br/>';
    }
    echo 'End';
    ?>
    Je n'ai pas pu le tester, il y a peut-être des erreurs de syntaxe

Discussions similaires

  1. [Tableaux] Problème avec array_multisort
    Par ecocentric dans le forum Langage
    Réponses: 5
    Dernier message: 27/09/2005, 14h56
  2. [Tableaux] Problème avec les boucles
    Par speed_man002 dans le forum Langage
    Réponses: 4
    Dernier message: 21/09/2005, 15h42
  3. [Tableaux] problème avec while
    Par zimotep dans le forum Langage
    Réponses: 3
    Dernier message: 11/09/2005, 10h30
  4. [Tableaux] Problème avec Switch case
    Par philippef dans le forum Langage
    Réponses: 4
    Dernier message: 07/09/2005, 16h37
  5. Problème avec select top
    Par franculo_caoulene dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 10/12/2004, 14h55

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