2013-06-06 3 views
3

J'ai besoin d'une instruction INSERT étendue (avec WHERE) pour obtenir mon résultat dans TYPO3. La méthode standard pour INSERT avec TYPO3 est la suivante:TYPO3 - MySQL - Combiner un INSERT avec SELECT

$ res_ext = $ GLOBALS ['TYPO3_DB'] -> exec_INSERTquery ($ ext_table, $ feUserRecord);

  • $ ext_table = 'nouvelles';

    $ feUserRecord = array ( 'tx_extendnews_subscriber' => $ userid_fe );

  • tx_extendnews_subscribe est la colonne avec la valeur $ userid_fe

maintenant je besoin d'un INSERT avec une instruction WHERE ... est-il un moyen TYPO3 ou est-ce que la syntaxe MySQL possible?

i besoin de cette instruction WHERE: SELECT * FROM nouvelles Où uid = post_uid

  • $ userid_fe = 704
  • post_uid = 101

INSERT - SELECT Link from MySQL

i essayer avec la norme MySQL mais ça ne marche pas pour moi

$resulting_post_id = "SELECT * FROM news WHERE uid = 101"; 
$res_ext="INSERT INTO news (tx_extendnews_subscriber) VALUES ('704'($resulting_post_id))"; 
+0

Jim, pouvez-vous décrire en mots (pas dans le code) ce que vous en train d'essayer d'atteindre? Il se peut que vous n'ayez pas besoin de 'INSERT ... SELECT'. – tmt

+0

INSERT et SELECT sont nécessaires à cause de mon extension Tyop3 et de l'administration backend. J'ai 10 nouvelles et des utilisateurs qui peuvent s'abonner à une nouvelle. Si un utilisateur s'abonne à une news son identifiant sera sauvegardé dans la colonne tx _... où uid = 4 par exemple ... la colonne a maintenant une liste séparée par des virgules des identifiants avec les utilisateurs qui ont souscrit à l'actualité – Jim

+0

@cascaval vous avez raison :) Je l'ai essayé maintenant avec une troisième table M: ​​N afin que je puisse utiliser la méthode standard avec INSERT, enregistrer des virgules séparés dans une colonne était un mauvais moyen – Jim

Répondre

4

Vous pouvez achive votre objectif avec la fonction sql_query très simple:

$GLOBALS['TYPO3_DB']->sql_query("INSERT INTO news (tx_extendnews_subscriber) 
VALUES ('704') WHERE uid = 101");