Valeur retournée par mysql_num_rows
Posté : 05 juil. 2007, 10:47
Tout d'abord bonjour.
J'ai un petit souci.
Dans un dossier, j'ai des pdf avec une nomenclature telle : 11652021fac54.pdf
11= code suc 652021 = compte client fac = type d'édition 54= n° d'édition
Mon code me liste les fichiers contenus dans le répertoire, fait des extractions de chaîne, pour remplir des champs de bdd, tout ce la marche (=> deuxième partie du code), ceci dit, j'ai voulu faire un test avant cette partie, en listant tout les fichiers du dossiers, en faisant les extractions de deux champs, code suc et n° d'édition, en faisant une requête pour vérifier que qu'il n'y a aucun enregistrement dans la base possédant a la fois le code suc 11 et le n° édition 54, ($s) et ($z). Il faudrai que mar equête retourne le nombre de ligne affectées par la condition, si il y en a + de 0 TAC, j'arrête la boucle et je met une erreur, malheureusement, étant débutant, je peine à trouver la solution. (j'ai pensé a mysql_affected_rows mais je ne sais pas si c'est bon.)
Concr'tement dans mon code j'ai un nombre d'enregistrements dans al base, et j'essaie d'ajouter un nouveau fichier dans la base, il n'y a pas de doublons, mais il ne me l'insère pas dans la base, et ne me fait aps de "echo arf";
En espérant une aide, je vous remercie d'avance. Ci dessous une partie du code
La valeur retournée par mysql_num_rows est 1 dans tous les cas
J'ai un petit souci.
Dans un dossier, j'ai des pdf avec une nomenclature telle : 11652021fac54.pdf
11= code suc 652021 = compte client fac = type d'édition 54= n° d'édition
Mon code me liste les fichiers contenus dans le répertoire, fait des extractions de chaîne, pour remplir des champs de bdd, tout ce la marche (=> deuxième partie du code), ceci dit, j'ai voulu faire un test avant cette partie, en listant tout les fichiers du dossiers, en faisant les extractions de deux champs, code suc et n° d'édition, en faisant une requête pour vérifier que qu'il n'y a aucun enregistrement dans la base possédant a la fois le code suc 11 et le n° édition 54, ($s) et ($z). Il faudrai que mar equête retourne le nombre de ligne affectées par la condition, si il y en a + de 0 TAC, j'arrête la boucle et je met une erreur, malheureusement, étant débutant, je peine à trouver la solution. (j'ai pensé a mysql_affected_rows mais je ne sais pas si c'est bon.)
Concr'tement dans mon code j'ai un nombre d'enregistrements dans al base, et j'essaie d'ajouter un nouveau fichier dans la base, il n'y a pas de doublons, mais il ne me l'insère pas dans la base, et ne me fait aps de "echo arf";
En espérant une aide, je vous remercie d'avance. Ci dessous une partie du code
La valeur retournée par mysql_num_rows est 1 dans tous les cas
Code : Tout sélectionner
<?php
$cnx = mysql_connect( "localhost", "root", "" ) ;
$db = mysql_select_db( "pdf" ) ;
$rep = "c:/Program Files/test/";
$dir = opendir($rep);
function dd($date) {
return date("d/m/Y H:i:s",$date);
}
while ($f = readdir($dir)) {
if(is_file($rep.$f)) {
$s = substr($f,0, 2);
$z = substr($f, -6, 2);
$sql = "Select count(*) FROM pidif WHERE suc = '$s' and nfact ='$z'";
$requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
$requete2 = mysql_num_rows($requete);
if ($requete2 > 0){
echo "arf";
else {
while ($f = readdir($dir)) {
if(is_file($rep.$f)) {
$s = substr($f,0, 2);
$e = substr($f,2, 7);
$a = substr($f, 8, 10);
$z = substr($f, -6, 2);
$sql = "INSERT INTO pidif (nom, suc, compte, type, nfact) Values ('$f', '$s', '$e', '$a', '$z')" ;
$requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
}
}}}}
?>