SELECT WHERE LIKE

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : SELECT WHERE LIKE

par BFH » 15 juin 2005, 11:59

Merci, je t'aime tout plein Ripat :love4: :D

par Ripat » 15 juin 2005, 11:53

Comme suggéré par Cyrano, essaye les regex de MySQL.
$RHost = "Syndicat EAU";
$motif = '^'.addslashes($RHost).'[^ ]*$';
$query = "SELECT * FROM report WHERE RHost REGEXP '$motif'";
Il ne prendra que les $RHost suivit de n'importe quel caractère sauf l'espace. On peut affiner si nécessaire.

J'ai mis un SELECT pour tes essais à blanc mais ça marchera aussi avec le DELETE bien sûr.

par Guakamol » 15 juin 2005, 11:50

Apparemment tes nom de rapports ont l'air tres formté, si tu peux avoir la garantie que ca restera ainsi, utilise effectivement les expression reguliere comme te l'a conseillé Cyrano

En gros, un expression reguliere permet d'exprimer la structure d'une chaine de caractere grâce a un ensemble de caractere spéciaux, regarde attentivement le site fourni et fait des essais tu devrait pouvoir t'en sortir.

par pjl » 15 juin 2005, 11:43

A première vue, ton code me parrait bien dangereux pour un delete.
Si $RHost = "S", ca va te supprimer tous les lieux commencants par un S.

par BFH » 15 juin 2005, 11:36

Je comprends pas comment on utilise ces fonctions, c'est pas fautes d'avoir regardé! :oops:

par Cyrano » 15 juin 2005, 11:21

Utilise les fonctions REGEXP de MySQL

SELECT WHERE LIKE

par BFH » 15 juin 2005, 11:18

Bonjour,
j'effectue une suppression dans une base de données. Voici un bout du code :
$query="DELETE FROM report WHERE RHost LIKE '".addslashes($RHost)."%'";//supprime tout les rapports choisit
mysql_query($query)or die(mysql_error());
$RHost contient des nom de lieu, donc si la valeur du champs RHost est similaire à $RHost le rapport est supprimé!

Mon problème:
Supprimer le lieu Syndicat EAU supprimera les rapports
Syndicat EAU,
Syndicat EAU_accueil
Syndicat EAU_entrée Ce qui est bien !

Hors ça va aussi supprimer les rapports:
Syndicat EAU EST_accueil
Syndicat EAU NORD_serveur
Cependant ces rapport ne correspondent pas aux même lieux!

Comment faire pour que le % de ($RHost)."%" soit différent d'un espace??