Les Allergies
Alimentaires
Posez votre question Signaler

Vérification avant enregistrement dans table

waldner77 184Messages postés 3 juin 2009Date d'inscription 13 juin 2010Dernière intervention - Dernière réponse le 3 sept. 2009 à 04:25
Bonjour,
se que je veux faire c'est que,
je valide mon formulaire avec la ou les selection des nom de pdf et c'est traité puis stocké dans la BDD. Ce que je voudrais c'est veriffié si les nom de pdf existe deja quelque part dans mes champs 'nom_pdf':
j'ai essayer plusieurs chose et sa me fait que des erreur ect.
est ce que vous pouvez m'aidez
merci
voici mon code.
<?php
require_once("../protec/passe/conf.php");
Error_Reporting(1);
@set_magic_quotes_runtime(0);
// sessions
if($active_session=="1")
{
session_start();
$id=addslashes($_SESSION["id"]);
$url="../protec/delogue.php";
}
else
{
$id=addslashes($_GET["id"]);
$url="../protec/delogue.php?id=".$id;
}
// fin sessions
$db_link=connect_db();
$droits=verif_login($id);
?>
<html>
<body>
<?php
echo "<CENTER><H4> Aujourd'hui le " . date('Y/m/d ')."</H4>";
if(isset($_POST['valeur']) && !empty($_POST['valeur']))
{
$Col1_Array = $_POST['valeur'];
foreach($Col1_Array as $select )
{
copy( "C:\\wamp\\www\\test projet\\test5\\php\\destination\\A_DIFFUSER\\".$select , "C:\\wamp\\www\\test projet\\test5\\php\\destination\\A VERIFIER\\".$select);
//copier fichier .pdf des valeurs sélectionnées
//echo '<br>';
//echo $select;
$Nom_pdf = $select ; //nom pdf:
if(isset($_POST['Uti']) && !empty($_POST['Uti']))
{
$Col1_Array = $_POST['Uti'];
foreach($Col1_Array as $select1)
{
$pieces = explode("#", $select1);
//echo $pieces[0]; //affiche le nom
//echo "<br>"; //sert a sauter à la ligne
//echo $pieces[1]; affiche le prenom
//echo "<br>";
//echo $pieces[2]; affiche l'email
$NP= $pieces[0].' '.$pieces[1] ;
$pseudo=$_COOKIE['monpseudo'];
$query='SELECT nom_pdf FROM a_verifier ';
$select2 = "SELECT nom, prenom,email FROM membre WHERE pseudo= '$pseudo' ";
$resultat=mysql_query($query,$db_link) or die (mysql_error());
$result2 = mysql_query($select2,$db_link) or die ('Erreur : '.mysql_error() );
$total=mysql_fetch_array($resultat);
echo $total['nom_pdf'];
while($Tab=mysql_fetch_array($result2))
{
$prenom = $Tab['prenom'];
$nom = $Tab['nom'];
$NP1 = $nom. ' ' .$prenom;
$email = $Tab['email'];
}
$date = date('Y/m/d H:m:s'); //date
$sql = "INSERT INTO a_verifier(nom_pdf,date,email2,destinataire,diffusee_par,email1)
VALUES ( '$Nom_pdf','$date','$pieces[2]','$NP','$NP1','$email') " ;
}
}
//exécution de la requête SQL:
$requete = mysql_query($sql, $db_link) or die( mysql_error() ) ;
}
}
?>
<a href="<?php echo $url; ?>">Se déloguer</a>
<a href="test3.php">tableau</a>
</html>
</body>
<?php
close();
?>
Lire la suite 

Vérification avant enregistrement dans table »

