8722 sujets

Développement web côté serveur, CMS

Bonjour,

Je ne savais pas trop comment nommer le sujet, voici mon problème :

J'ai :
une table "abonnes" avec les champs abonneID, email (abonneID étant un index)
une table "abonnements" avec les champs abonneID, liste (abonneID n'est pas un index et n'est pas unique et correspond à abonneID de la table "abonnes"

Ayant préalablement extrait un $email et une $liste et un $abonneID, je veux insérer dans "abonnements" les multiples valeurs ('abonneID','liste') telles que :
- abonneID répond à la requête : SELECT abonneID FROM abonnes WHERE email='$email' AND abonneID!='$abonneID'
- liste est égal à $liste

J'essaie de compiler cela en une seule requête mais en vain...

C'est un truc du genre :
INSERT INTO abonnements (abonneID, liste)
SELECT abonneID
FROM abonnes WHERE email='$email' AND abonneID!='abonneID' ...

mais comment insérer la valeur $liste ?

Merci de votre aide.
hypothèse: tu développes en php!?

Tu peux construire ta requête de cette façon :
$sql="INSERT INTO abonnements(abonneID, liste)".
" SELECT abonneID, '".$liste."' as liste FROM abonnes".
" WHERE email = '".$email."' AND abonneID !='".$abonneID."'";

Bonne journée
Je ne savais pas que l'on pouvait intégrer dans la requête SELECT un élément qui na pas rapport avec la table FROM.

Merci de la réponse. Je vais tester cela.
Tu peux intégrer au select les valeurs que tu veux : lorsque c'est une chaîne tu dois l'encadrée par des quôtes. J'ai associé un alias à la valeur (AS liste) mais ce n'est pas obligatoire.L'association avec les champs du insert se fait dans l'ordre ils sont écrit : la valeur du premier champ du insert va prendre la valeur du 1er champ du select etc...Bref l'alias dans ce cas c'est juste pour que la requête soit plus lisible ce qui est important pour la maintenance.

Bonne continuation