Syntaxe input

Résolu
Bonjour,

Le script suivant fait bien la requête dans la table.
L'affichage du résultat avec les 2 "echo" dans le script de la requête se fait bien, par contre impossible d'avoir l'affichage dans l'input plus loin.

<?php  //Connection avec la BDD.
	include('secure/connex.php');
	mysql_connect($SQLhost, $SQLlogin, $SQLpass) or die(mysql_error());
	mysql_select_db('base_donnees',$db) or die(mysql_error());
	// Requete pour n'avoir qu'une fois le nom
	$sql = 'SELECT DISTINCT Nom, Prenom FROM table WHERE Num="'.$Num.'"';
	$resultat=mysql_query($sql);
	while($ligne=mysql_fetch_array($resultat)){
	echo $ligne['Nom'].'<br/>';
 	echo $ligne['Prenom'].'<br/>';
	}
 ?>


<p align="left"><LABEL for="Nom">Nom  :  </LABEL>

<?php echo '<input type="text" name="Nom" value="'.$ligne['Nom'].'"/> '.$ligne['Nom'].''; ?>


Idem si j'essaie,

 <input type="text" name="Nom" value="<?php .$ligne['Nom']. ?>" />


Si quelqu'un a la bonne syntaxe...
Merci d'avance

Daniel

Configuration: Windows / Firefox 74.0


--

6 réponses

  1. Modérateur
    Bonjour,

    Plusieurs soucis dans ton code...
    Déjà, normal que ça ne t'affiche rien, puis la variable $ligne est dans le while.. et que tu essaies de t'en servir en dehors.

    Tu as également un include d'un fichier sensé contenir la connexion à ta bdd... mais tu l'as remet en dessous ?
    include('secure/connex.php');
    mysql_connect($SQLhost, $SQLlogin, $SQLpass) or die(mysql_error());
    


    Que contient ton fichier connex.php ?

    Sachant que, dans le code que tu nous montres, tu utilises l'ancienne extension mysql qui est désormais obsolète.
    Il faut que tu passes à PDO ou Mysqli
    https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
    (perso j'ai une préférence pour PDO )

    1. Bonjour,
      Oui, je ne suis pas encore passé à PDO....
      Mon connex contient le s valeurs de $SQLhost, $SQLMlogin et $SQLpass , il n'y a poas la bdd dedans c'est pour ça qu'elle en dessous.
      Sinon, pour $ligne, je comprend mai ssi j'utilise $resultat c'est idem ! et elle n'est pas dans le while...

      --
      1. Modérateur
        C'est bien le moment de passer à PDO.
    2. Merci pour la correction avec le while.

      Pour le PDO, je m'y mettrai quand j'aurai plus cette continuelle erreur à l'affichage de mon fichier d'essai PDO.php ;-(

      Parse error: syntax error, unexpected '{' in /mnt/162/sda/0/e/xxx/PDO.php on line 16

      Ligne 16 qui correspond au try {

      Merci encore et bonne soirée.

      --
      1. Modérateur
        Quelle version de PHP utilises tu ?
    3. Bjr,
      Pour la version,
      Current PHP version: 4.4.3-dev

      Pour le code, c'est un copier coller de

      <!DOCTYPE html>
          <html>
              <head>
                  <title>Cours PHP / MySQL</title>
                  <meta charset="utf-8">
                  <link rel="stylesheet" href="cours.css">
              </head>
              <body>
                  <h1>Bases de données MySQL</h1>  
                  <?php
                      $servername = 'localhost';
                      $username = 'root';
                      $password = 'root';
                      
                      //On essaie de se connecter
                      try {
                          $conn = new PDO("mysql:host=$servername;dbname=bddtest", $username, $password);
                          //On définit le mode d'erreur de PDO sur Exception
                          $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                          echo 'Connexion réussie';
                      }
                      
                      /*On capture les exceptions si une exception est lancée et on affiche
                       *les informations relatives à celle-ci*/
                      catch(PDOException $e){
                        echo "Erreur : " . $e->getMessage();
                      }
                  ?>
              </body>
          </html>
      

      et en remplaçant juste localhost par mon serveur sql.free.fr, le root username par le login, le password par... le mdp en laissant les guillemets de chaque côté et le point-virgule à la fin de chaque variable. Le tout dans un fichier PDO.php
      1. Modérateur
        Php 4 ?????
        Aie... Totalement obsolete.
        Pdo ne fonctionne qu'à partir de php 5.3

        A minima il faudrait que tu passes a la version 5.6
        Mais le mieux serait de passer en 7.3
      2. Modérateur
        @jordane45Pour se faire, tu dois créer (si tu n'en a pas déjà un ) un fichier .htaccess à la racine de ton site et y mettre :

        Pour passer en php 7.3
        php73 1
        


        Pour passer en php 5.6
        php56 1
        
    4. J'ai fais .htaccess et mis tout seul dedans
      php73 1 comme suggéré.
      Quand je lance Version.php

      <?php
      echo 'Current PHP version: '. Phpversion();
      ?>


      j'ai une belle page Free "Erreur 500 - Erreur interne du serveur"
      idem avec php56 1
      j'ai effacé le fichier .htaccess que j'avais par ailleurs mais ça ne change rien pour les 2 tests.

      J'ai une question mais c'est en rapport avec ma demande initiale. Vaut-il mieux que j'ouvre un nouveau message ou je poste ici ?

      --
      1. C'est fait..
        Current PHP version: 5.6.34
        c'est le .htaccess qui devait être ainsi
        <IfDefine Free>
        php56 1
        </IfDefine> 


        Bon, il n'y a plus qu'à reprendre certaines pages ; et peut-être que mon PDO va fonctionner....

        --