17 réponses
Réponse
+0
moins plus
quelles sont les erreurs que tu obtiens?
Ajouter un commentaire
Réponse
+0
moins plus
ba le problème déjà c'est que je n'arrive même pas a lire le contenue de la table et de l'afficher et après je veux faire une condition que si il y a le même nom pdf il ne fait rien et si il y a pas le même nom il enregistre
Ajouter un commentaire
Réponse
+0
moins plus
vérifie ta connexion à la bdd avec une requête simple pour commencer, sur la même page
Ajouter un commentaire
Réponse
+0
moins plus
elle marche ma conexion c'est juste que la j'ai fait une condition pour voir si il y a la même valeur dans ma table et sa me fait sa maintenant Query was empty comme erreur:
voila se que j'ai fait:
$query='SELECT nom_pdf FROM a_verifier ';
$select2 = "SELECT nom, prenom,email FROM membre WHERE pseudo= '$pseudo' ";
$resultat=mysql_query($query,$db_link) or die (mysql_error());
$result2 = mysql_query($select2,$db_link) or die ('Erreur : '.mysql_error() );
while($total=mysql_fetch_array($resultat)){

while($Tab=mysql_fetch_array($result2))
{

$prenom = $Tab['prenom'];
$nom = $Tab['nom'];
$NP1 = $nom. ' ' .$prenom;
$email = $Tab['email'];
}
$date = date('Y/m/d H:m:s'); //date
if($total[0]= $Nom_pdf){
//echo 'déjà enregistré';
}
else{
$sql = "INSERT INTO a_verifier(nom_pdf,date,email2,destinataire,diffusee_par,email1)
VALUES ( '$Nom_pdf','$date','$pieces[2]','$NP','$NP1','$email') " ;
}
}
Ajouter un commentaire
Réponse
+0
moins plus
elle est horrible ta requête.

$request="select nom_pdf from a_verifier where nom_pdf='$Nom_pdf' limit 1";
$query=mysql_query($request) or die(mysql_error());
    if(mysql_num_rows($query)==0){
        //on enregistre
    }else{
        //on n'enregistre pas.
    }


ça suffit largement pour vérifier la présence de ton enregistrement, je vois pas pourquoi tu fais une requête sur ta table membres. Corrige cet exemple et fais les ajouts nécessaires, et dis moi ce que tu obtiens.
Trombines - 3 sept. 2009 à 04:25
Hello à tous !

Une bonne âme pour m'aider SVP ? Voici mon problème, j'essaie de créer un formulaire en Flash qui communique via php avec une base Mysql.

Les enregistrement se font sans problèmes mais lorsque l'utilisateur choisi un pseudo qui existe déjà, le message d'erreur qui s'affiche n'est pas celui que j'ai indiqué dans mon code. :(
Voici mon code :

<?
include "dbconfig.php";

if(!empty($_POST['username']) && !empty($_POST['userpass'])){
  mysql_query("insert into users(username,userpwd) values('".$_POST['username']."','".($_POST['userpass'])."')") or die("&error=".mysql_error()."&");

}

if(!empty($_POST['username']) && !empty($_POST['userpass'])){
  $res=mysql_query("select username from users where username='".$_POST['username']."' and userpwd='".($_POST['userpass'])."'") or die("&error=".mysql_error()."&");		
  if(mysql_num_rows($res)==1){
	$row=mysql_fetch_object($res);
	echo "&user=".$row->username."&";
  }
  else{
	echo "&error=User existant&";
  } 
} 
else{
  echo "&error=Vous devez fournir le user et le pwd&";
}

?>


A part brûler un cierge à Saint Ternet, je crois que j'ai à peu près tout essayé alors si vous avez une solution, je suis preneur ! Merci !
Ajouter un commentaire
Réponse
+0
moins plus
sa me fait tjr la même chose

$pseudo=$_COOKIE['monpseudo'];
$select2 = "SELECT nom, prenom,email FROM membre WHERE pseudo= '$pseudo' ";
$result2 = mysql_query($select2,$db_link) or die ('Erreur : '.mysql_error() );

