IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

PDOStatement::execute() expects at most 1 parameter, 2 given


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut PDOStatement::execute() expects at most 1 parameter, 2 given
    Bonjour,

    voile j'ai ce message d'erreur qui s'affiche :

    PDOStatement::execute() expects at most 1 parameter, 2 given ...

    voici ma fonction


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if(isset($_GET['nomVille'])and isset($_GET['code_postal'])){
    			$req=$db->prepare("select id_budget,valeur_budget,annee_budget 
    			from budget
    			where lower(nom_commune)=lower(:commune)
    			and year(CURDATE())=annee_budget
    			and code_postal=:code_postal");
    			$req->execute([':commune'=>$_GET['nomVille']],[':code_postal'=>$_GET['code_postal']]);
    			if($req->rowCount()>0){
    				while($budget=$req->fetch(PDO::FETCH_OBJ)){$array['budget'][]=$budget;}
    			}
    et si je met array dans la requete excute j'ai un nouveau message d'erreur disant que j'utilse un array c'est pour afficher une information sur un tableau après choix d'informations dans des liste deroulante.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    $.ajax({
    						url:"xxxxxxx",
    						method:"get",
    						dataType:"json",
    						data:"ville="+ui.item.value+"&name="+ui.item.value+"&nomVille="+ui.item.value+"&code_postal="+ui.item.value
    					})
    					.done(function(d){
    						//alimenter la liste des nom services
    						console.log(d);
    						if(d.budget){
    							$(".nbr_budget")
    							.text(d.budget[0].valeur_budget)
    							.closest(".wrap_budget").show();
    						}

    merci pour votre aide

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req->execute(array(':commune'=>$_GET['nomVille'] , ':code_postal'=>$_GET['code_postal']));
    A+.

  3. #3
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut
    il faudrait mettez svp mon code postal est toujours undefined dans le GET.

    j'ai 3 select un service / une commune / un cp
    je recuperer bien la commune mais la je veux recuperer le code postal aussi mais reste undefined pour afficher le buget et afficher de ce service.

    Je recuperer le code postal dans page de traitement pas GET.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    <select name="nom_service" id="nom_service">
    						<option>Sélectionnez un service</option>
    					</select>
    				</td>
    				<td>
    					<input type="text" class="recherche" placeholder="Tapez et choisissez un CP" />
    					<select name="code_postales" id="code_postales">
    						<option>Sélectionnez un code postale</option>
    					</select>
    				</td>
     
    				<td>
    					<input type="text" class="recherche" placeholder="Tapez et choisissez une adresse" />
    					<select name="adresse_service" id="adresse_service">
    						<option>Sélectionnez une adresse</option>
    					</select>
    dans ma page de liste.php dans header:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select: function(event, ui) {
    					$.ajax({
     
    						method:"get",
    						dataType:"json",
    						data:"ville="+ui.item.value+"&name="+ui.item.value+"&nomVille="+ui.item.value+"&code_postal="+ui.item.code_postales
    					})
    dans ma page de traitement:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    $array = array();
    	/* si la requête est bien en Ajax et la méthode en GET ... */
    	if((strtolower(filter_input(INPUT_SERVER, 'HTTP_X_REQUESTED_WITH')) === 'xmlhttprequest') && ($_SERVER['REQUEST_METHOD'] == 'GET')){
    		/* on récupère le terme et on le duplique en terme en transformant les espaces en tirets et tirets en espaces (au cas ou) */
    		$commune = str_replace("''","'",urldecode(htmlspecialchars($_REQUEST['name'])));
    		$query=$db->prepare('SELECT ts.id_service_public, ts.nom_service_public, ts.commune, ts.code_postal, ts.adresse 
    			FROM table_temporaire_service ts			
    			WHERE LOWER(ts.commune) LIKE LOWER(:commune) collate utf8_bin
    			ORDER BY ts.commune desc');
    		$query->setFetchMode(PDO::FETCH_OBJ);
    		$query->execute([':commune'=>'%'.$commune.'%']);
    		/* remplissage du tableau avec les termes récupéré en requete (ou non) */
    		while($q = $query->fetch()){
    			$array["communes"][] = [
    					'id' => $q->id_service,
    					'label' => $q->commune,
    					'value' => $q->commune,
    					'code_postal'=> $q->code_postal 
    				];
     
     
    		}
     
    if(isset($_GET['nomVille'])and isset($_GET['code_postal'])){
    			$req=$db->prepare("select id_budget,valeur_budget,annee_budget 
    			from table_temporaire2_budget
    			where lower(nom_commune)=lower(:commune)
    			and year(CURDATE())=annee_budget
    			and code_postal=:code_postal");
    			$req->execute([':commune'=>$_GET['nomVille'],':code_postal'=>$_GET['code_postal'] ]);
    			if($req->rowCount()>0){
    				while($budget=$req->fetch(PDO::FETCH_OBJ)){$array['budget'][]=$budget;}
    			}
    merci pour votre aide

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/01/2017, 01h19
  2. Réponses: 3
    Dernier message: 22/05/2013, 13h06
  3. Réponses: 6
    Dernier message: 27/10/2011, 13h27
  4. [PDO] Warning: PDOStatement: :execute()
    Par Sleef dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 19/04/2011, 00h34
  5. Erreur expects at most 1 parameter, 2 given
    Par dubitoph dans le forum Langage
    Réponses: 2
    Dernier message: 18/07/2009, 18h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo