[RESOLU] Verification doublon BDD

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 : [RESOLU] Verification doublon BDD

Re: Verification doublon BDD

par schim59 » 26 août 2012, 16:05

$cnx=new PDO($dsn,$user,$pass);

 $sql0 = "SELECT * FROM images_news WHERE url_image = 'images/news/images/".$nFile."'";
  $sql1->query($sql0);

$result=$sql1->fetchAll();
$nombre=count($result);

if ($nombre!=0){echo "erreur";}
Corrigé!

Re: Verification doublon BDD

par TRUNCKS » 26 août 2012, 12:49

Fausse alerte, c'était finalement une erreur de variable, manquait une lettre.

Avec votre méthode tout à marché nickel, merci encore à vous !

Re: Verification doublon BDD

par TRUNCKS » 26 août 2012, 12:17

Bonjour, en fait j'aimerai le faire sans PDO car j'ai fait tout mon travail autrement.

J'ai essayé en mettant bien les ' et les . mais c'est toujours pareil.

Il ne m'affiche pas le message d'erreur et l'image passe sans problème.

Re: Verification doublon BDD

par dix2 » 26 août 2012, 11:17

J'utilise PDO, pour éviter les fautes, je le présente avec PDO,
ça donnerai ca :
$cnx=nex PDO($dsn,$user,$pass);

 $sql0 = "SELECT * FROM images_news WHERE url_image = 'images/news/images/$nFile'";
  $sql1->query($sql0);

$result=$sql1->fetchAll();
$nombre=count($result);

if ($nombre!=0){echo "erreur";}
J'ai pas testé, mais en théorie ca doit marcher. Bon codage.
il y a 1 coquille à la 1ere ligne, c'est "new PDO"

Re: Verification doublon BDD

par dix2 » 26 août 2012, 11:13

salut,

il ne faut pas mettre les variables PHP à l'intérieur des chaînes de caractères délimitées par des simples côtes car les variables ne seront pas interprétées
au lieu de :
if ('images/news/images/'.'$nFile' == $count){
il faut écrire :
if ('images/news/images/'.$nFile == $count){

@+
dix2

Re: Verification doublon BDD

par schim59 » 26 août 2012, 11:04

J'utilise PDO, pour éviter les fautes, je le présente avec PDO,
ça donnerai ca :
$cnx=nex PDO($dsn,$user,$pass);

 $sql0 = "SELECT * FROM images_news WHERE url_image = 'images/news/images/$nFile'";
  $sql1->query($sql0);

$result=$sql1->fetchAll();
$nombre=count($result);

if ($nombre!=0){echo "erreur";}
J'ai pas testé, mais en théorie ca doit marcher. Bon codage.

Re: Verification doublon BDD

par TRUNCKS » 26 août 2012, 10:50

Merci pour la réponse, j'ai corrigé mais cela ne fonctionne toujours pas.

L'upload passe et le message d'erreur ne s'affiche pas.

J'ai fait cela:
  $req = "SELECT * FROM images_news WHERE url_image = 'images/news/images/$nFile'"; 
  $rep = mysql_query($req);
  
  while ($result = mysql_fetch_array($rep)){
	  
  $count = $result['url_image'];
  
  if ('images/news/images/$nFile' == $count){
	  
	  echo "Erreur !";
  }
  }

Re: Verification doublon BDD

par schim59 » 26 août 2012, 09:56

Bonjour,
Ajoute dans le select
where url_image='xxxx'
Et tu obtients tout de suite ce que tu cheches.

Bon codage.

Verification doublon BDD

par TRUNCKS » 26 août 2012, 08:23

Bonjour à vous,

J'essaye lors de l'upload d'une image, de vérifier si cette dernière n'existe pas déjà à l'aide de son chemin d'accès.
J'ai fait ceci:
  $req = "SELECT * FROM images_news"; 
  $rep = mysql_query($req);
  
  while ($result = mysql_fetch_array($rep)){
	  
  $count = $result['url_image'];
  

  
  if ('images/news/images/'.'$nFile' == $count){
	  
	  echo "Erreur !";
  }
  }
Sachant que j'ai fait une erreur, je ne stocke pas le nom de l'image dans ma bdd mais le chemin d'accès, du coup je compare les chemins.

$nfile correspond à l'image seule, à laquelle je rajoute le chemin fixe pour le comparer à $count, qui lui renvoie le chemin complet ( fixe + nom image ).

Le soucis, c'est que dans mon cas, $count ne renvoie qu'un seul enregistrement, le premier dans mon dossier image et ma comparaison ne marche pas :(

Merci à vous si vous pouvez m'aider à corriger.