Je suis en train de codé mon site, mais un problème apparaît lorsque j'arrive à une partie où je ne vois pas du tout comment m'y prendre...
je vous explique le problème:
j'ai deux tables: pts_campagnes et pts_precisions
-- phpMyAdmin SQL Dump
-- version 3.2.4
-- http://www.phpmyadmin.net
--
-- Serveur: localhost
-- Généré le : Jeu 08 Juillet 2010 à 18:35
-- Version du serveur: 5.1.41
-- Version de PHP: 5.3.1
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Base de données: `bigpts_site`
--
-- --------------------------------------------------------
--
-- Structure de la table `pts_campagnes`
--
CREATE TABLE IF NOT EXISTS `pts_campagnes` (
`campagnes_id` int(11) NOT NULL AUTO_INCREMENT,
`campagnes_pseudo` varchar(25) NOT NULL,
`campagnes_nom` varchar(255) NOT NULL,
`campagnes_ban` int(11) NOT NULL,
`campagnes_remuneration` double NOT NULL,
`campagnes_restant` int(11) NOT NULL,
`campagnes_consignes` text NOT NULL,
PRIMARY KEY (`campagnes_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Contenu de la table `pts_campagnes`
--
INSERT INTO `pts_campagnes` (`campagnes_id`, `campagnes_pseudo`, `campagnes_nom`, `campagnes_ban`, `campagnes_remuneration`, `campagnes_restant`, `campagnes_consignes`) VALUES
(1, 'michel', 'coin pusher', 1, 1, 1, 'blablablabla'),
(2, 'barry white', 'aimme voyance', 2, 2, 10, 'ploploploploplpoploploploplop');
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
-- phpMyAdmin SQL Dump
-- version 3.2.4
-- http://www.phpmyadmin.net
--
-- Serveur: localhost
-- Généré le : Jeu 08 Juillet 2010 à 18:35
-- Version du serveur: 5.1.41
-- Version de PHP: 5.3.1
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Base de données: `bigpts_site`
--
-- --------------------------------------------------------
--
-- Structure de la table `pts_precisions`
--
CREATE TABLE IF NOT EXISTS `pts_precisions` (
`precisions_id` int(11) NOT NULL AUTO_INCREMENT,
`id_campagne` int(11) NOT NULL,
`precisions_pseudo` varchar(25) NOT NULL,
`precisions_precisions` text NOT NULL,
`precisions_etat` varchar(20) NOT NULL,
`precisions_hide` tinyint(4) NOT NULL,
PRIMARY KEY (`precisions_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
--
-- Contenu de la table `pts_precisions`
--
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
J'ai une page qui s'appelle signup.phppour accéder à cette page, il faut être connecté.
quand le membre arrive sur cette page, la table pts_campagnes doit se vider dans le contenu d'une boucle.
jusque là c'est simple. le problème qui se pose, est que le membre ne doit pas voir toutes les entrées de la table pts_campagnes:
il ne doit voir que celles où il n'a pas posté de précision, et celles où il posté une précision, mais que le champs precision_hide est egal à 0.
les deux tables pts_campagnes et pts_precision sont liées par les champs campagnes_id et id_camagne.
Est-ce que vous pourriez me mettre sur la voie pour coder ce script ? une idée, ou manière de faire etc...
Merci d'avance,
J'avais préalablement essyé de coder la page, mais elle ne répondait pas à mes attentes.
<?php
session_start();
require_once('includes/fonctions.php');
if (!isset($_SESSION['pseudo'])) /* le membre doit être connecté */
{
echo 'Vous devez être connecté';
exit();
}
if (isset($_POST['message'])) /* s'il y a un envoie on enregistre */
{
sql_connect();
$message = mysql_real_escape_string(htmlentities($_POST['message'])); // neutralisation de lenvoie
$id_campagne = mysql_real_escape_string(htmlentities($_POST['id_campagne']));// neutralisation de lenvoie
mysql_query('INSERT INTO pts_precisions VALUES("", "'.$id_campagne.'", "'.$_SESSION['pseudo'].'", "'.$message.'", "en attente", 1)') or die (mysql_error()); //enregistrement
$nb_restant = mysql_result(mysql_query('SELECT campagnes_restant FROM pts_campagnes WHERE id = "'.$id_campagne.'"'), 0) or die (mysql_error());
$nb_restant = $nb_restant - 1;
mysql_query('UPDATE pts_campagnes SET campagnes_restant = '.$nb_restant.' WHERE id = "'.$id_campagne.'"') or die (mysql_error());// mise a jour du nb d'inscription restantes
header('location: signup.php');
sql_close();
}
require_once('includes/header.php'); // on affiche la page
?>
<div class="content">
<?php
require_once ('includes/menu.php');
?>
<div class="content1">
<?php
sql_connect();
$reponse_campagnes = mysql_query('SELECT *
FROM pts_campagnes
LEFT JOIN pts_precisions
ON campagnes_id = id_campagne
WHERE precisions_hide != 1') or die (mysql_error()); // on récupère toutes les campagnes
while ($campagnes = mysql_fetch_array($reponse_campagnes)) // on les affiche
{
?>
<div class="campagnes">
<table>
<tr>
<td width="50%" align="left">
<?php echo $campagnes['campagnes_id'].' / '.$campagnes['campagnes_nom']; ?>
</td>
<td width="50%" align="right">
<?php echo 'rémunération: '.$campagnes['campagnes_remuneration'] .'€'; ?>
</td>
</tr>
<tr>
<td>
</td>
<td align="right">
<?php echo 'inscriptions restantes: '.$campagnes['campagnes_restant']; ?>
</td>
</tr>
</table>
<p style="text-align: center;"><img src="images/ban/<?php echo $campagnes['campagnes_ban']; ?>.png" alt="ban" /></p>
<p>Consignes de l'annonceur: <?php echo $campagnes['campagnes_consignes']; ?></p>
<form method="post" action="signup.php">
<p>
Précision: <br /><textarea name="message" rows="7" cols="80"></textarea>
<input type="hidden" name="id_campagne" value="<?php echo $campagnes['campagnes_id']; ?>" />
</p>
<p><input type="submit" value="Soumettre !" /></p>
</form>
<hr />
</div>
<?php
}
sql_close();
?>
</div>
</div>
<?php
require_once ('includes/footer.php');
?>
ps: j'ai déjà codé l'espace membre.merci !