Sélectionner toutes les entrées sauf une

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 : Sélectionner toutes les entrées sauf une

par Sékiltoyai » 17 juil. 2007, 18:03

Oui, ou alors, pour éviter de faire faire des trucs inutiles au serveur comme chercher bêtement sur toute la table alors qu'il pourrait utiliser les index, tu peux utiliser '<>' au lieu de 'NOT LIKE'...
Bien sûr il est indispensable de mettre une clé PRIMARY sur id si ce n'est pas déjà fait...

par d0m » 17 juil. 2007, 16:36

Merci pour vos réponses !
Je pensais que NOT IN servait seulement pour trouver une entrée dans une autre table non ?
pas forcement, tu peux l'utiliser pour eviter les valeurs de certains chmaps comme dans ton cas.
Je l'utilise souvent dans mes fonctions de bases de données mysql.

par maelinn » 17 juil. 2007, 16:28

Merci pour vos réponses !

DOm, j'ai essayé ton code mais il me renvoie : supplied argument is not a valid MySQL result resource. Je pensais que NOT IN servait seulement pour trouver une entrée dans une autre table non ?

Par contre, j'ai fait quelques recherches et j'ai réussi à trouver ce que je voulais :D

Pour ceux que ça intéresse, j'ai utilisé la condition NOT LIKE :
$retour = mysql_query("SELECT * FROM livres WHERE auteur_nom='$auteur_nom' AND auteur_prenom='$auteur_prenom' AND id NOT LIKE '" .$_GET['lire']."' ");
		 while ($donnees = mysql_fetch_array($retour))

Merci pour votre aide :o

par d0m » 17 juil. 2007, 15:24

je suppose que tu as un identifiant pour le livre ou un titre, alors dans la clause WHERE tu mets :

Code : Tout sélectionner

AND titre_livre NOT IN ('" .$titre_livre. "') ;" ou AND id_livre NOT IN (" .$id_livre. ");"

par charabia » 17 juil. 2007, 15:21

Je pense que tu peux mettre un ID sur le lien du livre de la fiche. Ensuite dans ta requête tu peux tout simplement dire "où l'ID est différent de la variable passée dans l'URL"

Sélectionner toutes les entrées sauf une

par maelinn » 17 juil. 2007, 15:16

C'est sans doute une question très bête mais je ne sais pas comment faire...

Je fais un site répertoriant des fiches de livres. Je voudrais y ajouter des liens vers tous les livres du même auteur mais sans y mettre le livre de la fiche.

Mon code php :
$retour = mysql_query("SELECT * FROM livres WHERE auteur_nom='$auteur_nom' AND auteur_prenom='$auteur_prenom' ORDER BY titre ");
		 while ($donnees = mysql_fetch_array($retour))
			{
				
				?>
				<p class="listelivre"><b>
				<?php echo '<a href="lire.php?lire=' . $donnees['id'] . '">'; ?>
				<?php echo ($donnees['titre']); ?></a><br>
				</p>
			
				<?php
				
			} // Fin de la boucle
			?>
Existe t-il un filtre à ajouter après where qui serait l'équivalent de "sauf" ? Ou bien dois-je utiliser les conditions ? Et dans ce cas, pourriez-vous me donner une piste à suivre ?

Merci :)