Problème avec des conditions en PHP

gcvoiron
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 494
Inscription: 19 Oct 2005

Problème avec des conditions en PHP

Message le Ven Juin 30, 2006 15:51

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: Tout sélectionner
<?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.

radiotrance
WRInaute discret
WRInaute discret
 
Messages: 157
Inscription: 10 Juil 2005

Message le Ven Juin 30, 2006 16:01

déjà pour des conditions il faut des "==", le "=" sert pour l'affectation d'une valeur.

en gros quand tu fais ca:
Code: Tout sélectionner
if ($nnbsite = 1)


$nnbsite prend la valeur 1.

gcvoiron
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 494
Inscription: 19 Oct 2005

Message le Ven Juin 30, 2006 16:03

Ok, merci pour cettre précision.

gcvoiron
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 494
Inscription: 19 Oct 2005

Message le Ven Juin 30, 2006 16:11

Et ben c'est bon, sa marche parfaitement!
Merci radiotrance!


spout
WRInaute accro
WRInaute accro
 
Messages: 4382
Inscription: 14 Mai 2003

Message le Ven Juin 30, 2006 16:23

tu as la fonction "switch()" pour ce genre de "if" imbriqués
-http://be.php.net/switch

radiotrance
WRInaute discret
WRInaute discret
 
Messages: 157
Inscription: 10 Juil 2005

Message le Ven Juin 30, 2006 16:49

spout a écrit:tu as la fonction "switch()" pour ce genre de "if" imbriqués
-http://be.php.net/switch


+1 ca sera beaucoup mieux :)

FlorentP
WRInaute discret
WRInaute discret
 
Messages: 145
Inscription: 25 Juin 2005

Message le Ven Juin 30, 2006 16:55

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...


karak
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 355
Inscription: 6 Aoû 2005

Message le Ven Juin 30, 2006 19:19

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.

radiotrance
WRInaute discret
WRInaute discret
 
Messages: 157
Inscription: 10 Juil 2005

Message le Sam Juil 01, 2006 11:12

+1 j'avais pas regardé son code en details, c'est clair que ca serai beaucoup mieux.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités