Page 1 sur 1

SELECT COUNT substr_count tester présence d'une référence

Posté : 27 juin 2013, 18:39
par barale61
Bonjour,

J'ai un formulaire d'ajout qui me renvoi une erreur SQL puisque mon champ (reference) de table est: unique. C'est normal si ma variable (reference) existe déjà dans ma table. Ce que je souhaite savoir c'est s'il y a un moyen en php de vérifier cette présence dans ma table ou bien dois-je utiliser une deuxième requête avec un sélect count.
$insertSQL = sprintf("INSERT INTO articles (reference, prix, designation, date, famillesID) VALUES (%s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['reference'], "text"),
                       GetSQLValueString($_POST['prix'], "double"),
                       GetSQLValueString($_POST['designation'], "text"),
					   'NOW()',
                       GetSQLValueString($_POST['famillesID'], "int"));

Je viens de m'apercevoir que substr_count pourrait faire l'affaire mais, je ne sais comment l'utiliser.

Merci de votre suggestion.

Re: SELECT COUNT substr_count tester présence d'une référenc

Posté : 27 juin 2013, 20:43
par moogli
salut,


soit tu tente en traitant l'exception soit tu fait un count il n'y a pas d'autre solution ;)


@+

Re: SELECT COUNT substr_count tester présence d'une référenc

Posté : 28 juin 2013, 20:55
par barale61
Bonsoir,

Je te remercie alors j'ai fais:
mysql_select_db($database_connexionMysql, $connexionMysql);
$query_rsArticles = "SELECT COUNT(*) AS cnt FROM articles WHERE reference = ('reference')";
$rsArticles = mysql_query($query_rsArticles, $connexionMysql) or die(mysql_error());
$row_rsArticles = mysql_fetch_assoc($rsArticles);
$totalRows_rsArticles = $row_rsArticles['cnt'];
cela fonctionne bien mais j'ai 2 requêtes dont 1 avec insertion de photo et l'autre sans et je ne trouve pas comment imbriquer cette condition pour les 2 requêtes:
if(($totalRows_rsArticles)>0)
	{
	echo "La référence existe déjà";
	}
J'ai tout essayé (ou presque) mais en vain.

Re: SELECT COUNT substr_count tester présence d'une référenc

Posté : 29 juin 2013, 17:05
par barale61
Bonjour,

J'ai 2 requêtes dont 1 avec insertion de photo et l'autre sans et je ne trouve pas comment imbriquer cette condition supplémentaire pour les 2 requêtes:
if condition 1
{
if condition 2
{
requête 1 (sans photo)
}
else 
{
requête 2 (avec photo)
}}
Je souhaite donc ajouter à mes conditions 1 et 2 condition 3 avec notamment && J'ai tout essayé mais en vain. Si vous pouviez me mettre sur la voie.
Merci.

J'ai réessayé de cette façon:
if condition 1 && condition 3
{
if condition 2
{
requête 1 (sans photo)
}
else 
{
requête 2 (avec photo)
}}
avec l'erreur query was empty

Re: SELECT COUNT substr_count tester présence d'une référenc

Posté : 29 juin 2013, 20:18
par moogli
Poste le code parce que la tous ce que je peux te dire c'est que tu rentre dans un cas non prévue qui fait que ta variable ne contient pas de requête.
Mais je suppose que tu le savais déjà :mrgreen:

L'art de la boule de cristal c'est pas trop mon truc ;)

@+

Re: SELECT COUNT substr_count tester présence d'une référenc

Posté : 29 juin 2013, 21:39
par barale61
/********************************************************************************************/
mysql_select_db($database_article_recherche, $article_recherche);
$query_rsArticles = "SELECT COUNT(*) AS cnt FROM articles WHERE reference = ('reference')";
$rsArticles = mysql_query($query_rsArticles, $article_recherche) or die(mysql_error());
$row_rsArticles = mysql_fetch_assoc($rsArticles);
$totalRows_rsArticles = $row_rsArticles['cnt'];
/*********************************************************************************************/


if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) && (($totalRows_rsArticles)<1)
	{
if(($totalRows_rsArticles)<1)
	{
	if($_FILES['photo']['error']==0)
	{
	//copie de la photo dans le répertoire /photos/
	copy($_FILES['photo']['tmp_name'],"../photos/".$_FILES['photo']['name']);
	//enregistrement des informations AVEC le nom de la photo
$etat = (isset($_POST['etat']) && $_POST['etat'] == 'on') ? 1 : 0;
  $insertSQL = sprintf("INSERT INTO articles (reference, prix, designation, photo, date, famillesID, etat) VALUES (%s, %s, %s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['reference'], "text"),
                       GetSQLValueString($_POST['prix'], "double"),
                       GetSQLValueString($_POST['designation'], "text"),
					   GetSQLValueString($_FILES['photo']['name'], "text"),
					   'NOW()',
                       GetSQLValueString($_POST['famillesID'], "int"),
					   $etat);
	}else
	{
	
	//enregistrement des informations SANS le nom de la photo	
$etat = (isset($_POST['etat']) && $_POST['etat'] == 'on') ? 1 : 0;	
	$insertSQL = sprintf("INSERT INTO articles (reference, prix, designation, date, famillesID, etat) VALUES (%s, %s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['reference'], "text"),
                       GetSQLValueString($_POST['prix'], "double"),
                       GetSQLValueString($_POST['designation'], "text"),
					   'NOW()',
                       GetSQLValueString($_POST['famillesID'], "int"),
					   $etat);
					   
	}//fin du test if($_FILES['photo']['error']==0)