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 :

Problème de boucle, besoin d'un oeil externe pour voir mon erreur eventuelle


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2012
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2012
    Messages : 81
    Points : 36
    Points
    36
    Par défaut
    Bonjour à tous.

    J'ai une page php qui récupère la valeur d'une page html (textarea) et la converti en plusieurs valeur grace à la fonction explode. Jusque là tout vas bien, mais lorsque j'essaye de faire une boucle à un moment donnée, ma requete me retourne toujours un résultat vide, alors qu'il ne devrait pas (mon code sans cette boucle marchais très bien.

    Voilà mon code :

    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
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    <html>
    <?php
     
    $connection=mysql_connect("localhost", "root", "") or die ("message d'erreur".mysql_error($connection));
    $base=("test");
     
    if(!$connection)
    	die("connection impossible");
     
    	$mabasededonnee=$base;
    	mysql_select_db($mabasededonnee) or die ("pas de connection");
    	$formchoix=$_POST["formchoix"];
    	$formselection=$_POST["formselection"];
    	$indiv=explode("\n", $formselection);
     
    	$row=count($indiv)-1; //-1 parce que lorsqu'on copie colle depuis un classeur Excel, il laisse toujours une ligne vide en dessous en plus
     
            for($i=0; $i<=$row-1; $i++)
    	{
     
    		$requete="select machine.codemachine, marque, modele, numerodeserie, affectation, service, datefingarantie, codepostal, ville, site, employe.codee, nom, prenom, tel, fax, mobile, mail, lieudetravail, adresse, fonction from employe, machine, jointure where employe.codee=jointure.codee and jointure.codemachine=machine.codemachine and machine.codemachine='$indiv[$i]';";
    		$resultat=mysql_query($requete);
    		$ligneresultat=mysql_fetch_array($resultat);
     
    		if(!$ligneresultat)
    		{
     
    			echo "<br>"."<br>"."<br>"."<br>"."<br>";
    			echo "<table border=1 bordercolor=#000000 width=850 height=80 align=center bgcolor=#BCBCBC>";
    			echo "<tr height 20>";
    			echo "<td align=center>"."<h1>"."<big>"."<b>"."Aucun enregistrement ne correspond"."</b>"."</big>"."</h1>"."</td>";
    			echo "</tr>";
    			echo "</table>";
    			echo $i;
    			echo $indiv[$i];
    			echo $requete;
    			echo $resultat;
     
     
    		}
    		else
    		{
     
    			echo "<center>"."<i>"."<h1>"."<big>"."Informations sur la machine"."</big>"."</h1>"."</i>"."</center>"."<br>";
     
    			echo "<table border=1 bordercolor=#000000 width=600 height=80 align=center bgcolor=#BCBCBC>";
    			echo "<tr height=20>";
    			echo "<td>"."Code machine"."</td>";
    			echo "<td>".$ligneresultat['codemachine']."</td>";
    			echo "</tr>";
    			echo "<tr height=20>";
    			echo "<td>"."Marque"."</td>";
    			echo "<td>".$ligneresultat['marque']."</td>";
    			echo "</tr>";
    			echo "<tr height=20>";
    			echo "<td>"."Mod&egrave;le"."</td>";
    			echo "<td>".$ligneresultat['modele']."</td>";
    			echo "</tr>";
    			echo "<tr height=20>";
    			echo "<td>"."Num&eacute;ro de s&eacute;rie"."</td>";
    			echo "<td>".$ligneresultat['numerodeserie']."</td>";
    			echo "</tr>";
    			echo "<tr height=20>";
    			echo "<td>"."Affectation"."</td>";
    			echo "<td>".$ligneresultat['affectation']."</td>";
    			echo "</tr>";
    			echo "<tr height=20>";
    			echo "<td>"."Service"."</td>";
    			echo "<td>".$ligneresultat['service']."</td>";
    			echo "</tr>";
    			echo "<tr height=20>";
    			echo "<td>"."Date de fin de garantie"."</td>";
    			echo "<td>".$ligneresultat['datefingarantie']."</td>";
    			echo "</tr>";
    			echo "<tr height=20>";
    			echo "<td>"."Code postal"."</td>";
    			echo "<td>".$ligneresultat['codepostal']."</td>";
    			echo "</tr>";
    			echo "<tr height=20>";
    			echo "<td>"."Ville"."</td>";
    			echo "<td>".$ligneresultat['ville']."</td>";
    			echo "</tr>";
    			echo "<tr height=20>";
    			echo "<td>"."Site"."</td>";
    			echo "<td>".$ligneresultat['site']."</td>";
    			echo "</tr>";
    			echo "<tr height=20>";
    			echo "<td>"."Code employe"."</td>";
    			echo "<td>".$ligneresultat['codee']."</td>";
    			echo "</tr>";
    			echo "<tr height=20>";
    			echo "<td>"."Nom"."</td>";
    			echo "<td>".$ligneresultat['nom']."</td>";
    			echo "</tr>";
    			echo "<tr height=20>";
    			echo "<td>"."Pr&eacute;nom"."</td>";
    			echo "<td>".$ligneresultat['prenom']."</td>";
    			echo "</tr>";
    			echo "<tr height=20>";
    			echo "<td>"."T&eacute;l&eacute;phone"."</td>";
    			echo "<td>".$ligneresultat['tel']."</td>";
    			echo "</tr>";
    			echo "<tr height=20>";
    			echo "<td>"."Fax"."</td>";
    			echo "<td>".$ligneresultat['fax']."</td>";
    			echo "</tr>";
    			echo "<tr height=20>";
    			echo "<td>"."Mobile"."</td>";
    			echo "<td>".$ligneresultat['mobile']."</td>";
    			echo "</tr>";
    			echo "<tr height=20>";
    			echo "<td>"."E-mail"."</td>";
    			echo "<td>".$ligneresultat['mail']."</td>";
    			echo "</tr>";
    			echo "<tr height=20>";
    			echo "<td>"."Lieu de travail"."</td>";
    			echo "<td>".$ligneresultat['lieudetravail']."</td>";
    			echo "</tr>";
    			echo "<tr height=20>";
    			echo "<td>"."Adresse physique"."</td>";
    			echo "<td>".$ligneresultat['adresse']."</td>";
    			echo "</tr>";
    			echo "<tr height=20>";
    			echo "<td>"."Fonction"."</td>";
    			echo "<td>".$ligneresultat['fonction']."</td>";
    			echo "</tr>";
    			echo "</table>";
     
     
    			}
    		}
    Le résultat agit comme si la requete retournais du vide à chaque fois, pourtant, avant ma boucle, tout marchais très bien.

    Est ce que quelqu'un voit une erreur qui m'aurai echappé svp ?

    J'ai d'abord penser que le problème pouvait venir du fait que mon $indiv[$i] prend comme valeur "valeur " (avec un espace) alors qu'il me le faut sans espace. Mais sur MySQL, les requetes s'exécutent même avec 40 espaces alors je ne sais pas si c'est ça
    Et si c'est ça, comment enlever cette espace de fin ? J'ai essayé avec strstr mais ça ne marche pas avec un espace, seulement avec un veritable caractère.

  2. #2
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Re:

    Ton pb effectivement oeil neuf, c ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    		$requete="select machine.codemachine, marque, modele, numerodeserie, affectation, service, datefingarantie, codepostal, ville, site, employe.codee, nom, prenom, tel, fax, mobile, mail, lieudetravail, adresse, fonction from employe, machine, jointure where employe.codee=jointure.codee and jointure.codemachine=machine.codemachine and machine.codemachine='$indiv[$i]';";
    L'avant dernier ;

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2012
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2012
    Messages : 81
    Points : 36
    Points
    36
    Par défaut
    Le ; ? Mais c'est juste le ; de fin de requête ^^. Je viens de l'enlever ça change rien

  4. #4
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    De toute les façons, ya pas

    Ensuite codeMachine, c'est un entier ? sinon pas de quote ...

    J'avance dans code sinon

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2012
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2012
    Messages : 81
    Points : 36
    Points
    36
    Par défaut
    Non codemachine c'est caractère il y a des chiffres et des lettres ^^

  6. #6
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Désolé j'avais pas vu:
    J'ai d'abord penser que le problème pouvait venir du fait que mon $indiv[$i] prend comme valeur "valeur " (avec un espace) alors qu'il me le faut sans espace. Mais sur MySQL, les requetes s'exécutent même avec 40 espaces alors je ne sais pas si c'est ça
    Et si c'est ça, comment enlever cette espace de fin ? J'ai essayé avec strstr mais ça ne marche pas avec un espace, seulement avec un veritable caractère.


    Pour enlever l'espace:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $rest = substr($taChaine, 0, strlen($taChaine)-1);

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2012
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2012
    Messages : 81
    Points : 36
    Points
    36
    Par défaut
    Aaaah merci ça marche pour enlevé les espaces ^^

    Mais malheureusement, c'est ce que je craignais, le problème de ma requete ne viens pas de là

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2012
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2012
    Messages : 81
    Points : 36
    Points
    36
    Par défaut
    J'ai rien dis j'avais oublié de mettre $rest en variable dans ma requete ^^ ça a réglé tout les problèmes ^^ Merci beaucoup, une fois de plus XD

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

Discussions similaires

  1. Besoin d'aide pour comprendre Mon erreur
    Par napi15 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 24/04/2013, 23h10
  2. Problème pour voir mon doc (DVI)
    Par Alixam dans le forum Débuter
    Réponses: 6
    Dernier message: 08/06/2011, 14h22
  3. [MySQL] Besoin d'un œil externe pour vérifier mon code (envoi données vers mysql)
    Par cuisto44000 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 13/12/2007, 15h48
  4. Problème de boucle
    Par Louis-Guillaume Morand dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/09/2005, 10h10
  5. Problème de boucle
    Par basclln dans le forum C++
    Réponses: 19
    Dernier message: 02/04/2005, 10h13

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