PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 Re : Forum Général PHP » Requête PDO et IN(...) » 28-05-2013 11:02:08

Donc voila :

$arr= explode('|', $_GET['del']);

    foreach($arr as $elem)
        $arrPH[] = '?';

    $strPH = implode(',', $arrPH); //Contient: ?,?,?,?,?

    $sql    = "UPDATE messagerie SET visible=visible-2 WHERE id_msg IN($strPH)";

    $sth = $dbh->prepare($sql);

    //Associer les valeurs aux place holders
    for($i=0;$i<count($arr);$i++)
      $sth->bindValue($i+1, $arr[$i], PDO::PARAM_STR);

    $sth->execute();
 

Merci

#3 Forum Général PHP » Requête PDO et IN(...) » 28-05-2013 11:02:08

jerome76
Réponses : 2

Bonjour,

Je souhaite effectuer une requête préparée de ce type :

UPDATE messagerie SET visible=visible-2 WHERE id_msg IN(4,3,1)

Je suis arrivé à ce genre de code, cela me supprime que la première valeur.

$del = str_replace( '|', ',', $_GET['del']); // pdo[':del'] = 1,2,3,4,5
$sql    = "UPDATE messagerie SET visible=visible-2 WHERE id_msg IN(:del)";
$sth    = $dbh->prepare($sql);
$sth->bindValue(':del', $del, PDO::PARAM_STR);
$sth->execute();

//ou

$pdo[':del'] = str_replace( '|', ',', $_GET['del']); // pdo[':del'] = 1,2,3,4,5
$sql    = "UPDATE messagerie SET visible=visible-2 WHERE id_msg IN(:del)";
$sth    = $dbh->prepare($sql);
$sth->execute($pdo);
unset( $pdo[':del'] );

 

Merci pour votre aide

#4 Re : Forum Général PHP » usurpation de session » 11-06-2012 08:51:42

Ou est ce que tu teste le mot de passe ?


$sqlinsc = "SELECT id FROM matable WHERE mel = '$mel' AND mdp !=''";
 

Tu vérifie juste que le mot de passe ne soit pas une chaine vide.

$sqlinsc = "SELECT id FROM matable WHERE mel = '$mel' AND mdp ='$mdp'";
 

Ne pas oublier addslashes si les magicquotes ne sont pas activées.

#5 Re : Forum Général PHP » Empêcher la répétition d'un élément tirer aléatoirement » 09-06-2012 09:12:46

Je me rend compte que je ne connaissais pas le try/catch ainsi que pdo. Va falloir que je me mette à jour...

Sinon je ferai comme ça :


<?php

session_start();

try {

  $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;

  $bdd = new PDO('mysql:host=mysql51-57.perso;dbname=', '', '', $pdo_options);

  $reponse = $bdd->query('SELECT id FROM textealeatoire WHERE id != "'.$_SESSION['id'].'" ORDER BY rand() LIMIT 1,1');

  if (isset($_SESSION['id']))

    $_SESSION['id'] = array();

  $i = 0; //Valeur de la clé

  while ($donnees = $reponse->fetch()) {

    $_SESSION['id'][$i++] = $donnees['id'];

    echo $donnees['id'];

  }
  $reponse->closeCursor();

}

catch(Exception $e) {

  die('Erreur : '.$e->getMessage());
}
?>

 

#6 Re : Forum Général PHP » Empêcher la répétition d'un élément tirer aléatoirement » 09-06-2012 09:12:46

Bonjour,

8. $reponse = $bdd->query('SELECT *, id FROM textealeatoire WHERE id != "'.$_SESSION['id'].'" ORDER BY rand() LIMIT 1,1');

SELECT *, id

Pas bien !

http://phpdebutant.org/article152.php

#7 Re : Forum Général PHP » Souci avec EasyPHP » 03-06-2012 18:21:42

Bonjour,

Il vaut mieux poster sur le forum d'easyphp qui sera peut être plus adapté pour t'apporter une réponse.

Je ne saurais t'aider, cela fait des années que j'ai remplacé easyphp par wampserver...

Pied de page des forums

Propulsé par FluxBB