[RESOLU] Ajout value SQL avec Multi-choix

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Ajout value SQL avec Multi-choix

Re: Ajout value SQL avec Multi-choix

par moogli » 17 avr. 2013, 19:17

- Ta question n'est pas claire
- Tu révèle un problème de modélisation qui une fois de plus te pose des problèmes.

Le R de SGBDR c'est pour relationel, c'est pour cela que je t'ai indiqué d'ajouter une table au départ.

ce n'est pas une erreur d'ajouter une table, c'est est une de tous mettre dans une table avec des concaténations de champs d'autres tables.

Bien modélisé ce que tu cherche est simple.
dans ce cas tu aurais une table qui fait la liaison entre la table 1 et la table des pays et une relation entre la table pays et la table 2 (a priori pas besoin de table, mais ça dépende de ce que tu veux).

ensuite des select peuvent te fournir les infos que tu souhaite.


@+

Re: Ajout value SQL avec Multi-choix

par gdc » 17 avr. 2013, 08:16

Ok tout fonctionne bien merci moogli,

Maintenant le probleme:

Exemple dans ma table_1 jai le champ pays qui contien 1,3,5,8 j'aimerai etre capable de recuperer un a un les chiffre et verifier dans la table_2 si il y a un champ pays_accepter = 3 seulement et si il y a un autre champ pays_accepter = 8

je crois avec le explode mais le probleme c qui lis seulement le dernier chiffre dans le champ table_1

cela sort le dernier chiffre.
$res = explode(',', $lsp);
foreach($res as $tes);
echo ''.$tes.'';
cela sort tout les chiffre mais avec une virgule entre chaque:
$res = explode('@,@', $lsp);
foreach($res as $tes);
echo ''.$tes.'';
moi j'aimerai verifier dans le champs si un des chiffre de la table_1 = valeur simple du champ table_2


Merci de votre aide.

Re: Ajout value SQL avec Multi-choix

par moogli » 12 avr. 2013, 09:25

c'est pas clair ta question :)

qu'entend tu par "autorisé" ?
savoir si le pays est bien présent dans la base ?
si oui un select effectievment.

maintenant en respectant la table que je t'ai fournit tu n'a pas ce problème le sgbd te fournira une erreur sur la contrainte de clef étrangère non respecté.


@+

Re: Ajout value SQL avec Multi-choix

par gdc » 11 avr. 2013, 23:48

maintenant comment faire pour recuperer une valeur dans les choix indiquer

exemple: table contient 1,3,5

je veux savoir si le champs est autoriser avec le pays 3

en fesant un select match ???

Re: Ajout value SQL avec Multi-choix

par gdc » 11 avr. 2013, 23:44

salut, merci ....

J'ai reussis avec la function implode(',', $_POST['pays']) et en nomant le non du select en pays[] allors cela ajoute les choix choisi,


Merci ....

Re: Ajout value SQL avec Multi-choix

par moogli » 11 avr. 2013, 23:16

salut,


c'est une mauvaise idée, il faut modéliser correctement la base et donc, dans ton cas, cela passe par un table permettant le jointure entre "utilisateurs" et "pays".

par exemple
create table userPays (
idpays int not null,
idUser int not null,
primary key(idpays,idUser)
)

tu boucle sur le tableau fournit par le fomulaire pour insérer autant de ligne dans la table de choix.

bien sur le nom du champs doit être conforme a la notation tableau (par exemple name="pays[]").

@+

Ajout value SQL avec Multi-choix

par gdc » 11 avr. 2013, 23:10

salut, j'ai un formulaire avec une liste multichoix,

Quand le membre selectionne exemple 3 pays dans la liste j'aimerai que dans ma SQL dans le champ pays ca ajoute les 3 choix choisi.

Voila mon petit code:
Function liste des pays
function list_pays(){
$ls_pays = mysql_query("SELECT * FROM site_conf_pays");
$src_cntrys = array();
	while ($datap = mysql_fetch_array($ls_pays)) {
	echo  "<option ";
	if (in_array($datap['id_pays'], $src_cntrys) ) echo " selected "; 
	echo " value={$datap['id_pays']}>{$datap['pays']}</option>";

	}
}

Le code requete ADD SQL:
function add_camp_clic($img, $lien, $timer, $gain_echo, $nom, $pays) {
global $dateonly;
$numcreer = alea(25);

$selec = mysql_query("SELECT id_pub FROM ann_clic_incentive WHERE id_pub = '$numcreer'");
	if (mysql_num_rows($selec) == 0){
$query = mysql_query("INSERT INTO ann_clic_incentive(id_pub,annonceur,nom_url,image_url,lien_url,pays_cible,timer,active,gain_edit,date_add) VALUES('$numcreer','".$_SESSION['ann']."','$nom','$img','$lien','$pays','$timer','0','$gain_echo','$dateonly')");
	}
	else { echo "ID_PUB Existe";}
}

tout functionne bien sauf que ca ne mets pas les choix du membre dans la sql sauf que ca met le dernier choisi... il y a til moyen de faire metre dans le champ pays_cible le pays 1, 2, 3, 8, 11.

Merci de votre aide ,