SELECT avec une condition

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 : SELECT avec une condition

Re: SELECT avec une condition

par @rthur » 21 août 2016, 00:36

fais un export de la structure de ta table et tu verras qu'il y a une clé primaire dessus

Re: SELECT avec une condition

par yoann38 » 20 août 2016, 13:49

primary n'est pas coché pourtant

Re: SELECT avec une condition

par @rthur » 20 août 2016, 01:32

c'est l'index clé primaire / PRIMARY qui pose problème

Re: SELECT avec une condition

par yoann38 » 19 août 2016, 18:25

Structure de la table:

id_loisir int(11)
id_simply_user int(11)

C'est pas bon ca ?

Re: SELECT avec une condition

par @rthur » 19 août 2016, 18:16

Parce que tu as mis une clé primaire sur un champ qui doit donc être unique.
Or tu as déjà un enregistrement avec pour valeur "34-484291"

Re: SELECT avec une condition

par yoann38 » 19 août 2016, 18:15

Oui c'est ce que j'essai de faire ....
l'insertion marche pas de problème mais si il a déjà cet annonce en favoris j'ai le message :

Cette annonce fait déjà partie de vos favoris
Warning: PDOStatement::execute(): SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '34-484291' for key 'PRIMARY' in /home/www/lasortie/add_favoris.php on line 24
Problème lors de l'insertion

Je ne vois pas pourquoi

Re: SELECT avec une condition

par or 1 » 19 août 2016, 18:04

le test à faire en sql, c'est : est-ce que l'utilisateur a déjà cet id dans ces favoris ?
si oui, alors 'Cette annonce fait déjà partie de vos favoris'
si non, alors insertion.

SELECT avec une condition

par yoann38 » 19 août 2016, 17:57

Salut voilà j'avais un deuxième soucis pour aujourd'hui
J'ai donc un script qui permet d'ajouter des annonces dans ses favoris.
L'insertion marche bien et j'affiche un message comme quoi l'annonce existe déjà en favoris pour cet utilisateur mais s'affiche en même temps à ce moment la:
Warning: PDOStatement::execute(): SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '34-484291' for key 'PRIMARY' in /home/www/lasortie/add_favoris.php on line 24
Problème lors de l'insertion


Mon code:
<?php
session_start();
include("include/conndb.php");

if(!empty($_SESSION['pseudo']) && !empty($_SESSION['membre']['id_simply_user'])) {
	
$num_favoris = $_GET['idfav'];
$utilisateur = $_SESSION['membre']['id_simply_user'];

$sql = "SELECT * FROM favoris WHERE id_simply_user = '".$_SESSION['membre']['id_simply_user']."'";
$req = $bdd->query($sql);

while($ligne = $req->fetch(PDO::FETCH_ASSOC)){  
if ($num_favoris == $ligne['id_loisir']) {
	echo  'Cette annonce fait déjà partie de vos favoris';
		
}else{
// Insertion
$req = $bdd->prepare('INSERT INTO favoris (id_simply_user, id_loisir)  VALUE (:id_simply_user, :id_loisir)');	
$req->execute(array(
				  'id_simply_user'=>$utilisateur,
				  'id_loisir'=>$num_favoris	  
				  ))
				  or die('Problème lors de l\'insertion');
}	}				
header("Location:favoris.php");

}else{
	header("Location: mon-compte.php");
}

?>
Merci à vous