Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/05/2011, 16h45   #1
Membre du Club
 
Avatar de PIEPLU
 
Inscription : avril 2003
Messages : 299
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : avril 2003
Messages : 299
Points : 40
Points : 40
Envoyer un message via MSN à PIEPLU Envoyer un message via Skype™ à PIEPLU
Par défaut Comparer des valeurs

Bonjour, j'aimerais vous exposer mon problème.

Une table Liste avec dedans comme valeur
1
2
4

Ensuite, un formulaire contenant 4 cases à cocher ayant pour valeur
1
5
3
4

A la validation de ce formulaire, j'aimerais ressortir les différences.
C'est à dire montrer que la valeurs 3 et 5 ne sont pas dans la base de données et que la valeur 2 n'est pas dans le formulaire

Je n'ai pas trouvé de méthode pour faire ça, auriez vous une idée ?

Merci
__________________
Vincent Pieplu
Développeur Site Internet
PIEPLU est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2011, 16h50   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Code :
$sql = 'SELECT nombre FROM table WHERE nombre NOT IN (' implode(',' ,$_POST['nombre']) . ')';
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2011, 16h57   #3
Membre du Club
 
Avatar de PIEPLU
 
Inscription : avril 2003
Messages : 299
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : avril 2003
Messages : 299
Points : 40
Points : 40
Envoyer un message via MSN à PIEPLU Envoyer un message via Skype™ à PIEPLU
J'ai mis un affichage, et ca merdouille:

Citation:
SELECT idListesEntreprises FROM ListesEntreprises WHERE nombre NOT IN (' implode(',' ,Array) . ')
pour la ligne :

Code :
1
2
$idListe = $_POST['idListe'];
mysql_query("SELECT idListesEntreprises FROM ListesEntreprises WHERE nombre NOT IN (' implode(',' ,'".$idListe."') . ')");
__________________
Vincent Pieplu
Développeur Site Internet
PIEPLU est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2011, 17h05   #4
Membre du Club
 
Avatar de PIEPLU
 
Inscription : avril 2003
Messages : 299
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : avril 2003
Messages : 299
Points : 40
Points : 40
Envoyer un message via MSN à PIEPLU Envoyer un message via Skype™ à PIEPLU
Voici comment je vais faire :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$tab1=array(1,2,4);
$tab2=array(1,5,3,4);
echo "TAB1 = 1 ; 2 ; 4<br />";
echo "TAB2 = 1 ; 5 ; 3 ; 4<br /><br />";
foreach($tab1 as $valeur)
{
	if(in_array($valeur, $tab2, true)) echo $valeur.' trouvé<br />';
	else echo $valeur.' non trouvé<br />';
}
echo "<br /><br />";
foreach($tab2 as $valeur)
{
	if(in_array($valeur, $tab1, true)) echo $valeur.' trouvé<br />';
	else echo $valeur.' non trouvé<br />';
}
Merci
__________________
Vincent Pieplu
Développeur Site Internet
PIEPLU est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2011, 20h06   #5
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Code :
$sql = 'SELECT nombre FROM table WHERE nombre NOT IN ('  . implode(',' ,$_POST['nombre']) . ')';
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2011, 22h28   #6
Membre du Club
 
Avatar de PIEPLU
 
Inscription : avril 2003
Messages : 299
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : avril 2003
Messages : 299
Points : 40
Points : 40
Envoyer un message via MSN à PIEPLU Envoyer un message via Skype™ à PIEPLU
Je suis perdu dans mon développement premier :S je n'arrive pas à obtenir ce que je désire.

J'ai ce formulaire

Code :
1
2
3
4
5
<form action="creationListe.php?id=49972" method="POST">
<input type='checkbox' name='idListe[]' value='1' checked />&nbsp;liste1 - 1<br />
<input type='checkbox' name='idListe[]' value='3' />&nbsp;liste2 - 3<br />		
<input class='button' type='submit' name="creationListe" value=' ' style='background-image:url(images/general/bttn_valider.gif);width:70px;height:25px;border:0;cursor:pointer;vertical-align:middle;' />
</form>
Je voudrais que lorsque je valide ce formulaire, regarder dans la table "ListesEntreprises" si la valeur des checkbox, qui sont ici de 1 et de 3, sont connu dans la table.

Si les deux checkbox sont cochées et que les deux lignes sont dans la table, on ne fait rien. Si une des cases voir plusieurs sont décochées, il faut virer les lignes en question de la table.

C'est pas simple a expliquer, j'espère que vous m'avez compris.

Merci

Ensuite, il faut
__________________
Vincent Pieplu
Développeur Site Internet
PIEPLU est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2011, 23h01   #7
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Si c'est juste le nombre dont tu as besoin, tu peux même faire directement un COUNT
Code :
$sql = 'SELECT COUNT(*) FROM table WHERE nombre NOT IN ('  . implode(',' ,$_POST['nombre']) . ')';
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2011, 09h37   #8
Membre du Club
 
Avatar de PIEPLU
 
