[RESOLU] PDO : bindParam pour 2 requetes différentes.

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 : [RESOLU] PDO : bindParam pour 2 requetes différentes.

Re: PDO : bindParam pour 2 requetes différentes.

par Elie » 06 juin 2014, 20:21

La solution que je vais surement breveté tellement c'est high-tech :
<?php

	include('include/config.php');
	include('include/fonctions.php');
	
	// On fait un fonction pour simplifier ?
	function bindIt() {
		
		global $_REQUEST, $req;
		
		if(!empty($_REQUEST['annee'])) $req->bindParam('date', $_REQUEST['annee']);
		
	}
	
	$sql = "SELECT * FROM `tbl_film`";
	$sql .= !empty($_GET['annee']) ? " WHERE `date` = :date" : NULL;
	
	$req = $connexion->prepare($sql);
	
	bindIt();
	
	// On calcule le nombre total ou total pour une année
	$req->execute() or die(erreurMysql($connexion));
	$num = $req->rowCount();
	
	echo $num.' films';
	
	$sql .= " LIMIT :debut, :nb";
	
	$req = $connexion->prepare($sql);
	
	bindIt();
	
	$req->bindValue('debut', 0, PDO::PARAM_INT);
	$req->bindValue('nb', 5, PDO::PARAM_INT);
	
	$req->execute() or die(erreurMysql($connexion));
	$total = $req->rowCount();
		
	echo '<br />'.$total.' films affichés';

?>

Re: PDO : bindParam pour 2 requetes différentes.

par xTG » 06 juin 2014, 14:57

Tu as deux requêtes différentes. (à moins qu'il y ait une astuce pour rentrer en paramètre d'un LIMIT de récupérer toute la table => du coup une seule requête, des paramètres différents)
Donc pour moi ce n'est pas envisageable de ne faire l'exercice qu'une fois.

Ce serait comme de prendre une voiture X et y monter un autoradio mais s'attendre à ce que l'opération soit effectuée magiquement aussi sur la voiture Y. ;)

PDO : bindParam pour 2 requetes différentes.

par Elie » 06 juin 2014, 13:54

Hello,

J'aimerai savoir comment faire pour que mon bindParam soit prise en compte dans mon premiere execute mais également dans ma deuxieme.
Suis-je obligé de la redémarré ?
Si vous avez une idée parce que PDO me soule déjà ...
<?php

	include('include/config.php');
	include('include/fonctions.php');
	
	$sql = "SELECT * FROM `tbl_film`";
	$sql .= !empty($_GET['annee']) ? " WHERE `date` = :date" : NULL;
	
	$req = $connexion->prepare($sql);
	if(!empty($_REQUEST['annee'])) $req->bindParam('date', $_GET['annee']);
	
	// On calcule le nombre total ou total pour une année
	$req->execute() or die(erreurMysql($connexion));
	$num = $req->rowCount();
	
	echo $num.' films';
	
	$sql .= " LIMIT :debut, :nb";
	
	$req = $connexion->prepare($sql);
	
	$req->bindValue('debut', 0, PDO::PARAM_INT);
	$req->bindValue('nb', 5, PDO::PARAM_INT);
	
	$req->execute() or die(erreurMysql($connexion));
	$total = $req->rowCount();
	
	echo $req->queryString;
	
	echo $total.' films affichés';

?>