|
|
|
|
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();
?>
Configuration: Windows Vista Firefox 3.0.11
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:
|
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.
|
Sa me fait tjr la même chose
|
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^^ |
$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 |
Non je ne connait pas la fonction LIMIT dans sql
|
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^^
|