Page 1 sur 1

Erreur PDO toute bête

Posté : 23 janv. 2011, 20:26
par patapin
Bonjour, j'ai un petit soucis. En fait, je cherche à ajouter 1 objet quand on fouille par terre (un petit rpg familliale) mais l'update ne fonctionne pas... J'ai essayer en ne mettant pas +1 mais genre 35, et là, il UPDATE bien...
voici le code de la page :
<?php 
//haute de page
include('structure/header.php');
//menu du site
include 'structure/identifiants.php';
include('structure/menu.php');

$_GET['m'] = (int) $_GET['m'];
$nombre = "";
?>
<div id="texte"><div id="overflow">
							<div class="cadre"><div class="titre"></div><div class="marge_interne">

								<!-- Début de la zone de texte -->
<?php
if($_GET['m'] == 1)
{
?>
<div id="T_ADA">Ici c'est la clairière ! Tu peux y combattre des <br>monstres sauvage.</div>
<table width="700">
          <tr>
            <td><a href="lieu.php?m=1&a=promener" class="TD">se promener</a></td>
            <td><a href="lieu.php?m=1&a=fouiller" class="TD">fouiller par terre</a></td>
            <td><a href="lieu.php?m=1&a=voir" class="TD">scruter les alentours</a></td>
          </tr>
</table>
<br>
	<?php
	$action = (isset($_GET['a']))?htmlspecialchars($_GET['a']):'';
	switch($action)
	{
		case "promener":
		
		break;
		case "fouiller":
		//définition d'un nombre aléatoire
		$min = 0;
		$max = 0; //TEST DONC PAS DE NOMBRE ALEATOIRE
		$trouve = mt_rand($min, $max);
			switch($trouve)
			{
				case "0":
					
					$trouve = "potion de soin";
					$objet = "1";
					$nombre += 1;
					
					$query=$db->prepare('UPDATE sac SET id_objet = :objet, nombre = :nombre WHERE id_membre = :id_membre');
										$query->execute(array(
										'id_membre' => $id,
										'objet' => $objet,
										'nombre' => $nombre
										))or die(print_r($db->errorInfo()));
				break;
			}
		?>
		Tu fouille par terre...<br>
		En fouillant tu trouves <?php echo '<strong>'.$nombre.'</strong> '.$trouve; ?><br><br>
		<?php
		break;
		case "voir":
		
		break;
	}
	?>
<br>
<?php
}
?>
								<!-- Fin de la zone de texte -->

							</div></div>
						</div></div>
<?php
//bas de page
include('structure/footer.php');
?>


Re: Erreur PDO toute bête

Posté : 24 janv. 2011, 02:17
par devlop78
C'et quoi ça ???
$query=$db->prepare('UPDATE sac SET id_objet = <img src="./images/smilies/icon_surprised.gif" alt=":o" title="Surprised" />bjet, nombre = :nombre WHERE id_membre = :id_membre');
                                                                                $query->execute(array(
                                                                                'id_membre' => $id,
                                                                                'objet' => $objet,
                                                                                'nombre' => $nombre
                                                                                ))or die(print_r($db->errorInfo()));

Re: Erreur PDO toute bête

Posté : 24 janv. 2011, 02:43
par moogli
si tu parle du img je pense que c'est du au smiley qui commence par : suivit du o et qui fou la merde avec : objet ?


après je vois pas le soucis, je pense au fait que pdo change la chose en texte plutot que int ?

@+

Re: Erreur PDO toute bête

Posté : 24 janv. 2011, 22:52
par Ryle
Et pourquoi ne pas incrémenter la valeur directement dans la requête sql ?
UPDATE ... SET nombre = nombre + 1, ...