Lire base de donnée à distance avec un html php [Résolu]

Signaler
Messages postés
46
Date d'inscription
samedi 6 avril 2013
Statut
Membre
Dernière intervention
10 juin 2021
-
Messages postés
46
Date d'inscription
samedi 6 avril 2013
Statut
Membre
Dernière intervention
10 juin 2021
-
Bonjour à tous,

Je passe mon Bts SN IR par le cned
Je dois créer une interface web pour mon projet dans 10 jours. Elle doit récupérer les infos d'une base de donnée phpMyAdmin.
Le lycée m'a donné l'adresse ip, utilisateur, mdp et port 3306, j'arrive à me connecter sur la base de données en http mais j'arrive pas à récupérer quoi que ce soit en html php...
J'ai suivi tous les tutos sur le net (où ils utilisent localhost) en remplaçant par mes identifiants rien y fait. Avec ou sans port c'est pareil.Est-ce que vous pourriez m'aider svp...








Configuration: Windows / Chrome 91.0.4472.77

7 réponses

Messages postés
32940
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 juin 2021
3 556
Bonjour
Déjà, pour poster du code sur ce forum, il faut le faire en le collant et en utilisant les balises de code.
Explication à lire entièrement, disponibles ici
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Ensuite, de ce que j'ai pu apercevoir sur tes images, tu utilises l'ancien extension MySQL.
Elle est obsolète il ne fonctionne plus avec les nouvelle version de PHP.
Tu dois donc utiliser mysqli ou PDO.

Bien entendu, pour se connecter à une base de données distante, il faut que le user MySQL dispose des droits nécessaires...

Pour vérifier, tu peux utiliser un logiciel comme heidisql et ainsi, voir si les identifiants fonctionnent à distance.
Si ça ne marche pas, il va falloir, à condition que tu dispose des droits nécessaires, donner l'accès à ton user depuis l'extérieur. (Mais là on sort du PHP, thème de ce forum...).

Ne peux-tu pas simplement faire un export de la base de données et là rien porter en local sur ton ordi ?
Ou alors accéder en FTP au fichier source du site sur le serveur où se trouve la base et y mettre ton développement à toi ?

Messages postés
46
Date d'inscription
samedi 6 avril 2013
Statut
Membre
Dernière intervention
10 juin 2021

Merci pour ta réponse rapide !

Alors j'ai essayé de me connecter avec Mysql query browser et en fait déjà j'avais bloqué mon ip (trop de tentatives de connexions infructueuses). Du coup je me suis connecté en 4G j'ai récupéré la bdd, j'ai un localhost.sql. Je l'ai mis dans le dossier de mon php et ai rentré 'localhost' , 'root' , '' mais ça ne fonctionne toujours pas.

Où faut-il mettre le fichier localhost.sql ?
Messages postés
32940
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 juin 2021
3 556
Il ne suffit pas de mettre un fichier SQL sur ton serveur pour que ça fonctionne.
Tu dois importer ce fichier SQL dans une base de données MySQL.
Si tu n'en n'as pas installé sur ton ordinateur, tu peux en émuler via un logiciel tel que l'Aragon ou wamp ou mamp ...
Ça te sera de toute façon indispensable pour pouvoir faire fonctionner ton code PHP.
Messages postés
46
Date d'inscription
samedi 6 avril 2013
Statut
Membre
Dernière intervention
10 juin 2021

Alors j'ai réussi avec ce code en installant xampp et en important ma bdd dans localhost/phpMyAdmin mais cela ne fonctionne qu'en mettant mon fichier dans C:\xampp\htdocs\mondossier et en allant le chercher dans mon navigateur dans localhost/mondossier mais comment je peux le faire fonctionner avec la bdd à distance ?
<?php
$host = 'localhost';
$dbname = 'stations_meteo';
$username = 'root';
$password = '';

$dsn = "mysql:host=$host;dbname=$dbname";
// récupérer tous les utilisateurs
$sql = "SELECT id, longitude, latitude FROM site WHERE id=1";

try{
$pdo = new PDO($dsn, $username, $password);
$stmt = $pdo->query($sql);

if($stmt === false){
die("Erreur");
}

}catch (PDOException $e){
echo $e->getMessage();
}
?>
<!DOCTYPE html>
<html>
<head>Afficher la table users</head>
<body>
<h1>Liste des utilisateurs</h1>
<table>
<thead>
<tr>
<th>ID</th>
<th>Name</th>
</tr>
</thead>
<tbody>
<?php while($row = $stmt->fetch(PDO::FETCH_ASSOC)) : ?>
<tr>
<td><?php echo htmlspecialchars($row['id']); ?></td>
<td><?php echo htmlspecialchars($row['longitude']); ?></td>
<td><?php echo htmlspecialchars($row['latitude']); ?></td>
</tr>
<?php endwhile; ?>
</tbody>
</table>
</body>
</html>
Messages postés
32940
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 juin 2021
3 556
On en revient à ma première réponse...
L'utilisateur que tu as pour ta base de données permet-il les connexions à distance ?
Messages postés
46
Date d'inscription
samedi 6 avril 2013
Statut
Membre
Dernière intervention
10 juin 2021

Si je m'y connecte avec MySql Query Browser j'arrive à la lire. C'est qu'elle permet les connexions à distance non ?

Mais ce que je ne comprend pas c'est pourquoi mon code fonctionne en localhost/mondossier dans le navigateur comme décrit plus haut mais ne fonctionne pas en exécutant simplement monfichier.php en cliquant dessus en partant du dossier windows . Pourquoi ?
Messages postés
32940
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 juin 2021
3 556
par ce que PHP a besoin d'être "exécuté" pour pouvoir interpreter les instructions en code "php"....
Ce que fait xampp lorsque tu places les fichiers dans le dossier httdocs.
C'est le fonctionnement "normal" ...
Messages postés
46
Date d'inscription
samedi 6 avril 2013
Statut
Membre
Dernière intervention
10 juin 2021

D'accord. Donc si j'ai une interface web .html qui fait appel à un .js qui envoie une requête ajax à un php pour lui demander des infos de la bdd.
Comment je dois procéder pour faire fonctionner ce .html avec ma bdd à distance ?
Messages postés
46
Date d'inscription
samedi 6 avril 2013
Statut
Membre
Dernière intervention
10 juin 2021

Dans tous les cas il faut que le .php se trouve sur un serveur possédant un interpréteur php pour être exécuté si j'ai bien compris ?
Donc mon interface web je ne peux la faire fonctionner qu'avec xampp dans le dossier htdocs ou alors avec un serveur distant en hébergeant le .php dessus c'est ça ?
Messages postés
32940
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 juin 2021
3 556
Oui
Messages postés
46
Date d'inscription
samedi 6 avril 2013
Statut
Membre
Dernière intervention
10 juin 2021

Ok j'ai tout compris ! J'ai réussi à faire fonctionner mon code avec la bdd à distance.

Merci beaucoup pour ton aide !