Problème d'affichage php/javascript
Fermé
Amelie0528
Messages postés
51
Date d'inscription
dimanche 2 novembre 2014
Statut
Membre
Dernière intervention
22 février 2016
-
Modifié par jordane45 le 29/01/2016 à 15:28
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 - 29 janv. 2016 à 17:00
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 - 29 janv. 2016 à 17:00
A voir également:
- Problème d'affichage php/javascript
- Telecharger javascript - Télécharger - Langages
- Easy php - Télécharger - Divers Web & Internet
- Affichage double ecran - Guide
- Php natif - Forum PHP
- Windows 11 affichage classique - Guide
2 réponses
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
524
29 janv. 2016 à 15:17
29 janv. 2016 à 15:17
Salut,
Tu as un espace en trop au niveau de la récupération du paramètre get orderby dans la construction de ta requête :
Bonne journée
Tu as un espace en trop au niveau de la récupération du paramètre get orderby dans la construction de ta requête :
$_GET[' orderby']
Bonne journée
jordane45
Messages postés
38139
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 avril 2024
4 649
Modifié par jordane45 le 29/01/2016 à 15:56
Modifié par jordane45 le 29/01/2016 à 15:56
Bonjour,
Je me suis permis de refaire un peu mieux ton code :
Cordialement,
Jordane
Je me suis permis de refaire un peu mieux ton code :
<?php //Fichier de connexion à la BDD : cnxBDD.php // A include lorsque tu en as besoin. // connexion bdd try{ $bdd = mysqli_connect('localhost', 'root', '06193475L', 'base-pacetel'); $bdd->set_charset("utf8"); }catch (Exception $e){ die('Erreur : ' . $e->getMessage()); } ?>
<?php //On place le code PHP avant le HTML //Ca rend ton code plus simple à debuguer en cas de pb // Pour afficher les éventuelles erreurs PHP error_reporting(E_ALL); //Connexion à la BDD require_once "cnxBDD.php"; //Récupération "propre" des variables $orderby = !empty($_GET['orderby']) ? " ORDER BY " . $_GET['orderby'] : ''; $liste1= isset($_POST['liste1']) ? $_POST['liste1'] : -1; $escaped_liste1 = mysql_real_escape_string($liste1); //traitement du filtre $req = "SELECT DISTINCT nomclient ,Numero ,Destination ,value ,valeur ,coutCDR ,Type ,mois FROM `facture2015` WHERE `nomclient` ='".$escaped_liste1."' ".$orderby; $res1 = mysqli_query($bdd,$req) or die("Erreur !"); $req = "SELECT DISTINCT nomclient ,Numero ,Destination ,value ,valeur ,coutCDR ,Type ,mois FROM `facture2015` WHERE `nomclient` ='".$escaped_liste1."' ORDER BY coutCDR DESC LIMIT 0, 100 "; $res = mysqli_query($bdd,$req); // selection $requete = "SELECT nomclient FROM facture2015"; $execution_requete = mysql_query($requete) or die("Erreur !"); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Recherche</title> <style> body{background-color: #1dcfd1; margin: 20px;} table { border-width:1px; border-style:solid; border-color:black; width:90%; border-collapse: collapse; } a{margin-left:80%;} td { border-width:1px; border-style:solid; border-color:black; width:10%; text-align: center; } th { border-width:1px; border-style:solid; border-color:black; width:5%; text-align: rand; } </style> </head> <body> <a href="consommation.php">Détails de consommation</a> <div class="gauche"> <!-- recherche par nom --> <form action ="cherche.php" method="post"> <span>Recherche par nom :</span> <input type="text" id="search" name="search"/> <input type="submit" value="Appliquer"> <input type="reset" value="Reset"> </form> <!-- recherche par Numero --> <form action ="cherche.php" method="post"> <span>recherche numero client :</span> <input type="text" id="numero" name="numero"/> <input type="submit" value="Appliquer"> <input type="reset" value="Reet"> </form> <!-- obtenir toute les informations d'un client --> Sélectionnez un client : <form name="form1" method="post" action="index.php"> <select name="liste1" onchange=" form1.submit();"> <option value=-1>-- Choisissez -- </option> <option>Lumelec</option><!-- il faut cette ligne pour avoir obliagtoirement un changement --> <option>client20</option> <?php while($total = mysql_fetch_array($execution_requete)) { //Liste déroulante client $selected = $liste1==$total['nomclient'] ? " selected = 'selected' " : ''; echo "<option value='".$total["nomclient"]."' $selected >".$total['nomclient']."</option>\n"; } ?> </select> </form> <?php //affichage du tableau apres filtre echo "<table>"; while ($data1 = mysqli_fetch_array($res1)) { echo "<tr> <td>".$data1['nomclient']."</td> <td>".$data1['Numero']."</td> <td>".$data1['Destination']."</td> <td>".$data1['value']."</td> <td>".$data['valeur']."</td> <td>".$data1['coutCDR']."</td> <td>".$data1['Type']."</td> <td>".$data1['mois']."</td> </tr>"; } echo "</table>"; if($liste1 != -1){ //si on a fait un choix // on va scanner tous les tuples un par un echo "<table>"; echo "<th><a id=\"orderby\" onclick=\"window.location.href = window.location.href + '?orderby=entreprise'\">entreprise</a></th> <th><a id=\"orderby\" onclick=\"window.location.href = window.location.href + '?orderby=Numero'\">Numero</a></th> <th><a id=\"orderby\" onclick=\"window.location.href = window.location.href + '?orderby=Destination'\">Destination</a></th> <th><a id=\"orderby\" onclick=\"window.location.href = window.location.href + '?orderby=value'\">value</a></th> <th><a id=\"orderby\" onclick=\"window.location.href = window.location.href + '?orderby=valeur'\">valeur</a></th> <th><a id=\"orderby\" onclick=\"window.location.href = window.location.href + '?orderby=coutCDR'\">coutCDR</a></th> <th><a id=\"orderby\" onclick=\"window.location.href = window.location.href + '?orderby=Type'\">Type</a></th> <th><a id=\"orderby\" onclick=\"window.location.href = window.location.href + '?orderby=mois'\">mois</a></th>" ; while ($data = mysqli_fetch_array($res)) {// on affiche les résultats echo "<tr> <td>".$data['nomclient']."</td> <td>".$data['Numero']."</td> <td>".$data['Destination']."</td> <td>".$data['value']."</td> <td>".$data['valeur']."</td> <td>".$data['coutCDR']."</td> <td>".$data['Type']."</td> <td>".$data['mois']."</td> </tr>"; } echo "</table>"; //or die('erreur affichage'); } ?> </div> <script type="text/javascript"> // execute la fonction quand je clic function myFunction() { document.getElementById("orderby").click(); // Clic } </script> </body> <html>
Cordialement,
Jordane
Amelie0528
Messages postés
51
Date d'inscription
dimanche 2 novembre 2014
Statut
Membre
Dernière intervention
22 février 2016
29 janv. 2016 à 16:09
29 janv. 2016 à 16:09
merci jordance c'est super propre votre code, merci beaucoup
par contre il retourne un message d'erreur qui un rapport avec ce qui expliquait Pitet, le pdo , mysqli
par contre il retourne un message d'erreur qui un rapport avec ce qui expliquait Pitet, le pdo , mysqli
Deprecated: mysql_real_escape_string(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\wamp\www\recherche\index.php on line 17
Amelie0528
Messages postés
51
Date d'inscription
dimanche 2 novembre 2014
Statut
Membre
Dernière intervention
22 février 2016
29 janv. 2016 à 16:14
29 janv. 2016 à 16:14
quand je remplace avec mysqli comme dit le message d'erreur , il m'affiche un deuxième message qui dit que la fonction a besoin de deux paramètre pour fonctionner .
dans la documentation je vois pas c'est quoi ce deuxième paramètre et en plus c'est écrit en anglais
dans la documentation je vois pas c'est quoi ce deuxième paramètre et en plus c'est écrit en anglais
jordane45
Messages postés
38139
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 avril 2024
4 649
29 janv. 2016 à 16:26
29 janv. 2016 à 16:26
Je n'utilise pas mysqli ... mais il me semble que le second paramêtre... c'est ton id de connexion à la bdd... donc : $bdd
Donc :
string mysqli_real_escape_string ( mysqli $link , string $escapestr )
Donc :
$escaped_liste1 = mysqli_real_escape_string($bdd,$liste1);
Amelie0528
Messages postés
51
Date d'inscription
dimanche 2 novembre 2014
Statut
Membre
Dernière intervention
22 février 2016
29 janv. 2016 à 16:27
29 janv. 2016 à 16:27
c'est bon jordane j'ai réussi a enlever le message d'erreur , j'ai changé en mysqli et le deuxième paramètre j'ai mis le paramètre de connexion a la bdd
Amelie0528
Messages postés
51
Date d'inscription
dimanche 2 novembre 2014
Statut
Membre
Dernière intervention
22 février 2016
>
jordane45
Messages postés
38139
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 avril 2024
Modifié par Amelie0528 le 29/01/2016 à 16:39
Modifié par Amelie0528 le 29/01/2016 à 16:39
oui voila ca fonctionne mtn
par contre les <th> de mon tableau n’appariassent pas après l'organisation du code
par contre les <th> de mon tableau n’appariassent pas après l'organisation du code
29 janv. 2016 à 15:21
oui effectivement j'ai enlevé l'espace mais ca change rien
Modifié par Pitet le 29/01/2016 à 15:29
Vérifie également si tu as des erreurs PHP (dans le fichier error.log de ton serveur web par exemple).
Dans l'idéal il faudrait également gérer les éventuelles erreurs sql, mais les deux points ci-dessus devrait nous permettre de trouver la cause du problème.
PS: je n'ai pas regardé ton code en détail mais tu utilises à la fois l'API Mysql (les fonctions mysql_*) et l'API Mysqli (les fonctions mysqli_*) ce qui n'est pas recommandé.
Préfère utiliser uniquement l'API Mysqli (où passer à PDO) mais l'API Mysql ne devrait plus être utilisée.
29 janv. 2016 à 15:30
oui dans le fichier log j'ai ca comme erreur:
29 janv. 2016 à 15:37
29 janv. 2016 à 15:55
En effet le paramètre passé est le retour de la fonction mysql_query, et cette dernière retourne FALSE dans le cas où la requête sql ne s'est pas exécuté correctement. Tu as donc une erreur dans la construction de ta requête sql.
Il faut donc gérer et afficher les messages des éventuelles erreurs sql avec la mysql_error (pour l'API Mysql) ou mysqli_error (pour l'API Mysqli) , par exemple :
Concernant les API de bdd, le passage vers PDO n'est pas obligatoire mais l'utilisation/le remplacement de l'API Mysql par l'API Mysqli est plus que recommandé :
https://www.php.net/manual/fr/mysqlinfo.api.choosing.php