Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Récupérer les donnée SQL de Free.fr sous forme de tableau


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Récupérer les donnée SQL de Free.fr sous forme de tableau
    Bonsoir à tous,

    Je souhaite récupérer les données de ma base SQL Free.fr afin de pouvoir les traiter dynamiquement.
    J'ai un code qui fonctionne afin d'ajouter des entrées mais pas celui pour les récuprer :

    Ajouter des entrées dans ma BDD:

    connexion.php

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <?
    if( $_POST )
    {
      $con = mysql_connect("sql.free.fr","Serv","MonMotDePasse");
     
      if (!$con)
      {
        die('Could not connect: ' . mysql_error());
      }
     
      mysql_select_db("Serv", $con);
     
      $users_name = $_POST['name'];
      $users_email = $_POST['email'];
      $users_comment = $_POST['message'];
     
      $users_name = mysql_real_escape_string($users_name);
      $users_email = mysql_real_escape_string($users_email);
      $users_comment = mysql_real_escape_string($users_comment);
     
      $query = "
      INSERT INTO `Serv`.`welcome` (`Name`, `Email`, `Message`) VALUES ('$users_name', '$users_email', '$users_comment');";
     
      mysql_query($query);
     
      echo "<h2>Thank you for your Comment!</h2>";
     
      mysql_close($con);
    }
    ?>


    Ce code fonctionne parfaitement pour insérer du code depuis un formulaire vers la base de donnée.

    Maintenant j'ai ce code afin d'afficher les données sous forme de tableau mais qui ne fonctionne pas :
    index.html

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    <!DOCTYPE HTML>
    <html>
    	<head>
    		<title>Table with database | </title>
     
    	</head>
    	<body >
     
    		<table>
    			<tr>
    				<th>Name</th>
    				<th>Email</th>
    				<th>Message</th>
    			</tr>
    		<?php
    		$conn = mysqLi_connect("sql.free.fr","Serv","MonMotDePasse","welcome");
    		if ($conn-> connect-error) {
    			die("Connection failed:".$conn-> connect_error);
    		}
     
    		$sql = "SELECT Name, Email, Message from welcome";
    		$result = $conn-> query($sql);
     
    		if ($result-> num_rows >0) {
    			while($row = $result-> fetch_assoc()){
    				echo "<tr><td>".$row["id"]."</td><td>". $row[Name] ."</td><td>". $row["Email"] ."</td></tr>";
    			}
    		echo"</table>";
    		}
    		else {
    			echo "0 Results";
    		}
     
    		$conn-> close()
    		?>
    		</table>					
    </body>
    </html>


    Pouvez-vous m'aider à finaliser ce code svp ?

  2. #2
    Membre confirmé
    Quel est le message d'erreur ?

  3. #3
    Invité
    Invité(e)
    Bonjour,

    STOPPE tout-de-suite !!

    • ton 1er script utilise mysql_, qui est OBSOLETE
    • le 2ème utilise mysqli_, qui est surtout destiné à ceux qui ont déjà un site en mysql_ à convertir

    Attention à ne pas copier-coller des bouts de code à droite à gauche, sans comprendre...


    -> Utilise PDO !


  4. #4
    Membre à l'essai
    Merci pour vos réponses.

    Est-il possible d’exécuter une connexion PDO avec free ? J'ai lu par ci par la que la connexion n'était pas possible.
    Pouvez-vous confirmer et éventuellement donner un exemple ?
    Un moyen de tester rapidement la connexion a SQL ?

    Merci

  5. #5
    Invité
    Invité(e)
    1- Je t'ai mis 2 liens.

    2- Quant à free.fr, PDO est disponible.

  6. #6
    Membre à l'essai
    J'ai essayé différentes méthode pour me connecter à free en PDO, mais rien n'y fait, je n'y arrive pas.

    Voici mon connexion:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <?php
     
    $serveur = 'sql.free.fr';
     
    $login = 'MONLOGIN';
     
    $mot_de_passe = 'MONMOTDEPASSE';
     
    $nom_bd = 'MONLOGIN';
     
     
     
    // Connexion à la base de données
     
    try
     
    {
     
    $bdd = new PDO("mysql:host=$serveur;dbname=$nom_bd;charset=utf8", $login, $mot_de_passe);
     
    }
     
    catch(Exception $e)
     
    {
     
    die('Erreur : '.$e->getMessage());
     
    }
     
    echo "connection ok"
     
    ?>


    J'ai aussi essayé comme cela:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
     
    define('SS_DB_NAME', 'MONLOGIN');
    define('SS_DB_USER', 'MONLOGIN');
    define('SS_DB_PASSWORD', 'MONMOTDEPASSE');
    define('SS_DB_HOST', 'sql.free.fr');
     
    $dsn	= 	"mysql:dbname=".SS_DB_NAME.";host=".SS_DB_HOST."";
    $pdo	=	"";
    try {
    	$pdo = new PDO($dsn, SS_DB_USER, SS_DB_PASSWORD);
    }catch (PDOException $e) {
    	echo "Connection failed: " . $e->getMessage();
    }
    $db 	=	new Database($pdo);
    ?>

    Je précise que ce code ci fonctionne très bien sous WAMP.

    Et voici l'erreur renvoyée. :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    Parse error: syntax error, unexpected '{' in /mnt/109/sda/5/c/MONLOGIN/config.php on line 17:

  7. #7
    Invité
    Invité(e)
    Bonjour,

    je viens de tester, et je confirme : PDO fonctionne sur free.fr (la preuve).
    Par contre, c'est localhost chez free.fr :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    define('SS_DB_NAME', 'MONLOGIN');
    define('SS_DB_USER', 'MONLOGIN');
    define('SS_DB_PASSWORD', 'MONMOTDEPASSE');
    define('SS_DB_HOST', 'localhost'); // localhost chez free.fr


    Ou, avec le code de connexion donné ici :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    <?php
    // © Jérome Réaux : http://j-reaux.developpez.com - https://www.jerome-reaux-creations.fr
    // ------------------------------------------------------------
    // Connexion à la base de données
    // ------------------------------------------------------------
    if( !function_exists('my_pdo_connexxion') )
    {
        function my_pdo_connexxion()
        {
            // ---------
            $hostname    = 'localhost';         // voir hébergeur ou "localhost" en local (et chez free.fr)
            $database    = 'MONLOGIN';     // nom de la BdD
            $username    = 'MONLOGIN';             // identifiant ("root" en local)
            $password    = 'MONMOTDEPASSE';                 // mot de passe (vide en local)
            // ---------
            // connexion à la base de données
            try {
                // chaine de connexion (DSN)
                $strConn     = 'mysql:host='.$hostname.';dbname='.$database.';charset=utf8';    // UTF-8
                $extraParam    = array(
                    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,        // rapport d'erreurs sous forme d'exceptions
                    PDO::ATTR_PERSISTENT => true,                         // Connexions persistantes
                    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,     // fetch mode par defaut
                    PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"    // encodage UTF-8
                    );
                // Instancie la connexion
                $pdo = new PDO($strConn, $username, $password, $extraParam);
                return $pdo;
            }
            // ---------
            catch(PDOException $e){
                $msg = 'ERREUR PDO connexion...' . $e->getMessage(); die($msg);
                return false;
            }
            // ---------
        }
    }
    // --------------------------------
    $pdo    = my_pdo_connexxion();
    // --------------------------------------------------------------

  8. #8
    Membre à l'essai
    Merci Jérome mais vraiment, rien à faire cela ne fonctionne pas !

    J'ai copié collé le second code et ajouté mes données de connexion mais rien à faire ...

    Je t'envoie mon code exact par MP pour voir de toi même.

    Es-ce possible que je doive activer un paramètre chez free pour activer PDO?

    Merci d'avance.

  9. #9
    Invité
    Invité(e)
    1- Le souci est ici :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    $database    = 'MONLOGIN';

    En fait, NON : ce n'est pas le même que le login.
    Il faut mettre le nom de la base de données :

    • Vas sur tes "Pages Perso" : https://subscribe.free.fr/login/
    • Ensuite, clique sur "Accéder et gérer votre base de données MySQL"
      tu accèdes alors à phpMyDamin, où le nom de la BDD est inscrite en haute à gauche.



    2-Si tu veux aussi utiliser des $_SESSION, il faut créer un dossier "sessions" à la racine du site.

  10. #10
    Membre à l'essai
    Chez moi, la base de donnée correspond bien au nom du login (image en MP). L'erreur est peut-être ailleurs...

  11. #11
    Invité
    Invité(e)
    1- OK. (chez moi, ils sont différents )
    Donc, ça devrait fonctionner.

    2- Vérifie les infos :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    <?php echo phpinfo(); ?>

    • version de PHP ?
    • PDO : enabled ?


    Sinon... je ne vois pas.

  12. #12
    Invité
    Invité(e)
    Pour la version de PHP :

    ajouter un fichier .htaccess :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <IfDefine Free>
    php56 1
    </IfDefine>
    Options -Indexes

    N.B. à priori, PHP7.x n'est pas encore disponible.

  13. #13
    Membre à l'essai
    Super!

    Ça fonctionne parfaitement!

    Merci Beaucoup!

  14. #14
    Membre expert
    et en PHP Orienté objet, il y a cette classe : https://www.developpez.net/forums/blogs/32058-rawsrc/b9083/pdoplusplus-ppp-nouvelle-facon-dutiliser-pdo/
    Simple à utiliser, vu que j'y arrive ! (Elle est géniale)
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell