Menu

Se connecter sql [Résolu]

- - Dernière réponse :  Zero - 12 avril 2019 à 10:12
Bonjour,

j'ai mis

<?php
try
{
    $pdo = new PDO('mysql:host=legtux.org;dbname=sitenom', 'mdp', 'sitenom');
}
catch(Exception $e)
{
    echo 'Echec de la connexion à la base de données';
    exit();
}?>



et il m'affiche

Echec de la connexion à la base de données';


coment pon peut faire pour se connecter à la base sql

Configuration: Windows / Chrome 73.0.3683.86
Afficher la suite 

Votre réponse

7 réponses

Messages postés
25214
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 avril 2019
1943
merci, mais ca n'a pas marché

sinon tempis je me debrouilerais sans le sql ;)
Commenter la réponse de jordane45
Messages postés
25214
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 avril 2019
1943
0
Merci
Ça n'a pas marché... c'est à dire ???
Tu as un message d'erreur ? Lequel ?
Montre nous ton code modifié...et COMPLET.

Et puid... indique nous si ton Script Est sur un serveur web ou tu es en local sur ton ordi ?
c'est bon, ca fonctionne ;)

mais j'ai une erreur

Notice: Undefined variable: donnees in /var/www/legtux.org/users/site/www/V1/news/index.php on line 51


<?php echo $donnees['titre']; ?>


à mon avis, il faut changé $donnees par quoi déjà, je ne me rappelle plus ;)
jordane45
Messages postés
25214
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 avril 2019
1943 > justine -
Et tu penses que je suis devins ou que j'ai la capacité de voir ton écran ???
Merci de poster ton code COMPLET... sans quoi je ne pourrais pas t'aider.
lol

