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 :

Requête donne pas de résultat. Erreur syntax dans PHP? [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 312
    Points : 155
    Points
    155
    Par défaut Requête donne pas de résultat. Erreur syntax dans PHP?
    bonsoir,

    Je voudrais afficher, selon choix d'un menu, tout les événements d'un certain type (il y à 2). J'ai créer la page qui devrais afficher les résultats dans un tableau.
    Mais il n'y à rien qui 's-affiche.

    J'ai copier le sql directement dans MySql et j'obtiens bien le résultat escompté.
    Quand je change dans mon script le sql par qqc de très simple, style Select * From 1 seul table, j'obtiens mon tableau.
    Par contre, avec le sql un petit peu plus complexe, plus rien.
    Vu que directement dans MySql j'ai un résultat, je peux quand même considerer que ce ne pas la requête en cause.
    Est-ce que j'oublie qqc dans mon script?

    Si qqn peux m'aider svp, je suis déjà coincé depuis plusieurs jours.

    Voici le code de ma page.

    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
    <body>
    <br>
    <h1>Selection</h1>
    <br>
    <?php
    $mysqli = new mysqli("host", "root", "password", "bdd");
     
    if (mysqli_connect_errno()) {
        printf("Echec de la connexion : %s\n", mysqli_connect_error());
    }
     
    if(isset($_GET['choix'])){
    $choix = $_GET['choix'];
     
     
     Switch($choix)
       {		
    	Case ($choix == 2):
            $sql = "SELECT t_rendezvous.HoraireDebut, tbl_clientfournisseur.Nom, tbl_clientfournisseur.Adresse, tbl_clientfournisseur.Localité
    				FROM tbl_clientfournisseur INNER JOIN (t_rendezvous INNER JOIN tbl_eventsorte ON t_rendezvous.IdEvent = tbl_eventsorte.IdEvent) ON tbl_clientfournisseur.IdClient = t_rendezvous.NP
    				WHERE (((tbl_eventsorte.IdEvent)=2))"; 
    		break;
     
    	Case ($choix == 3):
            $sql = "SELECT t_rendezvous.HoraireDebut, t_rendezvous.HoraireFin, tbl_clientfournisseur.Nom, tbl_clientfournisseur.Adresse, tbl_clientfournisseur.Localité, tbl_clientfournisseur.CodePostale, 
    		tbl_PaysMonde.`Country French`, tbl_eventsorte.Description FROM tbl_PaysMonde INNER JOIN (tbl_clientfournisseur 
    		INNER JOIN (t_rendezvous INNER JOIN tbl_eventsorte ON t_rendezvous.IdEvent = tbl_eventsorte.IdEvent) ON tbl_clientfournisseur.IdClient = t_rendezvous.NP) ON tbl_PaysMonde.`ID TLD` = tbl_clientfournisseur.Pays 
    		WHERE (((tbl_eventsorte.IdEvent)=3))";
    		break;	
       }
     }
     
    $resultat = mysqli_query($mysqli, $sql) or die(mysql_error());
    if($resultat != false){ 
    	$Nmax = 6; // nombre par page
    	$Ncur = 0; // n° de la fiche courante
    	$Ndeb=@$_GET["num"];
    	}
     
    echo "<p>";
    echo "<table border='1'>
    <tr>
    <th>Debut</th>
    <th>Chez qui</th>
    <th>Adresse</th>
    <th>Sorte Event</th> 
    </tr>";
     
    while(($row = mysqli_fetch_assoc($resultat))&& ($Ncur<$Nmax+$Ndeb)){
     if($Ncur>=$Ndeb) {
            echo "<tr>";
    		echo "<td>" . filter_var($row['HoraireDebut'],FILTER_SANITIZE_FULL_SPECIAL_CHARS) . "</td>";
    		echo "<td>" . filter_var($row['Nom'],FILTER_SANITIZE_FULL_SPECIAL_CHARS) . "</td>"; 
    		echo "<td>" . filter_var($row['Adresse'],FILTER_SANITIZE_FULL_SPECIAL_CHARS) . "</td>";
    		echo "<td>" . filter_var($row['Localité'],FILTER_SANITIZE_FULL_SPECIAL_CHARS) . "</td>";?>
     
    <?php }
    	$Ncur++;
       }
    echo "</table>";
     
    echo "<br>";
    ?>
     
    <table cellpadding=3>
    <tr>
    <?php
    if($Ndeb > 0)
    	{ ?> <td><form method="post" action="structure.php?page=select&choix=<?php echo $choix;?>&num=<?php echo $Ndeb-$Nmax;?>">
    			<input type="submit" value="Precedent" width="75px"></form></td><?php }?>
    	<td> <?php $Npag = ceil(mysqli_num_rows($resultat)/$Nmax);
    		for($i = 1;$i<=$Npag;$i++) {
    			if($Ndeb == ($i-1)*$Nmax) { ?>Page <?php echo $i; ?>
    		<?php } else { ?><a href="?page=select&choix=<?php echo $choix; ?>&num=<?php echo ($i-1)*$Nmax; ?>">&nbsp;<?php echo $i; ?>&nbsp;</a><?php }
    		} ?></td> 
    <?php
    if($row) { ?><td><form method="post" action="structure.php?page=select&choix=<?php echo $choix; ?>&num=<?php echo $Ncur; ?>">
    			<input type="submit" value="Prochain" width="75px"></form>
    </td><?php }?>
    </tr>
    </table>   
     
     
     <?php
    $sql = "";	
    ?>
     
    <h3><center><a href="./structure.php"><font color="#c94700">Retour</a></center><h3>
     
    </body>
    </html>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il faudrait que tu regardes un peu ce que donnes ton script pour cibler le probleme.
    Mets des "echo" pour voir les parties qui sont executées et les parties ou il ne va pas.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 312
    Points : 155
    Points
    155
    Par défaut
    Quand je change mon sql dans un SELECT * FROM t_renvdezvous, tout mon script est exécuté, comme il faut.
    Je travail avec le même script sur une autre page sans souci avec une autre requete

    Donc c'est le $résultat qui ne donne rien.

    Je ne sais pas comment tester mon $sql et le $resultat.

    Comme j'ai dit, en MySql le sql (les deux) sont bien exécuter en me donne le résultat attendu.

    Une idée pour continuer?

    Hans

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il y a une erreur dans ta erreur mais tu t'es trompé l'affichage des erreurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $resultat = mysqli_query($mysqli, $sql) or die(mysqli_error());

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 312
    Points : 155
    Points
    155
    Par défaut
    ok, j'ai trouvé que le syntaxe correct est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $resultat = mysqli_query($mysqli, $sql) or die(mysqli_error($mysqli));
    et j'obtiens maintenant message d'erreur : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '� FROM tbl_clientfournisseur INNER JOIN (t_rendezvous INNER JOIN tbl_event' at line 1

    Donc quand même erreur syntaxe sql. Ce que je ne comprend pas, car fonctionne en MySql

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 312
    Points : 155
    Points
    155
    Par défaut
    bon, j'ai changé les noms des certaines champs Localité -> Localite, Code Postale -> CodePostal, maintenant tout marche.

    Merci pour tes réflexions, ça m'as permis de voir le problème.

    Hans

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

Discussions similaires

  1. Une requète qui ne donne pas le résultat attendu
    Par JeanNoel53 dans le forum Firebird
    Réponses: 1
    Dernier message: 17/12/2013, 10h23
  2. Une requête qui ne donne pas le résultat attendu
    Par JeanNoel53 dans le forum Visual C++
    Réponses: 4
    Dernier message: 30/10/2013, 11h35
  3. Réponses: 3
    Dernier message: 29/07/2011, 11h54
  4. [MySQL] Requête ne donne pas de résultat
    Par elepetit dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 07/07/2010, 12h07
  5. Réponses: 3
    Dernier message: 09/02/2010, 20h15

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