Petit problème PHP

Fermé
otherwise01 - 9 juil. 2009 à 11:35
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 9 juil. 2009 à 14:41
Bonjour,

J'ai un petit problème qui me prend pas mal la tête:

J'ai

$requete = "INSERT INTO `sss` (`id`, `locid`, `catsid`, `dates`, `enddates`, `times`, `endtimes`, `titel`, `alias`, `sendername`, `sendermail`, `deliverip`, `deliverdate`, `datdescription`, `datimage`, `checked_out`, `checked_out_time`, `registra`, `unregistra`, `published`) VALUES ('1', '1', '1', '2009-04-05', '0000-00-00', '00:00:00', '00:00:00', 'xxxxx', 'ken', 'xxxx', '88.139.202.22', '1210521851', '<p>\r\nEdition 2009 xxx \r\n</p>\r\n<p>\r\n<a href=\"http://www.xxxx/\">https://www.xxx.com/ \r\n</p>\r\n', 'visu_xxxx.jpg', '0', '0000-00-00 00:00:00', '1', '1', '-1');

INSERT INTO `sss` (`id`, `locid`, `catsid`, `dates`, `enddates`, `times`, `endtimes`, `titel`, `alias`, `sendername`, `sendermail`, `deliverip`, `deliverdate`, `datdescription`, `datimage`, `checked_out`, `checked_out_time`, `registra`, `unregistra`, `published`) VALUES ('2', '2', '2', '2008-06-15', '0000-00-00', '09:00:00', '00:00:00', 'Semi Canxxxo', 'madamegal', 'xxx@yahoo.fr', '62.147.184.222', '1210750925', 'http://www.xxx.com/<br />\r\n<br />\r\nY sera:<br />\r\nMadame Gxxxäl \r\n', '', '0', '0000-00-00 00:00:00', '1', '1', '-1');


INSERT INTO `sss` (`id`, `locid`, `catsid`, `dates`, `enddates`, `times`, `endtimes`, `titel`, `alias`, `sendername`, `sendermail`, `deliverip`, `deliverdate`, `datdescription`, `datimage`, `checked_out`, `checked_out_time`, `registra`, `unregistra`, `published`) VALUES ('3', '1', '5', '2008-09-14', '0000-00-00', '00:00:00', '00:00:00', 'La Parisienne', 'Tati', 'xxxx', '82.123.174.186', '1210752026', '', '', '0', '0000-00-00 00:00:00', '1', '1', '-1');

INSERT INTO `sss` (`id`, `locid`, `catsid`, `dates`, `enddates`, `times`, `endtimes`, `titel`, `alias`, `sendername`, `sendermail`, `deliverip`, `deliverdate`, `datdescription`, `datimage`, `checked_out`, `checked_out_time`, `registra`, `unregistra`, `published`) VALUES ('4', '3', '3', '2009-05-31', '0000-00-00', '00:00:00', '00:00:00', '20 kmsxxxes', 'Choupi', 'xxxx@hotmail.com', '158.169.131.14', '1210753045', 'Tour dxxxxous l\'arxxxndroit\r\n', '', '0', '0000-00-00 00:00:00', '1', '1', '-1');";


Je veux avoir au final:
$variable[0] = "('1', '1', '1', '2009-04-05', '0000-00-00', '00:00:00', '00:00:00', 'Marathon de Paris 2009', 'ken', 'xxx@yahoo.com', '88.139.202.22', '1210521851', '<p>\r\nEdition de Paris \r\n</p>\r\n<p>\r\n<a href=\"http://www.xxxcom/\">https://www.xxx.com/ \r\n</p>\r\n', 'visu_xxx.jpg', '0', '0000-00-00 00:00:00', '1', '1', '-1')";

$variable[1] = "('2', '2', '2', '2008-06-15', '0000-00-00', '09:00:00', '00:00:00', 'Semi Cancale - Saint Malo', 'madamegal', 'xxx@yahoo.fr', '62.147.184.222', '1210750925', 'http://www.xxx/<br />\r\n<br />\r\nY sera:<br />\r\nMadamexxx G&xxauml;l \r\n', '', '0', '0000-00-00 00:00:00', '1', '1', '-1')";

...

Je fais donc:


if (preg_match("!VALUES(.*);!Ui",$requete,$variable)) {
echo $variable[0];
echo $variable[1];
}


Mais j'obtiens:
$variable[0]= ('3', '1', '5', '2008-09-14', '0000-00-00', '00:00:00', '00:00:00', 'La Parisienne', 'Tati', 'xxxx', '82.123.174.186', '1210752026', '', '', '0', '0000-00-00 00:00:00', '1', '1', '-1')

et

$variable[1]= ('3', '1', '5', '2008-09-14', '0000-00-00', '00:00:00', '00:00:00', 'La Parisienne', 'Tati', 'xxxx', '82.123.174.186', '1210752026', '', '', '0', '0000-00-00 00:00:00', '1', '1', '-1')


Je ne comprends pas pourquoi...
J ai besoin d aide SVP !!
Merci beaucoup,

2 réponses

Déjà c 'est preg_match_all qu'il faut utiliser mais mon problème en fait c est surtout de rédiger laregex. Elle doit prendre tout ce qu se trouve entre VALUES et );

J attends votre aide - Merci
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
9 juil. 2009 à 14:41
si ton code est tel que ci dessus tu as déja un pb
tu as un ; a chaque fin de bloc de INSERT INTO donc ta variable $requette va se charger seulement avec le premier bloc
0