$request="select nom_pdf from a_verifier where nom_pdf='$Nom_pdf' limit 1";
$query=mysql_query($request) or die(mysql_error());
if(mysql_num_rows($query)==0){
while($Tab=mysql_fetch_array($result2))
{

$prenom = $Tab['prenom'];
$nom = $Tab['nom'];
$NP1 = $nom. ' ' .$prenom;
$email = $Tab['email'];
}
$date = date('Y/m/d H:m:s'); //date

$sql = "INSERT INTO a_verifier(nom_pdf,date,email2,destinataire,diffusee_par,email1)
VALUES ( '$Nom_pdf','$date','$pieces[2]','$NP','$NP1','$email') " ;
}else{
//on n'enregistre pas.
}
Ajouter un commentaire
Réponse
+0
moins plus
bon attends, explique moi ces histoires de requêtes croisées, pourquoi tu fais deux requêtes là? à quoi ça te sert d'aller faire un tour dans ta table membre? Je n'en vois pas l'utilité (enfin, ça saute pas aux yeux quoi^^), et je trouve que ça a plutôt tendance à brouiller qu'autre chose. Si ça ne sert à rien pour ce qui concerne la vérification, faut pas le mettre là, faut le mettre ailleurs, faut pas tout mélanger^^
Ajouter un commentaire
Réponse
+0
moins plus
l'utilité c'est que je vais chercher le nom et prénom de la personne qui c'est connecter c'est pour sa que je l'utilise
Ajouter un commentaire
Réponse
+0
moins plus
	$request="select nom_pdf from a_verifier where nom_pdf='$Nom_pdf' limit 1"; 
	$query=mysql_query($request) or die(mysql_error()); 
	if( mysql_num_rows($query)==0 ){
		$request="select nom,prenom,mail from membre where pseudo='$pseudo' limit 1";
		$query=mysql_query($request) or die(mysql_error());
		if(mysql_num_rows($query)!=0){
			list($nom,$prenom,$email)=mysql_fetch_array($query);
			$NP1="$nom $prenom";
			$date=date('Y/m/d H:m:s');
			$request="insert into a_verifier ";
			$request.="values ('$Nom_pdf','$date','$pieces[2]','$NP','$NP1','$email')";
			mysql_query( $request ) or die(__file__.' '.__line__.' '.mysql_error());
			echo "Document enregistré";
		}else{
			echo 'Identité irrécupérable';
			return;
		}	}else{
		echo "Document déjà présent dans la table.";
	}


la récupération de l'identité on n'en a besoin que dans l'enregistrement si j'ai bien compris, donc on la fait à ce moment là, pour éviter la surcharge du serveur^^
là on fait aussi plusieurs vérifications standards, donc ce code te retourne forcément quelque chose, et je tiens à savoir quoi ;)
tu connais le paramètre LIMIT de mysql? Très utile, il te permet de t'arrêter à un enregistrement quand tu fouilles une bdd, et je m'en sers ici pour les vérifications, vu que la procédure est invalidée ou validée à partir du moment où on trouve au moins un enregistrement (pour le fichier et pour l'identité^^)
Ca permet aussi d'éviter la boucle while, inutile puisqu'on ne récupère qu'une ligne de résultats^^ ce qui allège aussi l'exécution de ton script
Ajouter un commentaire
Réponse
+0
moins plus
non je ne connait pas la fonction LIMIT dans sql
j'ai essayer et sa fait toujours Query was empty.
j'ai sélectionné tout les nom des pdf pour voir si sa marche et il me dit qu'il avez bien renvoyer mais avec l'erreur que je t'es mit en haut , mais quand j'ai regarder ma table dans le sql il a juste enregistré le premier pdf et je pense qu'il doit coller les l'un a coter des autres les noms des pdf.
Ajouter un commentaire
Réponse
+0
moins plus
remplace ça:

//exécution de la requête SQL:
$requete = mysql_query($sql, $db_link) or die( mysql_error() ) ;
}

par ça:

//exécution de la requête SQL:
$requete = mysql_query($sql, $db_link) or die( __file__.' '.__line__.' code erreur: '.mysql_error() ) ;
}

et recommence^^
Ajouter un commentaire
Réponse
+0
moins plus
sa me fait sa
C:\wamp\www\test projet\test5\php\destination\test2.php 79 code erreur: Query was empty
Ajouter un commentaire
Réponse
+0
moins plus
très bien, vérifie donc ton fichier test2.php à la ligne 79 et dis moi quelle requête tu as. Normalement, c'est le passage que je t'ai demandé de vérifier dans mon précédent message^^

Si c'est bien le cas, met la ligne en commentaire (// ou entre /* */) et retente, dis moi ce que ça fait. En principe, avec le code que je t'ai donné, il n'y a plus besoin d'executer cette ligne là^^.

Si tu obtiens toujours des erreurs, donne les moi et mets le contenu de tout ton fichier ici, mis en forme avec les balises adéquates, parce que sans indentation c'est illisible et on corrige mal :s
Ajouter un commentaire
Réponse
+0
moins plus
c bon sa marche c'est bien je te remercie pour l'aide.
Ajouter un commentaire
Réponse
+0
moins plus
no probs ;) mets ton sujet en 'résolu' en haut^^ et bonne journée^^
Ajouter un commentaire
Réponse
+0
moins plus
merci a toi aussi et merci encore
Ajouter un commentaire
Ce document intitulé « vérification avant enregistrement dans table » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?