Mettre le contenu de plusieurs id sur une page

Fermé
sebs - 14 oct. 2016 à 11:48
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 16 oct. 2016 à 01:05
Bonjour à toutes la communauté CCM
J'aimerais mettre le contenu d'une table sql sur une page ATTENTION pas dans un tableau avec affichage de résultat etc juste du texte entre des balises
je m'explique j'aimerais que ce contenu soit modifiables à souhait pour le client.
Mais le soucis c'est que je n'ai pas envie de mettre de code html dans la base mysql
Donc facile pour afficher le contenu sur une page mysql_query('SELECT * FROM Contenu where id like"8"') par exemple.
Puis je fait un echo du contenu.
Mais comment faire cela avec plusieurs id sur la meme page?
Merci a vous :)


A voir également:

2 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
14 oct. 2016 à 12:41
Bonjour,

Si tu connais les ID à afficher, tu utilises dans le WHERE de ta requête un IN
where id IN (1,2,8,12)

et tu boucles surle résulat obtenu par ta requête dans ton script PHP.

NB: (pour info) Attention ... l'opérateur LIKE sert à faire des recherches partielles...
Dans ton exemple de code , tu aurais du utiliser le signe égale
 WHERE id = '8'

0
hi jordane merci de ta réponse,
J'y avais déjà songé à tout ceci, mais c'est plutot le code php qui permettrais de mettre en oeuvre l'écho de l'id ou je galere je me suis surement planté dans mon code
bref je te montre ne rigole pas :D
$req = mysql_query('select * from Contenu_site Where id In (1,2,3')) ;
while($dnn = mysql_fetch_array($req));
$a==($dnn['contenu where id ="1" ']);
{
?>

<? echo $a; ?>
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
Modifié par jordane45 le 15/10/2016 à 12:08
Le double == set a faire des comparaisons
Pour affecter une valeur à une variable il ne faut en mettre qu'un seul

Il faut aussi le mettre dans les accolades et retirer le point virgule de la ligne du while

While (condition)
{
$a = truc ;
Echo $a ;
}
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024
15 oct. 2016 à 12:09
En complément
https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
0
D'accord avec toi,
Mais comment lui expliquer le code PDO qui lui permettrais d'obtenir ce qu'il veut, car j'avoue que c'est tentant de le savoir
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > flemme
15 oct. 2016 à 18:01
Ouais.. en gros.. tu veux que je te fasse le code....
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
Modifié par jordane45 le 15/10/2016 à 18:03
Voila :

Donc voici :

Dans un fichier nommé (par exemple) cnxBdd.php tu places le code de connexion à ta BDD
(Ainsi tu n'auras qu'à l'inclure dans tes pages où tu en as besoin au lieu de réécrire à chaque fois le code de connexion)
Il contient le code suivant :
<?php
// FICHIER :  cnxBdd.php
//---------------------------------------------------------------------------------//
// Variables à changer 
//---------------------------------------------------------------------------------//
$host = "localhost";
$user = "user";
$pwd = "password";
$bddName = "Nom_de_ta_bdd";

//---------------------------------------------------------------------------------//
//Connexion à la BDD en PDO
//---------------------------------------------------------------------------------//
try{
$bdd =new PDO('mysql:host=$host; 
 dbname=$bddName; charset=utf8', '$user', '$pwd');
 $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
} catch(PDOException $e) {
 // En cas d'erreur lors de la connexion
    die('Erreur de connexion à la BDD : ' . $e->getMessage());
}
?>


Ensuite, dans ta page, tu peux faire comme ceci pour récupérer les infos souhaitées
<?php
//---------------------------------------------------------------------------------//
//On active l'affichage des erreurs PHP
//---------------------------------------------------------------------------------//
 error_reporting(E_ALL);

//---------------------------------------------------------------------------------//
// On inclus la page de connexion à la bdd
//---------------------------------------------------------------------------------//
 require_once "cnxBdd.php";


//---------------------------------------------------------------------------------//
// LA REQUETE
//---------------------------------------------------------------------------------//

//préparation de la requête 
 $sql = "SELECT * FROM Contenu_site WHERE id IN (1,2,3)";

 //Execution de la requete
 try{
  $requete = $bdd -> prepare($sql) ;
  $requete->execute() ;
 }catch(Exception $e){
  // en cas d'erreur :
   echo " Erreur ! ".$e->getMessage();
   echo " Les datas : " ;
  print_r($datas);
 }

 // on place le résultat de la requête dans un array
 $mesDonnees = $requete->fetchaAll();

 //on vérifie que le tableau n'est pas vide
 if(!empty($mesDonnees)){
   // Maintenant on boucle sur l'array pour afficher les données
   foreach($mesDonnees as $R ){
     print_r($R); // ne connaissant pas la structure de ta table je ne peux pas faire mieux....
     // par exemple on peut afficher les ID :
      echo "<br> ID = " . $R['id'];
   }
 }else{
   echo "le tableau 'mesDonnees' est vide !";
 }

 
//---------------------------------------------------------------------------------//
// FIN DU CODE
//---------------------------------------------------------------------------------// 
?>


Cordialement, 
Jordane                                                                 
0
Hi Jordane,
Je viens de tenter ton code, mais celui ci me retourne des erreurs.
Etant donné que je ne connais que le mysql, je galere un peu. Déjà bien le merci pour ton code, je ne t'en demandais pas autant. Ensuite, merci de ton aide, car tu as l'air de bien gerer le truc.
Voici l'erreur

Warning: PDO::__construct(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/carat179/public_html/cnxBdd.php on line 16
Erreur de connexion à la BDD : SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known

Peut etre est ce le fournisseur qui ne prend pas cela en charge? J'ignore sur ce coup je suis assez perdu
merci encore

Je pensais faire la connexion avec mysqli je gere plus ou moins sans aucun soucis :D
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > sebs
16 oct. 2016 à 01:05
Je pense savoir :
J'ai fait une erreur de copier coller.... (j'ai utilisé de simples quotes au lieu de doubles...
$bdd =new PDO('mysql:host=$host; 
 dbname=$bddName; charset=utf8', '$user', '$pwd');

A remplacer par :
$bdd =new PDO("mysql:host=$host; 
 dbname=$bddName; charset=utf8", $user, $pwd);

ou au pire, le temps des tests histoire de voir si les données sont correctement mises dans le code :
$dsn = "mysql:host=$host;  dbname=$bddName; charset=utf8" ;
echo $dsn ; //le temps des tests
$bdd =new PDO($dsn,$user;$pwd);
0