Requête regexp erreur

Résolu/Fermé
malhek69 Messages postés 77 Date d'inscription mardi 6 décembre 2011 Statut Membre Dernière intervention 11 avril 2018 - Modifié par malhek69 le 11/03/2016 à 11:12
choukie12 Messages postés 55 Date d'inscription vendredi 11 mars 2016 Statut Membre Dernière intervention 27 juin 2018 - 16 mars 2016 à 10:45
Bonjour,
Et bonne journée à tous !

Petit soucis avec mon code il me fait une erreur à l'exécution.

Voici le code:
SELECT trunks.trunk_name, destinations.destination_name, (customers_prices.connection + (customers_prices.price * ".$dataline['billsec'].")) as calculHT ".
" FROM trunks ".
" JOIN customers_prices ON trunks.customer_id = customers_prices.customer_id".
" JOIN destinations ON customers_prices.destination_id = destinations.destination_id".
// " JOIN prefixes ON customers_prices.destination_id = prefixes.destination_id AND '".$dataline['dst']."' LIKE concat(prefixes.prefix,'%')".
" JOIN prefixes ON customers_prices.destination_id = prefixes.destination_id AND '".$dataline['dst']."' LIKE regexp concat'('^',prefix)'".
" WHERE '".$dataline['channel']."' LIKE concat('%', trunks.trunk_name, '%')";





Et voici l'erreur:

Erreur SQL !<br> SELECT trunks.trunk_name, destinations.destination_name, (customers_prices.connection + (customers_prices.price * 30)) as calculHT FROM trunks JOIN customers_prices ON trunks.customer_id = customers_prices.customer_id JOIN destinations ON customers_prices.destination_id = destinations.destination_id JOIN prefixes ON customers_prices.destination_id = prefixes.destination_id AND '003322xxxxxx' LIKE regexp concat'('^',prefix)' WHERE 'SIP/xx.xxx.xxx.xx-0003a229' LIKE concat('%', trunks.trunk_name, '%')<br>You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'regexp concat'('^',prefix)' WHERE 'SIP/xx.xxx.xxx.xx-0003a229' LIKE concat('%', ' at line 1solene@dev:~/test$ nano -c fact.php



Si jamais vous voyez ce que j'ai mal fait :D et du coup ce qu'il faudrait que je fasse.


Merci à tous !




Choisis un travail que tu aimes, et tu n'auras pas à travailler un seul jour de ta vie

1 réponse

choukie12 Messages postés 55 Date d'inscription vendredi 11 mars 2016 Statut Membre Dernière intervention 27 juin 2018 6
11 mars 2016 à 11:12
Hello,

je pense que c'est un problème de quote

LIKE regexp concat'('^',prefix)'"


Essaie ca

LIKE regexp concat('^',prefix)"

enlever la simple quote à l'exterieur de la parenthèse.

Jérémy.
0
malhek69 Messages postés 77 Date d'inscription mardi 6 décembre 2011 Statut Membre Dernière intervention 11 avril 2018 3
11 mars 2016 à 11:14
j'avais rajouté les quotes après mais ça me fait exactement la même erreur (décidément tu m'aides de partout ahah)
0
choukie12 Messages postés 55 Date d'inscription vendredi 11 mars 2016 Statut Membre Dernière intervention 27 juin 2018 6 > malhek69 Messages postés 77 Date d'inscription mardi 6 décembre 2011 Statut Membre Dernière intervention 11 avril 2018
11 mars 2016 à 11:42
Ah dommage.
Par contre prefix, ca sort d'où?
Il manquerait pas un prefixes. devant? Car prefix n'est défini nul part.

(on essaie :) )
0
malhek69 Messages postés 77 Date d'inscription mardi 6 décembre 2011 Statut Membre Dernière intervention 11 avril 2018 3
15 mars 2016 à 09:18
Hello et désolée pour la réponse tardive.
Alors très bonne question, d'où vient ce prefix... Modification faite ! mais toujours la même erreur malheureusement...

En farfouillant un peu son problème c'est que sur certaines données, j'ai le résultat SIP/adresseip-xxxxx et je lui dis qu'à la place d'adresse IP j'ai le nom d'un client qu'il peut trouver dans la table blablablabla sauf que du coup adresseip ben il existe pas dans la table client...
Quand ce genre de cas arrive, y a-t-il un moyen de lui dire du coup tu crées dans la table bla l'entité blabla et t'y mets les infos que je t'ai demandé??? Bon du coup on sort du regexp là...
0
choukie12 Messages postés 55 Date d'inscription vendredi 11 mars 2016 Statut Membre Dernière intervention 27 juin 2018 6 > malhek69 Messages postés 77 Date d'inscription mardi 6 décembre 2011 Statut Membre Dernière intervention 11 avril 2018
15 mars 2016 à 14:11
La tu rentres dans de l'instruction PL/ SQL.
Ce que tu voudrais c'est si l'adresse ip ne correspond à rien, alors tu forces la données c'est ca?

Tu as du code en quoi qui tourne derrière et appelle les requêtes?
0
malhek69 Messages postés 77 Date d'inscription mardi 6 décembre 2011 Statut Membre Dernière intervention 11 avril 2018 3
15 mars 2016 à 14:18
ah non j'ai vite abandonné le PL pour me mettre en php/sql.

C'est même plus compliqué que ça donc je vais pas abuser de ta gentillesse à ce point sinon on n'en sortirait pas ! donc restons sur la regexp. Pkoi ne fonctionne-t-elle toujours pas? on me dit toujours que c'est pas la bonne syntaxe et faut que j'aille lire le manuel ahah
0