un code php qui déconne (erreur bête surement )

un code php qui déconne (erreur bête surement ) - PHP - Programmation

Marsh Posté le 30-06-2020 à 09:49:34    

Bonjour je fais une page html ou j'insère du php pour récupérer des valeurs d'une base de données que j'heberge sous mariaDB.
 
Quand je suis sur la page web, la page s'affiche normalement mais je n'ai pas le tableau que je souhaite avec les valeurs de la bdd mais mon code qui est écrit lol.  
 
voici le code:
 
<!DOCTYPE html>
<html>
  <head>
        <link rel="stylesheet" href="style.css"/>
    <title>Mémoire relevé de Température et d'humidité</title>
  </head>
  <body background="station-meteo-guide.png">
        <h1> Tableau des temperatures et des humidités </h1>
                <div id="menu">
                          <ul id="onglets">
                            <li class="active"><a href="index.html"> Accueil </a></li>
                            <li><a href="tableau.html" title="Tableau des temperatures et des humidités">Tableau des temperatures et des humidités</a>
                            <li><a href="graphiques.html" title="graphiques des temperatures et des humidités">Graphiques des temperatures et des humidités</a>
                          </ul>
                        </div>
 
 
                <div> Ce site Web sert à afficher l'évolution des températures dans une pièce de domicile à l'aide de graphes et de tableaux. Le rendu final sera sûrement différend, le site est en construction  </div>
                <div> Le but de ce projet et d'interconnecter un capteur de température et d'humidité à une base de donnée puis d'afficher un rendu graphiques des résultats en fonction des jours et des heures.  </div>
                <dir><a href="index.html" title="Acceuil">Retour Index</a></dir>
<?php
 
    $requete = 'SELECT * FROM station;';
 
    mysql_connect('localhost', 'mqttclient', 'az');
    mysql_select_db('meteo');
 
    /******************************************************/
 
    $res = mysql_query($requete) or exit(mysql_error());
 
    echo '<table border="1"><tr>';
 
    for ($i = 0; $i < mysql_num_fields($res); $i++) {
        echo '<th>';
        echo mysql_field_name($res, $i);
        echo '</th>';
    }
 
    echo '</tr>';
 
    while ($row = mysql_fetch_row($res)) {
        echo '<tr>';
 
        for ($j = 0; $j < count($row); $j++) {
            echo '<td>';
            echo ($row[$j] == NULL) ? '<i>NULL</i>' : $row[$j];
            echo '</td>';
        }
 
        echo '</tr>';
    }
?>
  </body>
</html>
 
 
Je vous remercie pour ceux qui pourront m'aider. Ma soutenance se passe le lundi 06 juillet donc j'avais plus le choix que de demander de l'aide ici ^^
Bonne journée :)

Reply

Marsh Posté le 30-06-2020 à 09:49:34   

Reply

Marsh Posté le 30-06-2020 à 11:13:52    

Tu as bien installé PHP et configuré ton serveur web pour qu'il l'utilise ?

Reply

Marsh Posté le 30-06-2020 à 11:24:40    

Et ta page a bien l'extension .php ?


---------------
There's more to life than the boy in that mirror.
Reply

Marsh Posté le 30-06-2020 à 12:40:22    

J'allais posé la même question sur l'extension de fichier : faut mettre .php.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 30-06-2020 à 14:54:31    

Bah j'ai testé en faisant un fichier test.php avec phpinfo() et ça a fonctionné donc je supose que j'ai tout. Je l'avais pas mis en .php mais mtn il m'affiche que ce que j'ai mis un avant la balise d'ouverture <? et après plus rien et pas de tableau
 
Je suis un peu perdu du coup ^^'

Reply

Marsh Posté le 30-06-2020 à 15:24:56    

Il es possible que tu n'est pas le short mode a on dans le php.ini est du coup <? ça ne fonctionne pas, il faut mettre <?php en balise ouvrante...
 
Sinon que ça fonctionne :

Code :
  1. <?php
  2. phpinfo();
  3. ?>


prouve que ton serveur (apache ?) et php sont bien configuré, donc :

Code :
  1. <?php
  2.     $requete = 'SELECT * FROM station;';
  3.     mysql_connect('localhost', 'mqttclient', 'az');
  4.     mysql_select_db('meteo');
  5.     /******************************************************/
  6.     $res = mysql_query($requete) or exit(mysql_error());
  7.     echo '<table border="1"><tr>';
  8.     for ($i = 0; $i < mysql_num_fields($res); $i++) {
  9.         echo '<th>';
  10.         echo mysql_field_name($res, $i);
  11.         echo '</th>';
  12.     }
  13.     echo '</tr>';
  14.     while ($row = mysql_fetch_row($res)) {
  15.         echo '<tr>';
  16.         for ($j = 0; $j < count($row); $j++) {
  17.             echo '<td>';
  18.             echo ($row[$j] == NULL) ? '<i>NULL</i>' : $row[$j];
  19.             echo '</td>';
  20.         }
  21.         echo '</tr>';
  22.     }
  23. ?>


ne devrait pas afficher le code source !


---------------
D3
Reply

Marsh Posté le 30-06-2020 à 16:57:32    

Merci beaucoup pour votre aide ça m'a aidé à comprendre que il y avait pas que le code qui était important.. J'étais en version php7 donc toutes les fonctions que j'utilisais n'étaient plus valides.
 
Désormais j'ai mon tableau avec mes valeurs je suis tellement content.
Après petit bémole c'est que le tableau n'affiche que les valeurs alors que normalement il y a la légende dessus genre jour et date, température, humdité..
Vous savez comment je peux rajouter ça?
Je republie le code car il a un peu changé depuis tout à l'heure ::
 

Code :
  1. <?php
  2.  
  3. $requete ='SELECT * FROM station;';
  4. $host='localhost';
  5. $client='mqttclient';
  6. $pw='az';
  7. $db='meteo';
  8. $mysqli=mysqli_connect($host,$client,$pw,$db);
  9.   /******************************************************/
  10.   $res = mysqli_query($mysqli,$requete);
  11. mysqli_field_tell( $res);
  12.     echo '<table border="1"><tr>';
  13.  
  14.    for ($i = 0; $i < mysqli_num_fields($res); $i++) {
  15.      echo '<th>';
  16.      $Finfo=mysqli_fetch_field_direct($res, $i);
  17.     echo '</th>';
  18.      }
  19.  
  20.     echo '</tr>';
  21.        while ($row = mysqli_fetch_row($res)) {
  22.           echo '<tr>';
  23.            for ($j = 0; $j < count($row); $j++) {
  24.               echo '<td>';
  25.             echo ($row[$j] == NULL) ? '<i>NULL</i>' : $row[$j];
  26.               echo '</td>';
  27.            }
  28.  
  29.           echo '</tr>';
  30.      }
  31. ?>

Reply

Marsh Posté le 30-06-2020 à 17:24:08    

Code :
  1. while ($row = mysqli_fetch_assoc($res)) {
  2.           echo '<tr>';
  3.            foreach ($row as $key => $value) {
  4.               echo '<td>'.$key.' => ';
  5.             echo ($value == NULL) ? '<i>NULL</i>' : $value;
  6.               echo '</td>';
  7.            }
  8.           echo '</tr>';


Ce code affiche toutes les valeurs remonté par ta requête, si il manque des valeurs c'est que ta requête n'est pas suffisante, il faut ptet faire une jointure vers un autre table ou y'a des informations supplémentaire...


---------------
D3
Reply

Marsh Posté le 30-06-2020 à 19:56:09    

Oui, en php 7 les fonctions mysql sont désactivées. Faut prendre mysqli ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed