Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: Sphinx_kiss le le 28-09-2010 a 14:15:10

Titre: Afficher les annonces de chaque region
Posté par: Sphinx_kiss le le 28-09-2010 a 14:15:10

Salut à tout le monde,

Je lance ce sujet afin de trouver un moyen d'afficher comme j'ai noté sur le sujet les annonces de chaque région.
En effet je suis entrain de creer un site d'annonce gratuit. Maintenant mon probleme est que quand je clique sur une region je vois les annonces de cette region et quand je clique sur une autre region j'ai toujours les memes resultats qui s'affiche ce qui n'est pas normal . Je voudrais que quand je clique sur une région que seule les annonces lui concernant apparaissent.
J'ai fait de tel sorte que les annonces soient inscrit selon des régions figurant dans ma base de donnée.

NB: J'ai crée ma base et ma table région.

Titre: Re:Afficher les annonces de chaque region
Posté par: Lilou1991 le le 29-09-2010 a 10:39:09

Il nous faudrait la requête sql qui fait ta recherche ainsi que la structure de ta base de donnée stp

Titre: Re:Afficher les annonces de chaque region
Posté par: Sphinx_kiss le le 29-09-2010 a 13:01:21

Bonjour, Merci d'avoir repondu.
ceci est ma requete SQL



Code:
$colname_Recordset4 = "-1";
if (isset($_SESSION['idregion'])) {
$colname_Recordset4 = (get_magic_quotes_gpc()) ? $_SESSION['idregion'] : addslashes($_SESSION['idregion']);
}
mysql_select_db($database_connexion, $connexion);
$query_Recordset4 = sprintf("SELECT region FROM an_regions WHERE idregion", $colname_Recordset4);
$Recordset4 = mysql_query($query_Recordset4, $connexion) or die(mysql_error());
$row_Recordset4 = mysql_fetch_assoc($Recordset4);
$totalRows_Recordset4 = mysql_num_rows($Recordset4);

$regionaffiche = $row_Recordset4['region'];

$maxRows_afficheannonce = 10;
$pageNum_afficheannonce = 0;
if (isset($_GET['pageNum_afficheannonce'])) {
$pageNum_afficheannonce = $_GET['pageNum_afficheannonce'];
}
$startRow_afficheannonce = $pageNum_afficheannonce * $maxRows_afficheannonce;

mysql_select_db($database_connexion, $connexion);
$query_afficheannonce = "SELECT * FROM `an_annonce`WHERE regions = '$regionaffiche' AND vala = 'y' And pause= 'n' ORDER BY `date` DESC";
$query_limit_afficheannonce = sprintf("%s LIMIT %d, %d", $query_afficheannonce, $startRow_afficheannonce, $maxRows_afficheannonce);
$afficheannonce = mysql_query($query_limit_afficheannonce, $connexion) or die(mysql_error());
$row_afficheannonce = mysql_fetch_assoc($afficheannonce);


CECI Ma structure de la base de donnée.

Code:

-- phpMyAdmin SQL Dump
-- version 3.2.0.1
-- http://www.phpmyadmin.net
--
-- Serveur: localhost
-- Généré le : Mer 29 Septembre 2010 à 08:55
-- Version du serveur: 5.1.36
-- Version de PHP: 5.3.0

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Base de données: `BDannonce`
--

-- --------------------------------------------------------

--
-- Structure de la table `an_annonce`
--

CREATE TABLE IF NOT EXISTS `an_annonce` (
`idannonce` smallint(11) NOT NULL AUTO_INCREMENT,
`sujet` varchar(100) COLLATE latin1_general_ci NOT NULL DEFAULT '',
`message` text COLLATE latin1_general_ci NOT NULL,
`idmembre` varchar(5) COLLATE latin1_general_ci NOT NULL DEFAULT '',
`pseudo` varchar(40) COLLATE latin1_general_ci NOT NULL DEFAULT '',
`nomcat` text COLLATE latin1_general_ci NOT NULL,
`nsouscat` text COLLATE latin1_general_ci NOT NULL,
`email` varchar(50) COLLATE latin1_general_ci NOT NULL DEFAULT '',
`date` varchar(15) COLLATE latin1_general_ci NOT NULL DEFAULT '',
`regions` varchar(30) COLLATE latin1_general_ci NOT NULL,
`photo1` varchar(50) COLLATE latin1_general_ci NOT NULL DEFAULT '',
`width1` varchar(10) COLLATE latin1_general_ci NOT NULL DEFAULT '',
`height1` varchar(10) COLLATE latin1_general_ci NOT NULL DEFAULT '',
`photo2` varchar(30) COLLATE latin1_general_ci NOT NULL DEFAULT '',
`width2` varchar(10) COLLATE latin1_general_ci NOT NULL DEFAULT '',
`height2` varchar(10) COLLATE latin1_general_ci NOT NULL DEFAULT '',
`si_photos` enum('y','n') COLLATE latin1_general_ci NOT NULL DEFAULT 'n',
`vala` enum('y','n') COLLATE latin1_general_ci NOT NULL DEFAULT 'y',
`pause` enum('y','n') COLLATE latin1_general_ci NOT NULL DEFAULT 'n',
`vu` varchar(12) COLLATE latin1_general_ci NOT NULL DEFAULT '0',
UNIQUE KEY `idannonce` (`idannonce`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=13 ;

-- Structure de la table `an_regions`
--

CREATE TABLE IF NOT EXISTS `an_regions` (
`idregion` int(20) NOT NULL AUTO_INCREMENT,
`region` varchar(40) COLLATE latin1_general_ci NOT NULL DEFAULT '',
`compteur` varchar(12) COLLATE latin1_general_ci NOT NULL,
PRIMARY KEY (`idregion`),
KEY `idregion` (`idregion`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=85 ;

--
-- Contenu de la table `an_regions`
--

INSERT INTO `an_regions` (`idregion`, `region`, `compteur`) VALUES
(1, 'Dakar', '9'),
(2, 'Thies', ''),
(3, 'Diourbel', '2'),
(4, 'Fatick', '1'),
(5, 'Kaolack', ''),
(6, 'Tambacounda', '1'),
(7, 'Kolda', ''),
(8, 'Louga', ''),
(9, 'Matam', ''),
(10, 'Saint-Louis', ''),
(11, 'Ziguinchor', ''),
(14, 'Sedhiou', ''),
(12, 'Kedougou', ''),
(13, 'Kaffrine', '');



Merci d'Avance

Titre: Re:Afficher les annonces de chaque region
Posté par: Sphinx_kiss le le 01-10-2010 a 16:50:03

Bonjour,

J'ai revu mes codes et aussi ma base de donnée.
En fait j'ai remarqué que MYSQL n'affiche que le 1er enregistrement de la table région c'est -a - Dire Dakar.
J'ai changé la valeur de région par DIOURBEL (2eme ligne) MYSQL affiche les annonces de la région de Diourbel parce que c'est le 1er enregistrement.

Si vous pouvez m'expliquer comment je peux arriver à faire une requête qui me permettrait de lire les annonces 1 à 1 c'est à dire ligne par ligne et que la requête prenne en compte la région cliquée.

Merci d'avance


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.