Problème script MySQL

Bonjour,

J'ai installer récemment apache et php qui tout deux fonctionne très bien et j'ai installer maintenant MySQL j'ai donc fait un petit script mais il y a une erreur et je ne vois pas d'ou elle peut venir voilà :

<?php
/*Programme: mysql_up.php
*Des: se connecter au serveur MySQL et affiche les paramètres.
*/
echo "<html>
<head><title>Test de MySQL5 avec PHP5</title></head>
$host="localhost";
$user="******"
$password="******";

ùcxn = mysqli_connect($host,$user,$password);
$sql="SHOW STATUS";
$result = msqli_query($cxn,$sql);
if($result == false)
{
echo "<h4>Erreur: ".mysqli_eror($cxn)";
}
else
{
/*Tableau affichant les résultats */
echo "<table border='1'>
<tr><th>Nom_Variable</th>
<tr>Valeur</th></tr>";
for($i = 0; $i < mysqli_nujm_rows($result); $i++)
echo "<tr>";
$row_array = mysqli_fetch_row($result);
for($j = 0;$j < mysqli_num_fields($result);$j++)
{
echo"<td>".$row_array[$j]."</td>\n";
}
}
echo"</table>";
}
?>
</body>

et le message d'erreur mis lorsque l'on essaie d'accéder à la page : Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in C:\serveur\Apache2\www\test-mysql.php on line 7

Cordialement
Configuration: Windows XP
Firefox 2.0.0.16

