6700 lignes "Option inscrits" [Résolu]

Jefekoi 45 Messages postés mardi 19 mars 2002Date d'inscription 3 novembre 2015 Dernière intervention - 29 oct. 2015 à 13:58 - Dernière réponse : Jefekoi 45 Messages postés mardi 19 mars 2002Date d'inscription 3 novembre 2015 Dernière intervention
- 3 nov. 2015 à 17:27
Bonjour, Je suis Eric j'ai un site Wordpress que j'arrive à modifier que légèrement , j'ai une petite connaissance sur le SQL.

Ma question :

J'ai créé et j'en suis fière une table avec 6700 lignes , les lignes correspondent à des adresses d'entreprises en Alsace , il est bien sur possible qu'un jour ou l'autre j'en rajoute ou j'en supprime.

Pour accéder sur cette liste il faut s'inscrire.

Il y a possibilité d'envoyer des CV en "spontané" donc là ou je veux en venir c'est que je voudrais que soit affiché sur cette liste si l'inscrit à envoyer un CV ou pas. C'est un repère pour lui.

En SQL j'ai aucune idée comment je pourrais faire ça; j'imagine mal de mettre 6700 options par inscrit.

Auriez vous un exemple ou une idée

Merci à tous

Eric
Afficher la suite 

Votre réponse

11 réponses

cgandco 219 Messages postés mercredi 26 octobre 2011Date d'inscription 22 juin 2017 Dernière intervention - 29 oct. 2015 à 14:26
0
Utile
Bonjour,

Tu as une table avec tes entreprises, je suppose avec un champ unique IDEntreprise (ou un autre nom).

Tu as une table avec tes Utilisateur, je suppose aussi avec un champ unique IDUtilisateur (ou un autre nom).

dans ton cas un utilisateur peu avoir plusieurs entreprise (inscrit)
et donc une entreprise peu également avoir plusieurs utilisateurs inscrit.

Tu as donc une relation plusieurs à plusieurs.

tu dois créer une table qui est définie avec les deux id (idEntreprise,IDUtilisateur) et qui contiendra autant d'enregistrement qu'il n'y a de liaison entreprise - utilisateur.


Bonne journée


Commenter la réponse de cgandco
Jefekoi 45 Messages postés mardi 19 mars 2002Date d'inscription 3 novembre 2015 Dernière intervention - 29 oct. 2015 à 14:37
0
Utile
Merci pour cette réponse rapide Cgandco,

C'est assez clair, je comprends bien ce que tu veux dire, juste un petit truc à l'intérieur de cette nouvelle table (ID utilisateur) (ID entreprise) je dois créer 6700 colonnes ?
là j'ai du mal à suivre
Commenter la réponse de Jefekoi
cgandco 219 Messages postés mercredi 26 octobre 2011Date d'inscription 22 juin 2017 Dernière intervention - Modifié par cgandco le 29/10/2015 à 15:04
0
Utile
Non,

pas 6700 colonnes mais deux avec autant de ligne que d'inscription.

si tu as par exemple au début (état actuel) 10 entreprises E1, E2, .., E10

et 10 utilisateurs U1, U2, ..., U10.

et que par exemple uniquement U1,U2,U5 sont inscris à E1, E2, E10 ...

tu auras par exemple la table qui resemblera a cela :

U1,E1
U1,E10
U2,E5
U5,E3
U5,E10

si un utilisateur se déinscrit ou que tu supprime un utilisateur ou une entreprise il suffit de supprimer les liens qui les unis.

Faites simple, aussi simple que possible, mais pas simpliste.
A. Einstein.
Commenter la réponse de cgandco
Jefekoi 45 Messages postés mardi 19 mars 2002Date d'inscription 3 novembre 2015 Dernière intervention - 29 oct. 2015 à 15:17
0
Utile
Ok, donc à partir du moment ou l'inscrit va envoyer un CV il faut à partir de ce moment créer une nouvelle ligne avec (L'id de l'inscrit et l'id de l'entreprise)

Ex :
Toto à l'ID 1 il envoie un CV à Titi_Entreprise qui lui même à l'id 12, cela va donner :

1,12