<?php
try{
$bdd =new PDO('mysql:host=localhost;
 dbname=site; charset=utf8', 'site', 'mdp');
// Activation des erreurs PDO
 $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH
 $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
} catch(PDOException $e) {
    die('Erreur : ' . $e->getMessage());
}?>



<div class="news">
    <h3>
        <?php echo $donnees['titre']; ?>
        <em>le <?php //echo date('d/m/Y à H\hi', $donnees['timestamp']); ?></em>
    </h3>
    
    <p>
    <?php
    // On enlève les éventuels antislashs, PUIS on crée les entrées en HTML (<br />).
    $contenu = nl2br(stripslashes($donnees['contenu']));
    echo $contenu;
    ?>
jordane45
Messages postés
25214
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 avril 2019
1943 -
Et tes données.... elles viennent d'où ?
D'un formulaire html peut-être ?
Et tu les envoies en POST ou en GET ?

A moins que les données soient présentent dans la base de données... et donc que tu essayes de les y récupérer ? Mais dans ce cas tu as oublié une partie du code... celui de la requête....
ca viens directement dan la base sql le titre contenu etc...
mais après ca viendra sur un formulaire

mais avant j'ai mis des news sur le sql afin d'afficher mais ca n'a pas affiché
Commenter la réponse de jordane45
Messages postés
25214
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 avril 2019
1943
0
Merci
ça vient de la base ..... donc... il te manque la partie où tu fais la requête SELECT pour récupérer ces données....
Commenter la réponse de jordane45
0
Merci
j'ai mis tout ce code

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>Liste des news</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <style type="text/css">
        h2, th, td
        {
            text-align:center;
        }
        table
        {
            border-collapse:collapse;
            border:2px solid black;
            margin:auto;
        }
        th, td
        {
            border:1px solid black;
        }
        </style>
    </head>
    
    <body>
 
<h2><a href="rediger_news.php">Ajouter une news</a></h2>
<?php
try{
$bdd =new PDO('mysql:host=localhost;
 dbname=site; charset=utf8', 'site', 'mdp');
// Activation des erreurs PDO
 $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH
 $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
} catch(PDOException $e) {
    die('Erreur : ' . $e->getMessage());
}
//-----------------------------------------------------
// Vérification 1 : est-ce qu'on veut poster une news ?
//-----------------------------------------------------
if (isset($_POST['titre']) AND isset($_POST['contenu']))
{
    $titre = addslashes($_POST['titre']);
    $contenu = addslashes($_POST['contenu']);
    // On vérifie si c'est une modification de news ou non.
    if ($_POST['id_news'] == 0)
    {
        // Ce n'est pas une modification, on crée une nouvelle entrée dans la table.
        mysql_query("INSERT INTO news VALUES('', '" . $titre . "', '" . $contenu . "', '" . time() . "')");
    }
    else
    {
        // On protège la variable "id_news" pour éviter une faille SQL.
        $_POST['id_news'] = addslashes($_POST['id_news']);
        // C'est une modification, on met juste à jour le titre et le contenu.
        mysql_query("UPDATE news SET titre='" . $titre . "', contenu='" . $contenu . "' WHERE id='" . $_POST['id_news'] . "'");
    }
}
 
//--------------------------------------------------------
// Vérification 2 : est-ce qu'on veut supprimer une news ?
//--------------------------------------------------------
if (isset($_GET['supprimer_news'])) // Si l'on demande de supprimer une news.
{
    // Alors on supprime la news correspondante.
    // On protège la variable « id_news » pour éviter une faille SQL.
    $_GET['supprimer_news'] = addslashes($_GET['supprimer_news']);
    mysql_query('DELETE FROM news WHERE id=\'' . $_GET['supprimer_news'] . '\'');
}
?>
<table><tr>
<th>Modifier</th>
<th>Supprimer</th>
<th>Titre</th>
<th>Date</th>
</tr>
<?php
$retour = mysql_query('SELECT * FROM news ORDER BY id DESC');
while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news.
{
?>
<tr>
<td><?php echo '<a href="rediger_news.php?modifier_news=' . $donnees['id'] . '">'; ?>Modifier</a></td>
<td><?php echo '<a href="liste_news.php?supprimer_news=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
<td><?php echo stripslashes($donnees['titre']); ?></td>
<td><?php echo date('d/m/Y', $donnees['timestamp']); ?></td>
</tr>
<?php
} // Fin de la boucle qui liste les news.
?>
</table>
</body>
</html>


il me dit

Fatal error: Uncaught Error: Call to undefined function mysql_query() in /var/www/legtux.org/users/site/www/V1/news/index.php:81 Stack trace: #0 {main} thrown in /var/www/legtux.org/users/site/www/V1/news/index.php on line 81
Commenter la réponse de justine
0
Merci
Hello,

Je pense que tu suis "bêtement" plusieurs tutos sans trop savoir ce que tu fais...
mysql_query (obsolète) et PDO ne vont pas ensemble.
Essaie plutôt :

$stmt = $bdd->prepare("SELECT * FROM news ORDER BY id DESC");
if ($stmt->execute()) {
  while ($donnees = $stmt->fetchAll(PDO::FETCH_ASSOC)) {
    // affichage ici
  }
}


OU
$stmt = $dbh->prepare("SELECT * FROM news ORDER BY id DESC");
$stmt ->execute();
$result = $stmt ->fetchAll(PDO::FETCH_ASSOC);
// print_r($result);
// ici un foreach ou un while


A adapter pour ton cas

D'autres exemples ici :
https://www.php.net/manual/fr/pdo.prepared-statements.php
Il n'y a pas de codes mieux que les autres, juste de bonnes pratiques.
Personnellement, j'utilise le 3 pour garder le concept "objet" dans mon code.

Personne ne change ton code, mais les langages évoluent. Il est normal que tes requêtes fonctionnaient en 2011 mais plus aujourd'hui, les versions de PHP changent et les anciennes ne sont plus supportées.

https://fr.wikipedia.org/wiki/PHP
ca marche mais je verrais après

car là, il commence par afficher id 3 au lieu du id 1

je vais voir coment afficher l'ordre de la news ;)
dessoler, j'ai tenter de remettre la date commis faut

echo $donnees['date'];

il affiche

2019-04-11 00:00:00

moi , pour l'instant j'aimerais qui affiche comme ca :

11/042019

comment , je doit le formater

merci et après je met resolu ;)
Pour l'ordre, il faut ASC ( ordre croissant), DESC (décroissant)

Pour la date :

$date = DateTime::createFromFormat('Y-m-d H:i:s', $donnees['date']);
echo $date->format('d/m/Y');


https://www.php.net/manual/fr/datetime.createfromformat.php
merci je me suis fait des petits commentaire asc et dec afin que je saches ceux qu'il fait

pour la date je vais regardé ca de plus pres si un jours je veux afficher aujourdhui et hier

je testerais un peut pour les dates

merci sujet resolut

si un jours j'ai un petit souci avec la date je reviendrais vous demander
Commenter la réponse de Zero
0
Merci
je met le code si quelqu'un veux ;)

<?php
try{
$bdd =new PDO('mysql:host=localhost;
 dbname=site; charset=utf8', 'site', 'mdp');
// Activation des erreurs PDO
 $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH
 $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
} catch(PDOException $e) {
    die('Erreur : ' . $e->getMessage());
}


// la requette pour recuperer les infos à la base sql
// ASC pour afficher dans l'ordre croissant.
// DESC pour l'afficher dans l'ordre decroissant
$stmt = $bdd->prepare('SELECT * FROM news ORDER BY id ASC');


// ensuite on vas afficher les infos de la news
if ($stmt->execute()) {
 while ($donnees = $stmt->fetch(PDO::FETCH_ASSOC)) {
 
 // on affiche le titre 
   echo $donnees['titre'];
   
   // on affiche le contenu
   
   echo $donnees['contenu'];
   
   // on affiche le pseudo
   echo $donnees['pseudo'];
   
   // on affich la date sous forme 01/01/2019
   $date = DateTime::createFromFormat('Y-m-d H:i:s', $donnees['date']);
echo $date->format('d/m/Y'); echo'<br />';
 }
}?>
Commenter la réponse de justine
Commenter la réponse de Zero