Problème avec des conditions en PHP

WRInaute occasionnel
Bonjour,

Sur mon site, les membres peuvent enregistrer 10 sites, pour les faire connaître aux autres membres.
J'ai une page avec le récapitulatif des sites, si le membre a enregistré 10 sites, un message "Vous ne pouvez plus mettre de site." apparait, et si il a mit moins de dix sites, un champ pour ajouter un site ainsi qu'un bouton "Ajouter le site" apparait. Ce bouton redirige le membre sur la page ajouter-site.php qui comporte le code suivant :

Code:
<?php 
require('../prepend.inc.php');
$a = $_SERVER['HTTP_REFERER'];
$nnbsite = $_POST['nbsite'] + 1;
if ($nnbsite = 1) {
   $sql =mysql_query("UPDATE demo_a_accounts SET url='".$_POST['site']."' WHERE id='".$_POST['idmembre']."'");
}
if ($nnbsite = 2) {
   $sql =mysql_query("UPDATE demo_a_accounts SET url1='".$_POST['site']."' WHERE id='".$_POST['idmembre']."'");
}
if ($nnbsite = 3) {
   $sql =mysql_query("UPDATE demo_a_accounts SET url2='".$_POST['site']."' WHERE id='".$_POST['idmembre']."'");
}
if ($nnbsite = 4) {
   $sql =mysql_query("UPDATE demo_a_accounts SET url3='".$_POST['site']."' WHERE id='".$_POST['idmembre']."'");
}
if ($nnbsite = 5) {
   $sql =mysql_query("UPDATE demo_a_accounts SET url4='".$_POST['site']."' WHERE id='".$_POST['idmembre']."'");
}
if ($nnbsite = 6) {
   $sql =mysql_query("UPDATE demo_a_accounts SET url5='".$_POST['site']."' WHERE id='".$_POST['idmembre']."'");
}
if ($nnbsite = 7) {
   $sql =mysql_query("UPDATE demo_a_accounts SET url6='".$_POST['site']."' WHERE id='".$_POST['idmembre']."'");
}
if ($nnbsite = 8) {
   $sql =mysql_query("UPDATE demo_a_accounts SET url7='".$_POST['site']."' WHERE id='".$_POST['idmembre']."'");
}
if ($nnbsite = 9) {
   $sql =mysql_query("UPDATE demo_a_accounts SET url8='".$_POST['site']."' WHERE id='".$_POST['idmembre']."'");
}
if ($nnbsite = 10) {
   $sql =mysql_query("UPDATE demo_a_accounts SET url9='".$_POST['site']."' WHERE id='".$_POST['idmembre']."'");
}
$sdm =mysql_query("UPDATE demo_a_accounts SET nbsite='$nnbsite' WHERE id='".$_POST['idmembre']."'");
header("Location: $a");
?>

Où :
$a représente la page récapitulatif des sites
$nbsite représente le nombre de site qu'a le membre
$nnbsite représente le numéro du site à ajouter. Par exemple, si le membre a 5 sites, $nnbsite sera égal à 6.
idmembre est le numéro du membre
site est le site à ajouter

Donc je voudrai que si le membre a :

0 site, il ajoute donc le 1ier site, dans url
1 site, il ajoute donc le 2ème site dans url1 et ainsi de suite.

La requête $sdm sert à mettre dans la base de donnée le nombre de sites du membre.

J'ai 2 problème :
-Le site s'enregistre toujours dans "url"
-Dès que j'ajoute un site, $nbsite passe tout de suite à 10...

Pourriez-vous m'aider?
Merci.
 
WRInaute discret
déjà pour des conditions il faut des "==", le "=" sert pour l'affectation d'une valeur.

en gros quand tu fais ca:
Code:
if ($nnbsite = 1)

$nnbsite prend la valeur 1.
 
WRInaute accro
tu as la fonction "switch()" pour ce genre de "if" imbriqués
-http://be.php.net/switch
 
WRInaute discret
Ou même, plus facila à relire :

$nnbsite= intval($nnbsite);
if ($nnbsite >= 1 && $nnbsite <= 10) {
$sql =mysql_query("UPDATE demo_a_accounts SET url$nnbsite='".$_POST['site']."' WHERE id='".$_POST['idmembre']."'");
}

plutot que 10 copier coller de presque la même requête...
 
WRInaute occasionnel
Je te conseille egalement la proposition de FlorentP.

C'est plus court et plus pratique qu'un switch ou que des if.

En plus si tu dois changer le code, cela sera encore plus rapide.
 
Discussions similaires
Haut