inverse de concat?

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 : inverse de concat?

par Invité » 22 janv. 2007, 10:30

merci pour la reponse, je vais tester ca ..

merci encore.

par zeus » 22 janv. 2007, 09:04

Comme le montre trés bien Ajoloca, dans une base de données, la place utilisée n'est pas le critère de choix.

Non seulement l'espace utilisé par une table suplémentaire serait infime par rapport à ta méthode, mais les traitements sur cette table serait beaucoup plus performant. cf exemple d'Ajoloca

par Ajoloca » 22 janv. 2007, 02:57

Bonsoir,

Je ne vais pas te dire si tu as eu tort ou raison, mais poses-toi la question autrement.

Avec cette méthode
Je dois faire du code qui fait
Un accès à la base en lecture (pour récupérer les infos)
Transformation des infos en tableaux (création en mémoire de 3 tableaux)
Comparer les résultats
Reconstruction de l'enregistrement
Un autre accès à la base pour réécrire les infos (qui en plus d'une écriture demande aussi une recherche)

Avec l'autre méthode

Code : Tout sélectionner

DELETE FROM ta_table WHERE idlien = 'lien_id' AND idmembre='membre_id'
et le PB est résolu.

À toi d'en tirer une conclusion.

Et dans le sens de l'ajout ??? réfléchis aux deux solutions.

par Invité » 22 janv. 2007, 00:26

ok pour substring tant pis :)

par contre normalisé je vois pas trop comment faire

je propose aux membres d enregistrer les liens qu ils ont clickes.

donc dans un champs idlien, je mets les id des liens, sachant qu il peut y avoir plus de 400 id dans le champs par membre,
idmembre idlien(-23-48-46-45-48-78 etc etc =)

je ne voulais pas faire une table avec
idmembre idlien
idmembre idlien
etc etc 2000 membres * 400 liens !!!

ai je eu tort ???! :D :?:

par zeus » 21 janv. 2007, 20:54

Bonsoir,

je commencerais pas une recommandation : si, dans un champ, tu as une liste d'id, c'est que ta base n'est pas normalisée. Normalement, tu devrais avoir une seule information par champ.

Sinon, SUBSTRING ne peut faire que des opérations basique.

Sans procédures stockées, je ne vois pas comment tranformer ton code PHP en SQL :-k

Désolé

par Invité » 21 janv. 2007, 19:02

merci mais je vois pas trop comment m en servir, jai regarde la doc et je bloque completement!
du coup je passe en array
$Req = "SELECT * FROM parametres WHERE IdMemb=".$_SESSION['IdMemb']."";
		$Cur = mysql_query($Req);
		$Id = mysql_result($Cur,0,"champs");

$N = explode ("-",$Id);
$A = explode ("-",$_GET['Raz']);

$result = array_diff ($N, $A);
$c = implode ("-",$result);
print_r($c);
// et je refais l update

mais c est super lourd comme code!! y a pas mieuxc que ca ?

par Cyrano » 21 janv. 2007, 13:52

Regarde du coté de la fonction SUBSTRING()

inverse de concat?

par Invité » 21 janv. 2007, 13:11

bonjour

j ai cherché un commande mysql pour faire le contraire de concat mais j ai pas trouvé, qlqun peut me donner une piste pour faire ca .


exemple:
j ai une liste d id dans un champs : -50-15-48-45-50
pour ajouter un autre id au champs j utilise concat mais pour le retirer?

merci pour vos rep.