Problème SQL

Résolu
Utilisateur anonyme -  
Reivax962 Messages postés 3742 Statut Membre -
Salut, je souhaite insérer dans ma base un grand nombre de requêtes mais la syntaxe SQL me pose problème. Je voudrais donc pouvoir faire :

INSERT INTO MENU (id, titre, lien)
VALUES ('', 'La laponie', 'index.php?option=com_content&view=article&id=XXX')

où XXX est un nombre récupéré d'une requête de type :

SELECT id
FROM ARTICLE
WHERE titre = 'La Laponie'

J'ai essayé le transact sql et une requete du genre :

DECLARE @var int

@var = (SELECT id FROM Article WHERE titre = 'La laponie')

INSERT INTO MENU (id, titre, lien)
VALUES ('', 'La laponie', 'index.php?option=com_content&view=article&id=@var')

Ça ne marche pas et je ne sais pas si ça pourrait résoudre mon problème. C'est pourquoi je m'adresse à vous.
Excusez moi si mes exemples ne sont pas clairs ou vous semble illogique j'ai essayé de faire au plus simple :)

3 réponses

  1. Tung Messages postés 212 Statut Membre 8
     
    Bonjour frero
    Bon si je comprend bien tu as une table contenant des article(id , nom) et une table qui va récupérer pour chaque enregistrement id article et l'insérer au bout du lien
    1er Blm :

    INSERT INTO MENU (id, titre, lien)
    VALUES ('', 'La laponie', 'index.php?option=com_content&view=article&id=@var')

    Dans ta requete tu as 3 paramètre alors que t as inséré que les 2 dernier +++

    2 eme blm :

    erreur de syntaxe : faut ecrire :
    (@var,'La laponie', 'index.php?option=com_content&view=article&id='+cast(@var as varchar(10)))

    si tu veux creer automatiquement des lien pour tout les article utilise une procédure qui implémente un curseur

    a++
    0
  2. Utilisateur anonyme
     
    Ok je vais essayer ça merci.
    0
  3. Reivax962 Messages postés 3742 Statut Membre 1 011
     
    Bonjour,

    En t-SQL, il me semble que « @var = (SELECT id FROM Article WHERE titre = 'La laponie') » devrait plutôt être :

    SELECT @var = id FROM Article WHERE titre = 'La laponie'

    Xavier
    0