[Résolu] Requete SQL sur tous les enregistrements sauf 1 ?
Dernière réponse : dans Programmation
Bonsoir,
J'ai un problème de requête. En effet, lorsque l'on consulte la dernière actualité du moment, cela l'affiche et en dessous, il y a la possibilité de consulter d'autres actualités. Mais je voudrais faire une requête qui sélectionne tous les enregistrements sauf celui qui est affiché dans la page au-dessus.
Voici mon code :
Je ne sais pas comment procéder...
Merci de votre aide !
J'ai un problème de requête. En effet, lorsque l'on consulte la dernière actualité du moment, cela l'affiche et en dessous, il y a la possibilité de consulter d'autres actualités. Mais je voudrais faire une requête qui sélectionne tous les enregistrements sauf celui qui est affiché dans la page au-dessus.
Voici mon code :
<?php include ("modules/module_connexion_base.php"); $connexionMYSQL = mysql_connect("*****","******","****"); if ($connexionMYSQL)//Connexion au serveur manqué { $activationBD = mysql_select_db("*****", $connexionMYSQL); if ($activationBD)//Activation de la base de données raté { $id=$_GET['id']; $sql = "SELECT * FROM `actualites` WHERE `id-actualites`=".$id; $requete = mysql_query($sql) or die(mysql_error()); $nbResultats = mysql_num_rows($requete);//compte le nombre de ligne $row = mysql_fetch_array($requete); ?> <?php echo "<center><strong>".$row['titre']."</strong></center><br />"; echo "<strong>Date de sortie</strong> : ".$row['date_sortie']."<br/><br />"; ?> <div style="{float:right;}"> <img src="<?php echo $row['image'];?>" alt="Image du film" title="Image du film"/> </div><br /> <div id="background_resume"> <?php echo $row['resume']; ?> </div> <br /> <strong>Informations diverses </strong><br /> <div id="info"> <?php echo $row['titre-info']."<br />"; echo $row['info']; ?> </div> <strong>Bande-annonce</strong> <object width="425" height="344"><param name="movie" value=<?php echo $row['video']; ?>></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src=<?php echo $row['video']; ?> type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object> <?php } } ?> <hr /> /* C'est à partir d'ici qu'il faudrait que la requête change !!!! */ <strong>Les autres actualités de ce mois</strong><br /> <?php $sql1 = "SELECT * FROM `actualites`"; $requete1 = mysql_query($sql1); $nbResultats1 = mysql_num_rows($requete1);//compte le nombre de ligne while ($row1 = mysql_fetch_array($requete1)){ if ($nbResultats1 == 0) { echo "Il n'y a pas d'autres actualités pour ce mois-ci.<br />"; } else { echo "<a href=\"index.php?action=action_actualites&id=".$row1['id-actualites']."\">"; echo $row1['titre']."</a><br />"; } } ?>
Je ne sais pas comment procéder...
Merci de votre aide !
Autres pages sur : resolu requete sql enregistrements
Lassé par la pub ? Créez un compte
Salut Blasil64!
EN thérie la News affichée sur la page de ton site correspond à la dernière entrée.
Tu affiches donc la dernière donnée enregistrée dans la base par un DESC LIMIT.
SELECT *
FROM ma_table
ORDER BY id DESC LIMIT 0,1
Cette requête affichera l'ensemble des colonnes de la table "ma_table" de manière décroissante avec une limite ce qui aura pour but d'afficher la dernière news crée.
J'ai mis "id" comme colonne pour l'organisation, tu peux très bien mettre le numéro de la colonne c'est à dire 1 (puisque l'id correspond à la clé primaire).
Je te laisse un peu chercher
si vraiment tu n'y arrives pas tiens nous au courant!
++
EN thérie la News affichée sur la page de ton site correspond à la dernière entrée.
Tu affiches donc la dernière donnée enregistrée dans la base par un DESC LIMIT.
SELECT *
FROM ma_table
ORDER BY id DESC LIMIT 0,1
Cette requête affichera l'ensemble des colonnes de la table "ma_table" de manière décroissante avec une limite ce qui aura pour but d'afficher la dernière news crée.
J'ai mis "id" comme colonne pour l'organisation, tu peux très bien mettre le numéro de la colonne c'est à dire 1 (puisque l'id correspond à la clé primaire).
Je te laisse un peu chercher
si vraiment tu n'y arrives pas tiens nous au courant!++
Bah oui ... mais vas tu lire la doc parfois et ce que fait strlen() ... copier coller c'est bien mais il faut comprendre ce que l'on fait. Et j'ai expliqué ce que ca faisait.
en l'occurence, tu passes un paramètre id de type numéric donc tu vérifies bien qu'il est numérique avec (is_numeric())
le ! sert à dire non. Ce qui, le test donne en français, si la variable id donné en url n'est pas de type numérique.
Je note au passage que la requête SELECT * FROM `actualites` ne donne absolument pas les actualités du mois mais l'ensemble des actualites dans ta table depuis la nuit des temps. Et à voir les ` je suppose que tu copie sechement tes requêtes depuis PHPmyAdmin ... Quand on développe pour du web, c'est bien sympa d'aprendre PHP mais il faut aussi apprendre le SQL.
Bon, mes postes sont toujours aussi négatif mais c'est comme ça que tu y arriveras (si tu copies/colles pas).
en l'occurence, tu passes un paramètre id de type numéric donc tu vérifies bien qu'il est numérique avec (is_numeric())
if(!is_numeric($_GET['id'])) { trigger_error(............) }
le ! sert à dire non. Ce qui, le test donne en français, si la variable id donné en url n'est pas de type numérique.
Je note au passage que la requête SELECT * FROM `actualites` ne donne absolument pas les actualités du mois mais l'ensemble des actualites dans ta table depuis la nuit des temps. Et à voir les ` je suppose que tu copie sechement tes requêtes depuis PHPmyAdmin ... Quand on développe pour du web, c'est bien sympa d'aprendre PHP mais il faut aussi apprendre le SQL.
Bon, mes postes sont toujours aussi négatif mais c'est comme ça que tu y arriveras (si tu copies/colles pas).
Non désolé je ne copies pas phpMyAdmin. C'est juste que mon site est récent et pour le moment je n'ai pas pensé à tous encore. Je sais que arrivé au mois prochain, il va falloir que je trouve une requête qui classe par date ou quoi. J'y ai pensé mais pas réfléchi !
Je sais que le ! sert à ça. Après je ne connais pas tous et j'avoue que ça me gave un peu de lire mais je sais qu'il faut le faire !
Ne t'inquiète pas pour ta négativité il faut de tout partout. En tout cas merci de ton aide !
EDIT :
Et en sachant que ma variable c'est lettre que je récupère et qu'elle peut soit être '0' (zéro) soit 'a' ou 'b' ou ... ou 'z' ???
Je sais que le ! sert à ça. Après je ne connais pas tous et j'avoue que ça me gave un peu de lire mais je sais qu'il faut le faire !
Ne t'inquiète pas pour ta négativité il faut de tout partout. En tout cas merci de ton aide !
EDIT :
Et en sachant que ma variable c'est lettre que je récupère et qu'elle peut soit être '0' (zéro) soit 'a' ou 'b' ou ... ou 'z' ???
Niveau sécurité, j'ai trouvé cette fonction sympathique :
Le problème est que ça m'affiche ça sur la page :
Et ensuite ça m'affiche tous les films présent dans ma table au lieu de ce qui correspondent à la lettre.
J'ai testé 'strlen' mais ça me renvoit 1 et du coup ça ne m'affiche rien sur la page...
[EDIT] : Au niveau de la requête, puis-je faire un truc du genre :
Ou les '...' serait un truc du genre : trouve moi tous sauf le max d'id-actualites.
Merci de votre aide !
function securite_bdd($string) { // On regarde si le type de string est un nombre entier (int) if(ctype_digit($string)) { $string = intval($string); } // Pour tous les autres types else { $string = mysql_real_escape_string($string); $string = addcslashes($string, '%_'); } return $string; } $lettre = securite_bdd($_GET['lettre']);
Le problème est que ça m'affiche ça sur la page :
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in ....mapage.php on line XX
Et ensuite ça m'affiche tous les films présent dans ma table au lieu de ce qui correspondent à la lettre.
J'ai testé 'strlen' mais ça me renvoit 1 et du coup ça ne m'affiche rien sur la page...
[EDIT] : Au niveau de la requête, puis-je faire un truc du genre :
SELECT * FROM actualites WHERE `id-actualites` = (SELECT ...)
Ou les '...' serait un truc du genre : trouve moi tous sauf le max d'id-actualites.
Merci de votre aide !
Lassé par la pub ? Créez un compte
- Contenus similaires :
- SolutionsExtraire tous les enregistrements identiques d’un même champ en sql
- Solutions[VBA] Erreur requete SQL et cellules
- Solutions[VBA] Probleme requete SQL
- Solutions[VBA] probleme requete SQL
- Solutions[VBA] requete SQL
- ForumRequête SQL pour 2 tables
- SolutionsRequete PHP selon 2 tables SQL avec id commun
- SolutionsRequete SQL
- Forum[sql] Afficher les 3 derniers enregistrements d'une BDD
- Voir plus