Le lendemain Toto va envoyer un CV à l'id 40
1,40

Et si je regarde sur la table je vais avoir :
(1,12),
(1,40);

C'est ça ?
cgandco 219 Messages postés mercredi 26 octobre 2011Date d'inscription 22 juin 2017 Dernière intervention - 29 oct. 2015 à 15:20
oui c'est ça.
Jefekoi 45 Messages postés mardi 19 mars 2002Date d'inscription 3 novembre 2015 Dernière intervention - 29 oct. 2015 à 15:23
Alors un grand merci à toi de m'avoir aidé aussi rapidement ;)

Bonne fin de journée
cgandco 219 Messages postés mercredi 26 octobre 2011Date d'inscription 22 juin 2017 Dernière intervention > Jefekoi 45 Messages postés mardi 19 mars 2002Date d'inscription 3 novembre 2015 Dernière intervention - 30 oct. 2015 à 08:43
Bonjour,

Après une bonne nuit, j'ai une information en plus qui pourrait te servir,

dans cette table tu peux ajouter des champs qui seront des informations sur l'inscription.

par exemple un champ pour la date de cette inscription.

et dans ton formulaire plutot que de dire inscription oui/non, indiquer la date si il y a une inscription.


Bonne journée
Jefekoi 45 Messages postés mardi 19 mars 2002Date d'inscription 3 novembre 2015 Dernière intervention - 30 oct. 2015 à 10:14
Salut,

Ha il faut dormir la nuit ;)
j'y avait pensé aussi :) $date,$heure

Merci je suis en train de chercher la syntaxe qui vérifie si un enregistrement a déjà été fait ....
Commenter la réponse de Jefekoi
Jefekoi 45 Messages postés mardi 19 mars 2002Date d'inscription 3 novembre 2015 Dernière intervention - 30 oct. 2015 à 11:25
0
Utile
C'est bon à ton avis ce genre de recherche ?


$query = "SELECT `id_inscrit`,`id_entreprise` FROM `LVAM_cv_envoye` WHERE id_inscrit=$id_inscrit and id_entreprise=$id_entreprise";

if ($stmt = $mysqli->prepare($query)){

$stmt->bind_param("s", $id_inscrit);

if($stmt->execute()){
$stmt->store_result();

$id_inscrit= "";
$stmt->bind_result($id_inscrit);
$stmt->fetch();

if ($stmt->num_rows == 1){

echo "Déjà envoyé";
exit;

}
}
}
cgandco 219 Messages postés mercredi 26 octobre 2011Date d'inscription 22 juin 2017 Dernière intervention - 30 oct. 2015 à 15:32
Je ne connais pas php,

mais je ferais plutot cette requete ci

SELECT Entreprise.IDE, Entreprise.nom, Entreprise.adresse, filtre.LINKTABLE.SendDate
FROM Entreprise LEFT JOIN (SELECT Entreprise.IDE, LINKTABLE.SendDate
FROM LINKTABLE INNER JOIN Entreprise ON LINKTABLE.IDE = Entreprise.IDE
WHERE LINKTABLE.IDU=$id_inscrit
)  AS filtre ON Entreprise.IDE = filtre.IDE;


petite explication

table Entreprise
champs : ide,nom,adresse
table LINKTABLE (table de lien)
champs : ide,idu,SendDate
idu est l'id utilisateur

un premier select est

SELECT Entreprise.IDE, LINKTABLE.SendDate
FROM LINKTABLE INNER JOIN Entreprise ON LINKTABLE.IDE = Entreprise.IDE
WHERE LINKTABLE.IDU=$id_inscrit


qui me donne les entreprises qui ont des inscriptions avec la date d'envoi
pour l'utilisateur

ensuite je fais un left join entre la liste complete des entreprises et le select ici avant.
Ce qui me donne la liste complete des entreprises avec leur nom et adresse et si elle ont une inscription pour cet utilisateur la date d'envoi


Bonne journée
Jefekoi 45 Messages postés mardi 19 mars 2002Date d'inscription 3 novembre 2015 Dernière intervention - 3 nov. 2015 à 17:27
Merci pour ton aide précieuse cgandco ;)
Commenter la réponse de Jefekoi

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.