20 réponses

  1. je pense pas que ce soit obligatoire d'utiliser mysqli avec php5

    Mysqli est une extension de mysql qui est à mon avis plus performante.(perso c'est ce que j'utilise à la maison.Au boulot c'est mysql)
    Pour l'utilser il faut seulement activer cette extension sur ton serveur (le fichier php.ini il faut decommenter cette ligne extension=php_mysqli.dll,et parametrer ton mysql)

    A tu d'autres pages qui utilise mysqli et qui fonctionne ou est ce la 1ere?

    Sinon remplace la syntaxe mysqli par celle de mysql

    edit tiens jette un oeil par ici https://www.php.net/manual/fr/mysqli.configuration.php
    1. j'utilise MySQL-4.1.20 et j'ai lu que quand on n'a php5 il faut mettre mysqli dans le script sinon sa ne prenait pas en charge

      Cordialement
      1. c'est bizzare car à la maison ça fonctionne ?

        c'est bien l'extension mysqli que tu utilise?
        1. j'avais vu cette petite erreur mais rien n'y fait toujours une erreur
          1. encor merci à toi pour ton aide mais ton script ne fonctionne pas chez moi il m'indique une erreur fatale ligne 9 :

            Fatal error: Call to undefined function mysqli_connect() in C:\serveur\Apache2\www\test-mysql.php on line 9

            Cordialement
            1. bonjour , tu a oublié le !
              ici if($result)

              je t'explique.le ! siginifie que la condition est fausse si $result ne s'execute pas tu aura ton msg d'erreur.

              Dans le cas present tu c'est l'inverse si $result s'execute tu a le msq d'erreur

              de plus tu a une erreur ici mysqli_nujm_rows

              je t'ai retapé un peu le code ,il fonctionne

              <?php
              	echo "<html>
              	<head><title>Test de MySQL5 avec PHP5</title></head>
              	<body>";
              	$host="localhost";
                     $user="admin";
                     $password="123456";
              	
              	$cxn = mysqli_connect($host,$user,$pass);
              
              	$sql="SHOW STATUS";
              	$result = mysqli_query($cxn,$sql);
              		if(!$result)
              		{
              			echo "<h4>Erreur:".mysqli_eror($cxn)."</h4>";
              		}
              			else
              		{
              		//attribution des variables
              			$nbrow=mysqli_num_rows($result); //nbr de données dans la table
              			$row_array = mysqli_fetch_row($result);
              			$nbfield=mysqli_num_fields($result); 
              			//pense a utiliser des echos pour visualiser les valeurs que tu récuprer
              			echo '$nbrw='.$nbrow;
              			echo '<br/>';
              			echo '$row_array='.$row_array[0];
              			
              			/*Tableau affichant les résultats */
              			echo "<table border='1'>
              				<th size='20'>Nom_Variable</th>
              				<th>Valeur</th>";
              			
              			for($i = 0; $i <$nbrow; $i++)
              			{
              			$j=0;		
              			echo"<tr>
              				<td size='20'>".$row_array[$j]."</td>
              				<td>".$nbfield[$i]."</td>				
              				</tr>";				
              					if($j<=$nbfield){$j++;};				
              			}
              		echo"</table>";
              		}
              		?>
              	</body>
              	</html>
              1. bon j'ai modifié encore mes erreurs (erreur bête !) mais sa ne fonctionne toujours pas voilà le script maintenant :

                <?php
                /*Programme: mysql_up.php
                *Desc: se connecter au serveur MySQL et affiche les paramètres.
                */
                echo "<html>
                <head><title>Test de MySQL5 avec PHP5</title></head>
                <body>";
                $host="localhost";
                $user="admin";
                $password="123456";

                $cxn = mysqli_connect($host,$user,$password);
                $sql="SHOW STATUS";
                $result = mysqli_query($cxn,$sql);
                if($result)
                {
                echo "<h4>Erreur:".mysqli_eror($cxn)."</h4>";
                }
                else
                {
                /*Tableau affichant les résultats */
                echo "<table border='1'>
                <tr><th>Nom_Variable</th>
                <tr>Valeur</th></tr>";
                for($i = 0; $i < mysqli_nujm_rows($result); $i++)
                {
                echo "<tr>";
                $row_array = mysqli_fetch_row($result);
                for($j = 0;$j < mysqli_num_fields($result);$j++)
                {
                echo"<td>".$row_array[$j]."</td>\n";
                }
                }
                echo"</table>";
                }
                ?>
                </body>
                </html>

                et voilà l'erreur qui s'affiche : Fatal error: Call to undefined function mysqli_connect() in C:\serveur\Apache2\www\test-mysql.php on line 12
                1. re,avant d'aller au dodo je pense avoir trouver ton lézard

                  $result = msql_query($cxn,$sql);

                  tu utilise mysqli doncta requete ce devrait etre

                  $result = mysqli_query($cxn,$sql);

                  tu lui met du mysql evidemment (tu a en plus oiblié le Y) il comprend pas ce que tu lui demande

                  si tu change ca ça devrais marcher.

                  T'affole pas au début c'est souvent des erreurs que l'on commet

                  @+
                  1. voilà j'ai modifié ce que tu m'as dit il n'y a plus d'erreur ligne 10 mais il me met maintenant qu'il y a une erreur ligne 12 !

                    Je vais jamais m'en sortir et quand on débute dans la programmation c'est pas évident on fait plein de petites erreurs alors voilà à quoi ressemble le script maintenant :

                    <?php
                    /*Programme: mysql_up.php
                    *Desc: se connecter au serveur MySQL et affiche les paramètres.
                    */
                    echo "<html>
                    <head><title>Test de MySQL5 avec PHP5</title></head>
                    <body>";
                    $host="localhost";
                    $user="admin";
                    $password="123456";

                    $cxn = mysqli_connect($host,$user,$password);
                    $sql="SHOW STATUS";
                    $result = msql_query($cxn,$sql);
                    if($result)
                    {
                    echo "<h4>Erreur:".mysqli_eror($cxn)."</h4>";
                    }
                    else
                    {
                    /*Tableau affichant les résultats */
                    echo "<table border='1'>
                    <tr><th>Nom_Variable</th>
                    <tr>Valeur</th></tr>";
                    for($i = 0; $i < mysqli_nujm_rows($result); $i++)
                    {
                    echo "<tr>";
                    $row_array = mysqli_fetch_row($result);
                    for($j = 0;$j < mysqli_num_fields($result);$j++)
                    {
                    echo"<td>".$row_array[$j]."</td>\n";
                    }
                    }
                    echo"</table>";
                    }
                    ?>
                    </body>
                    </html>

                    Et un grand merci à toi lewis34 pour ton aide qui m'aide énormément

                    Cordialement

                    @+
                    1. re, peut tu mettre ton code modifié stp.

                      modifie ca egalemenet
                      if($result == false)
                      {
                      echo "<h4>Erreur: ".mysqli_eror($cxn)"</h4>";
                      }

                      par ça
                      if(!$result )
                      {
                      echo "<h4>Erreur: ".mysqli_eror($cxn) </h4>";
                      }

                      et il te manque un ; ici
                      $user="******" ;
                      1. Bon j'ai corriger les erreurs et voilà toujours une erreur line 10 :

                        voilà regarder la ==> http://bostak.dyndns.org/test-mysql.php

                        je ne vois pas d'ou sa peut venir

                        Cordialement
                        1. ce que je voulais dire c'est qu'il y a un " en trop et un . en moins
                          echo "<h4>Erreur: ".mysqli_eror($cxn)"<== ici </h4>";
                          il faut que tu mette ça
                          echo "<h4>Erreur: ".mysqli_eror($cxn)."</h4>";
                          dsl je faisait plusieurs trucs en même temps
                          1. re,

                            tu a oublié des "

                            echo "<h4>Erreur: ".mysqli_eror($cxn)"</h4>";

                            echo "<h4>Erreur: ".mysqli_eror($cxn)</h4>";

                            bah euh non ils y sont ^^
                            sinon j'ai changer ce que tu m'a dit sa n'y fait pas il me dit toujours qu'il y a une erreur line 10 :

                            http://bostak.dyndns.org/test-mysql.php

                            Cordialement
                            1. re ,
                              tu a oublié des "

                              echo "<h4>Erreur: ".mysqli_eror($cxn)"</h4>";

                              echo "<h4>Erreur: ".mysqli_eror($cxn)</h4>";

                              sinon ici $result = msqli_query($cxn,$sql);

                              c'est $result = mysqli_query($cxn,$sql); qu'il faut ecrire pas msqli

                              ;-)

                              en gros verifie toujours bien ton code et pense à l'intender c'est plus facile apres pour reperer le debut des { et la fin des }
                              @+
                              1. ah et j'oubliais,

                                Pour répondre à kakashidu85
                                c'est mysqli parce que j'utilise php5

                                @+
                                1. Merci à vous tous pour vos réponses rapide j'ai fais plein d'erreur bête (je commence dans ce domaine c'est pour sa) j'ai corrigé toutes les erreurs que vous m'avez dit et il y a encore une erreur. Alors voilà à quoi ressemble le script maintenant :

                                  <?php
                                  /*Programme: mysql_up.php
                                  *Desc: se connecter au serveur MySQL et affiche les paramètres.
                                  */
                                  echo "<html>
                                  <head><title>Test de MySQL5 avec PHP5</title></head>
                                  <body>";
                                  $host="localhost";
                                  $user="******"
                                  $password="******";

                                  $cxn = mysqli_connect($host,$user,$password);
                                  $sql="SHOW STATUS";
                                  $result = msqli_query($cxn,$sql);
                                  if($result == false)
                                  {
                                  echo "<h4>Erreur: ".mysqli_eror($cxn)"</h4>";
                                  }
                                  else
                                  {
                                  /*Tableau affichant les résultats */
                                  echo "<table border='1'>
                                  <tr><th>Nom_Variable</th>
                                  <tr>Valeur</th></tr>";
                                  for($i = 0; $i < mysqli_nujm_rows($result); $i++)
                                  {
                                  echo "<tr>";
                                  $row_array = mysqli_fetch_row($result);
                                  for($j = 0;$j < mysqli_num_fields($result);$j++)
                                  {
                                  echo"<td>".$row_array[$j]."</td>\n";
                                  }
                                  }
                                  echo"</table>";
                                  }
                                  ?>
                                  </body>
                                  </html>

                                  Et le message d'erreur que sa m'affiche :

                                  Parse error: syntax error, unexpected T_VARIABLE in C:\serveur\Apache2\www\test-mysql.php on line 10

                                  Cette ligne correspond au mot de passe et c'est pourtant le bon mot de passe.

                                  Cordialement
                                  1. bonjour ,
                                    je pense que c'est la qu'est l'erreur
                                    ùcxn = mysqli_connect($host,$user,$password);
                                    met plutot ça : $cnx

                                    for($i = 0; $i < mysqli_nujm_rows($result); $i++)
                                    echo "<tr>"; 

                                    ici il manque une {

                                    for($i = 0; $i < mysqli_nujm_rows($result); $i++)
                                    { 
                                    echo "<tr>";


                                    et les guillemets echo "<html> "
                                    et pense à fermer ta balise <h4>
                                    echo "<h4>Erreur: ".mysqli_eror($cxn) </h4>";

                                    @+
                                    1. Tu as rajoute un i a la fin de mysql_connect

                                      ùcxn = mysqli_connect($host,$user,$password);
                                      1. c'est qu'il utilise mysqli à la place de mysql ;-)
                                    2. echo "<html>
                                      <head><title>Test de MySQL5 avec PHP5</title></head>

                                      vous avez oublié de fermer le guillemets, puis le ;
                                      dans la suite du code y'a encore quelques anomalies par contre