Vérification avant enregistrement dans table

Fermé
waldner77 Messages postés 183 Date d'inscription mercredi 3 juin 2009 Statut Membre Dernière intervention 20 janvier 2011 - 19 juin 2009 à 13:16
 Trombines - 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();
?>

16 réponses

Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
19 juin 2009 à 13:18
quelles sont les erreurs que tu obtiens?
0
waldner77 Messages postés 183 Date d'inscription mercredi 3 juin 2009 Statut Membre Dernière intervention 20 janvier 2011 4
19 juin 2009 à 13:23
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
0
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
19 juin 2009 à 13:31
vérifie ta connexion à la bdd avec une requête simple pour commencer, sur la même page
0
waldner77 Messages postés 183 Date d'inscription mercredi 3 juin 2009 Statut Membre Dernière intervention 20 janvier 2011 4
19 juin 2009 à 13:47
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') " ;
}
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
19 juin 2009 à 13:59
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.
0
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 !
0
waldner77 Messages postés 183 Date d'inscription mercredi 3 juin 2009 Statut Membre Dernière intervention 20 janvier 2011 4
19 juin 2009 à 14:34
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.
}
0
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
19 juin 2009 à 14:40
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^^
0
waldner77 Messages postés 183 Date d'inscription mercredi 3 juin 2009 Statut Membre Dernière intervention 20 janvier 2011 4
19 juin 2009 à 14:53
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
0
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
19 juin 2009 à 15:09
	$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
0
waldner77 Messages postés 183 Date d'inscription mercredi 3 juin 2009 Statut Membre Dernière intervention 20 janvier 2011 4
19 juin 2009 à 15:23
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.
0
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
19 juin 2009 à 15:25
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^^
0
waldner77 Messages postés 183 Date d'inscription mercredi 3 juin 2009 Statut Membre Dernière intervention 20 janvier 2011 4
19 juin 2009 à 15:34
sa me fait sa
C:\wamp\www\test projet\test5\php\destination\test2.php 79 code erreur: Query was empty
0
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
19 juin 2009 à 15:38
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
0
waldner77 Messages postés 183 Date d'inscription mercredi 3 juin 2009 Statut Membre Dernière intervention 20 janvier 2011 4
19 juin 2009 à 15:43
c bon sa marche c'est bien je te remercie pour l'aide.
0
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
19 juin 2009 à 15:46
no probs ;) mets ton sujet en 'résolu' en haut^^ et bonne journée^^
0
waldner77 Messages postés 183 Date d'inscription mercredi 3 juin 2009 Statut Membre Dernière intervention 20 janvier 2011 4
19 juin 2009 à 15:47
merci a toi aussi et merci encore
0