Affiche array au lieu du titre
Zetomate
Messages postés
11
Statut
Membre
-
Darshu Messages postés 303 Statut Membre -
Darshu Messages postés 303 Statut Membre -
Bonjour tous le monde,
Ca fait 3 semaines que je développe une application de recherche en php pour mon travail, et aujourd'hui j'arrive presque a la fin.
J'ai juste un petit problème dans l'affichage de mon traitement.
En effet, mon affichage se fait sous forme de tableau mais les titres des colonnes sont appelé Array au lieu du titre exact.
Je précise que me titre de colonnes sont ecrit en fonction de cases à cocher.
Voici mon formulaire:
Et ma requête php:
Mon but étant de récupérer les mots: Mois, Année, Activités ...
Ca fait 3 semaines que je développe une application de recherche en php pour mon travail, et aujourd'hui j'arrive presque a la fin.
J'ai juste un petit problème dans l'affichage de mon traitement.
En effet, mon affichage se fait sous forme de tableau mais les titres des colonnes sont appelé Array au lieu du titre exact.
Je précise que me titre de colonnes sont ecrit en fonction de cases à cocher.
Voici mon formulaire:
<table width="100%" border="1" align="left" bordercolor="#000000"> <tr align="left"> <td width="10%"> <input type="checkbox" name="request[STDFMM]" value="1" />Mois </td> <td width="10%"> <input type="checkbox" name="request[STDFAA]" value="1" />Année </td> <td width="9%"> <input type="checkbox" name="request[STDEPO]" value="1" />Dépot</td> <td width="10%"> <input type="checkbox" name="request[STACTI]" value="1" />Activité</td> <td width="9%"> <input type="checkbox" name="request[STSERV]" value="1" />Services</td> <td width="11%"> <input type="checkbox" name="request[STCLIE]" value="1" />Num Client </td> <td width="10%"> <input type="checkbox" name="request[STCHAP]" value="1" />Chapitre</td> <td width="9%"> <input type="checkbox" name="request[STZLB1]" value="1" />Famille</td> <td width="10%"> <input type="checkbox" name="request[STNART]" value="1" />Code Art.</td> <td width="12%"> <input type="checkbox" name="request[STREPR]" value="1" />Représentant</td>
Et ma requête php:
foreach($_POST['request'] as $criterion => $value) {
echo "<td>";
echo $_POST['request'];
echo "</td>";
Mon but étant de récupérer les mots: Mois, Année, Activités ...
A voir également:
- Affiche array au lieu du titre
- Trouver un film sans le titre - Télécharger - Divers TV & Vidéo
- Voir un lieu en direct par satellite - Guide
- Trouver un lieu avec coordonnées gps - Guide
- Je cherche une chanson dont je ne connais pas le titre - Guide
- Appliquez à tous les paragraphes du document à télécharger, à l’exception des titres et des sous-titres, la mise en forme suivante : chaque paragraphe doit être espacé de 0,42 cm ou 12 pt du paragraphe qui suit les textes ne doivent pas être en retrait à droite et à gauche après ces modifications, sur quelle page se trouve le titre « la cheminée » dans le chapitre « informations diverses » ? - Guide
7 réponses
Salut. Si tu veux récupérer les mots, ne fais pas comme ça, mais essaie plutôt ceci :
et le code PHP sera comme ça :
table width="100%" border="1" align="left" bordercolor="#000000"> <tr align="left"> <td width="10%"> <input type="checkbox" name="request[]" value="Mois" />Mois </td> <td width="10%"> <input type="checkbox" name="request[]" value="Année" />Année </td> <td width="9%"> <input type="checkbox" name="request[]" value="Dépot" />Dépot</td> <td width="10%"> <input type="checkbox" name="request[]" value="Activité" />Activité</td> <td width="9%"> <input type="checkbox" name="request[]" value="Services" />Services</td> <td width="11%"> <input type="checkbox" name="request[]" value="Client" />Num Client </td> <td width="10%"> <input type="checkbox" name="request[]" value="Chapitre" />Chapitre</td> <td width="9%"> <input type="checkbox" name="request[]" value="Famille" />Famille</td> <td width="10%"> <input type="checkbox" name="request[]" value="Article" />Code Art.</td> <td width="12%"> <input type="checkbox" name="request[]" value="Représentant" />Représentant</td>
et le code PHP sera comme ça :
$tab_request = $_POST['request']; foreach ($tab_request as $request) echo "<TD>".$request."</TD>";
Ca ne marche pas car j'utilise mes valeurs de request avant.
Voila tous mon code:
Code php:
Voila tous mon code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Recherche statistique sur GUILLEMET MATERIAUX</title>
<style type="text/css">
<!--
.Style1 {
font-size: 14px;
font-style: italic;
font-family: Geneva, Arial, Helvetica, sans-serif;
}
-->
</style>
</head>
<?php
$dbc=mysql_connect('localhost','root',''); //connexion mysql
mysql_select_db('essais'); //selection de la base
php?>
<body>
<div><img src="LogoWeb.jpg" hspace="0" vspace="0" border="0" / ></div>
<div align="center">
<h1>Vous êtes sur la page de recherche de GUILLEMET MATERIAUX </h1>
</div>
<div align="center" class="Style1" >
La première ligne de ce tableau permet de sélectionner les champs que vous voulez faire apparaitre dans votre résultat.
La seconde ligne permet de choisir les diffférents critères de selection nécessaires à votre demande.<br />
ATTENTION !!!, ne pas oubliez pas de cocher les cases correspondantes à vos critères de recherche.
</div>
<BR /><BR />
<form method="post" action="req.php">
<table width="100%" border="1" align="left" bordercolor="#000000">
<tr align="left">
<td width="10%">
<input type="checkbox" name="request[STDFMM]" value="1" />Mois </td>
<td width="10%">
<input type="checkbox" name="request[STDFAA]" value="1" />Année </td>
<td width="9%">
<input type="checkbox" name="request[STDEPO]" value="1" />Dépot</td>
<td width="10%">
<input type="checkbox" name="request[STACTI]" value="1" />Activité</td>
<td width="9%">
<input type="checkbox" name="request[STSERV]" value="1" />Services</td>
<td width="11%">
<input type="checkbox" name="request[STCLIE]" value="1" />Num Client </td>
<td width="10%">
<input type="checkbox" name="request[STCHAP]" value="1" />Chapitre</td>
<td width="9%">
<input type="checkbox" name="request[STZLB1]" value="1" />Famille</td>
<td width="10%">
<input type="checkbox" name="request[STNART]" value="1" />Code Art.</td>
<td width="12%">
<input type="checkbox" name="request[STREPR]" value="1" />Représentant</td>
</tr>
<tr>
<td height="46">
<input type="checkbox" name="criteria[STDFMM]" value="1" />
<select name="keywords[STDFMM]" >
<option value='0'>Mois</option>
<?php
$res = mysql_query('select distinct STDFMM from statvene');
while ($stdfmm = mysql_fetch_row($res))
{
echo '<option value="'.$stdfmm[0].'">'.$stdfmm[0].' </option>';
}
?>
</select></td>
<td height="46">
<input type="checkbox" name="criteria[STDFAA]" value="1">
<select name="keywords[STDFAA]">
<option value='0'>Année</option>
<?php
$res = mysql_query('select distinct STDFAA from statvene');
while ($stdfaa = mysql_fetch_row($res))
{
echo '<option value="'.$stdfaa[0].'">'.$stdfaa[0].' </option>';
}
?>
</select></td>
<td>
<input type="checkbox" name="criteria[STDEPO]" value="1" />
<select name="keywords[STDEPO]">
<option value="0">--</option>
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
</select>
</td>
<td height="46">
<input type="checkbox" name="criteria[STACTI]" value="1" />
<select name="keywords[STACTI]">
<option value="0">Act</option>
<?php
$res = mysql_query('select distinct STACTI from statvene');
while ($stacti = mysql_fetch_row($res))
{
echo '<option value="'.$stacti[0].'">'.$stacti[0].' </option>';
}
?>
</select></td>
<td height="46">
<input type="checkbox" name="criteria[STSERV]" value="1" />
<select name="keywords[STSERV]">
<option value="0">--</option>
<?php
$res = mysql_query('select distinct STSERV from statvene');
while ($stserv = mysql_fetch_row($res))
{
echo '<option value="'.$stserv[0].'">'.$stserv[0].' </option>';
}
?>
</select></td>
<td>
<input type="checkbox" name="criteria[STCLIE]" value="1" />
<input type="text" name="keywords[STCLIE]" size="7" />
</td>
<td>
<input type="checkbox" name="criteria[STCHAP]" value="1" />
<input type="text" name="keywords[STCHAP]" size="7" />
</td>
<td>
<input type="checkbox" name="criteria[STZLB1]" value="1" />
<input type="text" name="keywords[STZLB1]" size="5" />
</td>
<td>
<input type="checkbox" name="criteria[STNART]" value="1" />
<input type="text" name="keywords[STNART]" size="7" />
</td>
<td>
<input type="checkbox" name="criteria[STREPR]" value="1" />
<input type="text" name="keywords[STREPR]" size="7" />
</td>
</tr>
</table>
<br><br><br><br><br>
<p>
<input type="checkbox" name="order" value="1" />
Classé par :
<select name="Ordby">
<option value="">---</option>
<option value="STDFAA">Année</option>
<option value="STDFMM">Mois</option>
<option value="STDEPO">Dépot</option>
<option value="STACTI">Activité</option>
<option value="STSERV">Services</option>
<option value="STCLIE">Client</option>
<option value="STCHAP">Chapitre</option>
<option value="STZLB1">Famille</option>
<option value="STNART">Code Article</option>
<option value="STREPR">Représentant</option>
</select>
</p>
<div align="center">
<input name="submit" type="submit" value="Envoyer la requête" />
</div>
</form>
</body>
</html>
Code php:
<?php
$dbc=mysql_connect('localhost','root',''); //connexion mysql
mysql_select_db('essais'); //selection de la base
$whereclause = "";
foreach($_POST['criteria'] as $criterion => $value) {
$whereclause .= mysql_escape_string($criterion)."='".mysql_escape_string($_POST['keywords'][$criterion])."' AND ";
}
$whereclause = rtrim($whereclause," AND ");
$select = "";
foreach($_POST['request'] as $criterion => $value) {
$select .= mysql_escape_string($criterion)." , ";
}
$select = rtrim($select," , ");
// Fonction du ORDER BY
if ( isset ( $_POST['order'] ))
{ $order = "ORDER BY ".$_POST['Ordby']."";
} else $order = "" ; // ceci pour indiquer que ce critère n'est pas à prendre en compte !
$sql = "SELECT DISTINCT $select FROM statvene WHERE $whereclause $order ";
$res = mysql_query($sql) or die ('Erreur SQL : impossible d\'effectuer la requête : <br />'.$sql);
$total = mysql_num_rows($res);
if ($total) {
echo "<div><img src=\"LogoWeb.jpg\"></div>";
echo $sql;
echo"<table width=\"100%\" border=\"1\" align=\"left\" bordercolor=\"#000000\">
<tr>";
foreach($_POST['request'] as $criterion => $value) {
echo "<td>";
echo $_POST['request'];
echo "</td>";
}
echo "</tr>";
while($row = mysql_fetch_row($res)) {
echo "
<tr>
<td>$row[0]</td>
<td>$row[1]</td>
<td>$row[2]</td>
<td>$row[3]</td>
<td>$row[4]</td>
<td>$row[5]</td>
<td>$row[6]</td>
<td>$row[7]</td>
<td>$row[8]</td>
<td>$row[9]</td>
</tr>";
}
}
echo "</table>";
?>
Je ne comprend pas pourquoi tu dis que ça ne marche pas. Pour la suite tu n'as pas besoin des valeurs de request ...
Si tu regarde bien mon code php, j'utilise les valeurs de mes request pour créer le SELECT de ma requête en fonction des cases que j'ai cochées dans mon formulaire. Donc quand je fait ta manip, ma requete se transforme en SELCET 1,2,3 au lieu de prendre mes valeurs de request.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ok je vois, mais tu voulais récupérer les valeurs "Mois" "Année" et c'est le seul moyen que je vois pour le faire : tu affectes ça comme valeur au checkbox et tu le récupères par la suite en $_POST['request'], qui est alors un tableau (et non pas une simple variable).
N'empêche qu'il y a des trucs louches dans ton code, comme ça :
Tu fais as $criterion et tu utilises juste après $_POST['request'] ! Ca n'a pas de sens :) Peut-être que ton erreur vient de la alors ...
N'empêche qu'il y a des trucs louches dans ton code, comme ça :
foreach($_POST['request'] as $criterion => $value) {
echo "<td>";
echo $_POST['request'];
echo "</td>";
}
Tu fais as $criterion et tu utilises juste après $_POST['request'] ! Ca n'a pas de sens :) Peut-être que ton erreur vient de la alors ...
Rectification, c'est même sur que c'est ça, car vu ton écriture $_POST['request'] est un tableau (comme je l'ai dit juste au dessus). Et donc, quand tu demandes l'affichage il te met tout simplement Array car tu ne spécifies pas ce que tu veux voir dans le tableau ... Bref, utilise $criterion et ça devrait marcher :)
Non je ne sais pas faire ça, mais pour ton affichage tu peux faire un str_replace juste pour le nom des colonnes.
Regardes sur https://www.php.net/str_replace pour voir comment l'utiliser, c'est assez pratique, surtout en passant par des tableaux.
Regardes sur https://www.php.net/str_replace pour voir comment l'utiliser, c'est assez pratique, surtout en passant par des tableaux.