Valeur retournée par mysql_num_rows

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Valeur retournée par mysql_num_rows

par Maitrepylos » 05 juil. 2007, 11:24

Bonjour,

tu as en tous cas une erreur d'accolade.

Indente ton code pour qu'il soit plus lisible.

Essaye ceci, pour voir si cela fonctionne
<?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() ) ;
            	}     
            }
      }
   }
}
?>

Valeur retournée par mysql_num_rows

par Jabu- » 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

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() ) ; } }}}} ?>