Page 1 sur 1

équivalente de mysql_num_row() dans PDO

Posté : 24 mai 2008, 11:36
par x@v
Bonjour,
dans mon contexte j'essaie de trouver une alternative à mysql_num_rows() à partir de PDO.
	public function injection($sql)
	{
		try
		{
			$this->con = parent::beginTransaction();
			$result= parent::prepare($sql);
			$this->con = parent::commit();
	  		return $result;
		}
		catch (Exception $e)
		{
			//On indique par email que la requête n'a pas fonctionné.
			error_log(date('D/m/y').' à '.date("H:i:s").' : '.$e->getMessage(), 1, '[email protected]');
			$this->con =parent::rollBack();
			$message= new Message();
			$message->outPut('Erreur dans la requêtte', 'Votre requête a été abandonné');
		}
	}
donc ma méthode avec ceci :
				$sql="SELECT id_categorie FROM produits WHERE id_categorie='$id'";
				$result = $connection->selectTableau($sql);
				print_r($result);
renvoie

Code : Tout sélectionner

PDOStatement Object ( [queryString] => SELECT id_categorie FROM produits WHERE id_categorie='2' )
étant un objet qui habituellement ce travail comme un tableau avec un foreach ou un for.
Par contre ne faisant
[php]				foreach ($result as $value) 
				{
					echo count($value);
				}
j'obtient la bonne réponse en nombre de chiffre.
ex:
222
22
ce qui fait 3 et 2 chiffres respectivement
et donc je cherche à additionner ce résultat mais en castant en string l'entier renvoyer.
mias là je bloque pas vraiment pour caster mais pour compter le nombre de chiffre et émuler mysql_num_row().
Merci

Re: équivalente de mysql_num_row() dans PDO

Posté : 24 mai 2008, 11:42
par Sékiltoyai
et donc je cherche à additionner ce résultat mais en castant en string l'entier renvoyer.
Quelle utilité ?

Posté : 24 mai 2008, 11:47
par rami
Pourquoi ne pas faire un fetchAll() puis un count() ?

Posté : 24 mai 2008, 11:53
par x@v
en faite si je travaille sur des entiers
222
vont faire 6
Donc j'avais essayer avec cast() et settype()
Mais je 'men suis pas sortis pour autant.
Peut être en faisant une deuxième méthode dédier, mais pareil j'ai galéré.
	// renvoie un tableau que l'on peux travailler avec count($result)...
	public function selectTableau($reqSelect)
	{
		$resultat=parent::query($reqSelect);
	    foreach ($resultat as $cle => $ligne)
		{
			//echo count_chars($cle);
			//print_r($cle);
			$t = $cle;
			$o = 1 * $t;
			//echo $o;
		 	//echo $t;
		 	//echo strlen($t);
		 	$s = settype($f, int);
		 	//echo strlen($f);
			//echo $com;
			//echo $com;
		}
	}
J'avais pas vu ta réponse
fetchAll()
je vais regarder mais sa à l'air prévu
Merci