Problème script MySQL

Bostak -  
lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention   -
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. lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention   352
     
    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
  2. s0d0m
     
    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
    0
  3. Utilisateur anonyme
     
    Tu as rajoute un i a la fin de mysql_connect

    ùcxn = mysqli_connect($host,$user,$password);
    0
    1. lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention   352
       
      c'est qu'il utilise mysqli à la place de mysql ;-)
      0
  4. lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention   352
     
    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>";

    @+
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Bostak
     
    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
    0
  7. Bostak
     
    ah et j'oubliais,

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

    @+
    0
  8. lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention   352
     
    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 }
    @+
    0
  9. Bostak
     
    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
    0
  10. lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention   352
     
    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
    0
  11. Bostak
     
    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
    0
  12. lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention   352
     
    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="******" ;
    0
  13. Bostak
     
    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

    @+
    0
  14. lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention   352
     
    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

    @+
    0
  15. Bostak
     
    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
    0
  16. lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention   352
     
    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>
    0
  17. Bostak
     
    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
    0
  18. lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention   352
     
    oups oui je viens de voir....

    change $pass par $password

    dsl
    0
  19. Bostak
     
    j'avais vu cette petite erreur mais rien n'y fait toujours une erreur
    0
  20. lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention   352
     
    c'est bizzare car à la maison ça fonctionne ?

    c'est bien l'extension mysqli que tu utilise?
    0
  21. Bostak
     
    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
    0