[RESOLU] Requête dans un tableau

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Requête dans un tableau

Re: Requête dans un tableau

par juliette » 24 oct. 2012, 23:49

cool, bonne continuation...
si tu peux, essaye d’utiliser les boutons bbcode, les codes seront en couleur et plus facile a lire et aussi met le post en résolu..
a plus...

Re: Requête dans un tableau

par kristoff » 24 oct. 2012, 23:42

Merci Juliette pour ton dernier post qui m'a mis sur la voie.

Le code pourrait être plus propre je pense, et refaire la requête sur chaque ligne peut ralentir en cas de grosse bdd, mais bon çà fonctionne !

J'ai inclus la requête dans la boucle do while de mon tableau !

<table width="450" border="0" align="center">
<?php do { ?>
<?php $colname_Compteur = $row_Rs_activites['nom'];
if (isset($row_Rs_activites['nom'])) {
$colname_Compteur = (get_magic_quotes_gpc()) ? $row_Rs_activites['nom'] : addslashes($row_Rs_activites['nom']);
}
mysql_select_db($database_dpi_test, $dpi_test);
$query_Compteur = sprintf("SELECT activite FROM page_comm WHERE activite='$colname_Compteur'");
$Compteur = mysql_query($query_Compteur, $dpi_test) or die(mysql_error());
$row_Compteur = mysql_fetch_assoc($Compteur);
$totalRows_Compteur = mysql_num_rows($Compteur); ?>
<form id="form4" name="form4" method="post" action="fiche_commerce.php?choix=<?php echo $row_Rs_activites['id'];?>">
<tr>
<td width="59"><img src="activites/<?php echo $row_Rs_activites['image']; ?>" width="40" height="40" /></td>
<td width="187"><div align="center"><span class="Style16"><?php echo $row_Rs_activites['nom']; ?></span></div></td>
<td width="190"><?php echo "(".$totalRows_Compteur.")" ?></td>
<td width="190"><input type="submit" name="Submit4" value="Plus d'infos" /></td>
</tr>
</form>
<?php } while ($row_Rs_activites = mysql_fetch_assoc($Rs_activites)); ?>
</table>

Merci encore de ton aide !!!

Re: Requête dans un tableau

par juliette » 24 oct. 2012, 23:00

si non tu fais un select et tu affiche dans un while et a chaque tour de la boucle, tu fais un requete qui compte le nombre de champs

Re: Requête dans un tableau

par kristoff » 24 oct. 2012, 22:54

Apparemment, c'est du côté des jointures que je dois chercher!

Je regarde çà et je tiens au courant

Merci

Re: Requête dans un tableau

par juliette » 24 oct. 2012, 22:50

a mon avis et c'est même sur, ça na marcheras pas car j'ai fait au pif mais un truc du genre devrais te mettre sur la vois
"SELECT
acs.activites AS activites,
acs.nom  AS nom,
ac.activite AS activite,
 COUNT( ac.activite ) AS nombre_d_activite
FROM activites acs
LEFT OUTER JOIN activite ac ON acs.activites = ac.activite
ORDER BY acs.nom";

Re: Requête dans un tableau

par kristoff » 24 oct. 2012, 22:35

Juliette,

Dans un même tableau html, je veux mettre le résultat d'une requete (qui provient de la table "activités") et effectivement le résultat d'une autre requête (qui compte dans la table "commerces" le nombre d'enregistrements selon l'activité)

Exemple : dans ma table "activités", j'ai Boulangerie, Boucherie, Restaurant...

Le tableau m'affiche bien dynamiquement la liste verticalement.

En face de chaque activité, je veux mettre le nombre de "commerces" dont l'activité correspond à cette ligne.

Ex:
Boulangerie (3)
Boucherie (2)
Restaurant (5)
....

Merci

Re: Requête dans un tableau

par juliette » 24 oct. 2012, 22:30

sommes nous bien d'accord: tu veux afficher des infos de 2 tables différentes dans un même tableau html ???

Re: Requête dans un tableau

par kristoff » 24 oct. 2012, 22:10

Ok Juliette,

Voici les codes de mes requêtes :

Requête 1 : m'affiche bien les 13 activités sur 13 lignes (j'utilise Dreamweaver et la Région Répétée)

mysql_select_db($database_dpi_test, $dpi_test);
$query_Rs_activites = "SELECT * FROM activites ORDER BY nom ASC";
$Rs_activites = mysql_query($query_Rs_activites, $dpi_test) or die(mysql_error());
$row_Rs_activites = mysql_fetch_assoc($Rs_activites);
$totalRows_Rs_activites = mysql_num_rows($Rs_activites);

Requête 2 : fonctionne mais que pour la première activité...

$colname_Compteur = $row_Rs_activites['nom'];
if (isset($row_Rs_activites['nom'])) {
$colname_Compteur = (get_magic_quotes_gpc()) ? $row_Rs_activites['nom'] : addslashes($row_Rs_activites['nom']);
}
mysql_select_db($database_dpi_test, $dpi_test);
$query_Compteur = sprintf("SELECT activite FROM page_comm WHERE activite='colname_Compteur'");
$Compteur = mysql_query($query_Compteur, $dpi_test) or die(mysql_error());
$row_Compteur = mysql_fetch_assoc($Compteur);
$totalRows_Compteur = mysql_num_rows($Compteur);

Enfin, le code du tableau dans lequel j'ai mes résultats affichés :

<table width="450" border="0" align="center">
<?php do { ?>
<form id="form4" name="form4" method="post" action="fiche_commerce.php?choix=<?php echo $row_Rs_activites['id'];?>">
<tr>
<td width="59"><img src="activites/<?php echo $row_Rs_activites['image']; ?>" width="40" height="40" /></td>
<td width="187"><div align="center"><span class="Style16"><?php echo $row_Rs_activites['nom']; ?></span></div></td>
<td width="190"><?php echo $totalRows_Compteur ?></td>
<td width="190"><input type="submit" name="Submit4" value="Plus d'infos" /></td>
</tr>
</form>
<?php } while ($row_Rs_activites = mysql_fetch_assoc($Rs_activites)); ?>
</table>

Merci d'avance, j'ai étudié un peu les jointures mais bon ...

Re: Requête dans un tableau

par juliette » 24 oct. 2012, 22:03

je suis pas trop sur d'avoir compris mais si c'est le cs alors je pense a une jointure...
peut tu faire voir ton code et même les tables ?

Requête dans un tableau

par kristoff » 24 oct. 2012, 21:51

Bonjour, je vais essayer d'expliquer clairement le problème que je rencontre!
J'ai une table mysql qui contient 13 activités (2 champs : nom, image)
J'ai une autre table mysql qui contient des commerces (plusieurs champs dont 'activite')
Je fais un tableau html qui m'affiche les activités (via une requete simple) sur 13 lignes, pas de pb.

Je voudrai afficher sur chaque ligne (résultat de la requete 1) le nombre d'enregistrements de la table "commerces" dont l' "activite" correspond à la ligne !

Ma requete 2 est du style : select * from commerces where activite=$row_requete2

Mon problème est que le premier résultat de la requete 2 s'affiche sur toutes les lignes ! La requete ne prend en compte que la première valeur d'activité.

Logiquement, c'est normal, mais je ne trouve pas l'astuce pour résoudre mon problème.

J'ai pensé à compter les enregistrements par activité, les mettre dans un tableau, et les rappeller, mais je bute...

Merci à celles et ceux qui voudront bien m'orienter!