Inscription : avril 2003
Messages : 299
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : avril 2003
Messages : 299
Points : 40
Points : 40
Envoyer un message via MSN à PIEPLU Envoyer un message via Skype™ à PIEPLU
Et si je déselectionne la case à cocher, on obtient :
Citation:
SELECT idListe FROM ListesEntreprises WHERE idListe NOT IN ()
Warning: implode() [function.implode]: Invalid arguments passed
__________________
Vincent Pieplu
Développeur Site Internet
PIEPLU est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2011, 10h33   #9
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 449
Points : 3 449
Vérifie que $_POST['nombre'] existe bien et n'est pas un tableau vide avant d'utiliser implode( ).
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2011, 10h34   #10
Membre du Club
 
Avatar de PIEPLU
 
Inscription : avril 2003
Messages : 299
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : avril 2003
Messages : 299
Points : 40
Points : 40
Envoyer un message via MSN à PIEPLU Envoyer un message via Skype™ à PIEPLU
Oui, c'est vide car j'ai tout décoché.
Je tourne en rond, je comprend même plus ce que je fais :S
__________________
Vincent Pieplu
Développeur Site Internet
PIEPLU est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2011, 10h37   #11
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Quand il te dit de vérifier, il parle d'un if en PHP.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2011, 10h39   #12
Membre du Club
 
Avatar de PIEPLU
 
Inscription : avril 2003
Messages : 299
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : avril 2003
Messages : 299
Points : 40
Points : 40
Envoyer un message via MSN à PIEPLU Envoyer un message via Skype™ à PIEPLU
Oui, j'ai donc fait ça :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
if(isset($_POST['idListe']) && !empty($_POST['idListe'])) {
	$req = mysql_query("SELECT idListe FROM ListesEntreprises WHERE idListe NOT IN ("  . implode("," ,$_POST['idListe']) . ")");
	echo "SELECT idListe FROM ListesEntreprises WHERE idListe NOT IN ("  . implode(',' ,$_POST['idListe']) . ")<br />";
	for($i=0;$i<count($_POST['idListe']);$i++) {
		$req2 = mysql_query("SELECT idListe FROM ListesEntreprises WHERE idListe='".$_POST['idListe'][$i]."'");
		if(mysql_num_rows($req2)==0) {
			mysql_query("insert into ListesEntreprises (`idEntreprise`,`idListe`,`id_user`) values ('".$idEntreprise."','".$_POST['idListe'][$i]."','".$_SESSION['id_user']."')");
			echo "insert into ListesEntreprises (`idEntreprise`,`idListe`,`id_user`) values ('".$idEntreprise."','".$_POST['idListe'][$i]."','".$_SESSION['id_user']."')<br />";
		}
	}
}
Qu'en pensez-vous déjà ? Ca me permet d'insérer ceux qui ne sont pas dans la table. Par contre, je ne sais pas comment faire pour enlever de la base de données ceux qu'on aurait décocher.

Merci
__________________
Vincent Pieplu
Développeur Site Internet
PIEPLU est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2011, 10h43   #13
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 449
Points : 3 449
Citation:
Par contre, je ne sais pas comment faire pour enlever de la base de données ceux qu'on aurait décocher.
Il faut supprimer tous ceux qui pourraient être insérés et insérer ceux qui sont cochés.
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2011, 10h44   #14
Membre du Club
 
Avatar de PIEPLU
 
Inscription : avril 2003
Messages : 299
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : avril 2003
Messages : 299
Points : 40
Points : 40
Envoyer un message via MSN à PIEPLU Envoyer un message via Skype™ à PIEPLU
On supprime tout et on ré-insére en fait. J'y pensé mais ca me généré de nouveau id qui s'incrément dans ma table, pas grave peut être ?
__________________
Vincent Pieplu
Développeur Site Internet
PIEPLU est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2011, 11h30   #15
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 449
Points : 3 449
Citation:
Envoyé par PIEPLU Voir le message
On supprime tout et on ré-insére en fait. J'y pensé mais ca me généré de nouveau id qui s'incrément dans ma table, pas grave peut être ?
Si, et surtout ça me semble anormal. Je ne vois pas pourquoi des cases à cocher devraient être enregistrées dans une table avec un auto-incrément.
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2011, 21h52   #16
Membre du Club
 
Avatar de PIEPLU
 
Inscription : avril 2003
Messages : 299
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : avril 2003
Messages : 299
Points : 40
Points : 40
Envoyer un message via MSN à PIEPLU Envoyer un message via Skype™ à PIEPLU
Bah faut bien mettre des id en auto incrémenté dans une table. Les cases a cocher non pas d'autoincrément
__________________
Vincent Pieplu
Développeur Site Internet
PIEPLU est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2011, 22h24   #17
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 449
Points : 3 449
Citation:
Envoyé par PIEPLU Voir le message
Bah faut bien mettre des id en auto incrémenté dans une table
Non pas forcément
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h29.


 
 
 
 
Partenaires

Hébergement Web