FranceServ Hébergement est une société d'hébergement web sur Internet depuis 2010. Nous vous accompagnons dans la création et l'hébergement de votre site web à travers différents services numériques. Grâce à notre site Internet et à nos outils en ligne, nous vous assurons un accompagnement technique de proximité.
Vous avez un soucis de développement et ce n'est pas du ressort de notre support ? N'hésitez pas à soumettre vos petits soucis de développement et à vous entre aider par la même occasion.
Je débute en php,
en fait je souhaite afficher la liste des eleves qui sont incrit dans la classe. A savoir que la classe sera saisi par l'utilisateur.
J'ai cette erreur et je ne comprend pas pourquoi :
Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in /home/httpd/r/a/u/raulincury-deust/raulincury-deust.franceserv.com/listeClasses.php on line 68
<?php
/* connection au serveur mysql */
$connect = mysql_connect('sql.franceserv.com', 'XXXXX', 'XXXX') or die("Impossible de se connecter : " . mysql_error());
/* connection ˆ la bdd */
$db = mysql_select_db('raulincury-deust-db1', $connect);
/* Si erreur connexion */
if(!$db){ die ('Impossible d\'utiliser la base : ' . mysql_error());}
/* dŽfinition de la requete */
$sql = "SELECT * FROM classes";
/* stockage du rŽsultat */
$result = mysql_query($sql);
/*vérification si la valeur a été ajouté*/
if(isset($_POST['id'])){
/* requete on selctionne tous les valeurs de la table eleves quand la valeur saisie dans le formulaire est égale à classe*/
$requete1= "SELECT * FROM `eleves` WHERE `classe`=".$_POST['id'];
/*on récupère le résultat de la requete*/
$resultat1=mysql_query($requete1);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/url]">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Collège</title>
</head>
<body>
<p><center><h1>Liste de toutes les classes</h1></center></p>
<table border="1">
<caption>Tableau des classes</caption>
<tr>
<th>Nom</th>
<th>Identifiant</th>
</tr>
<?php
/* pour chaque classe on affiche la ligne de tableau qui lui correspond */
while ( $ligne = mysql_fetch_array($result) ) {
echo "<TD> ".$ligne['nom']."</TD>
<TD> ".$ligne['id']."</TD>
</TR>";
}
?>
</table>
<form action="listeClasses.php" method="post" name="liste des eleves">
<p>Indiquez l'id de la classe : <input name="id" type="text" size="10" /> <input name="Valider" type="submit" value="Valider" />
</form>
<table border="1">
<caption>Liste des élèves par classes</caption>
<tr>
<th>Nom</th>
<th>Prénom</th>
</tr>
<?php
/*j'affiche ma requete*/
echo $requete1;
/* ça devrait en principe afficher le resultat de ma requete*/
while ( $ligne1 = mysql_fetch_array($resultat1)){
echo $ligne1['nom'];}
?>
</table>
</body>
</html>
Vous pouvez afficher les messages d'erreurs (plus explicites) de MySQL en ajoutant un die() juste après le mysql_query() ainsi :
mysql_query($sql) OR die(mysql_error());
Ça vous évitera d’avoir des erreurs incompréhensibles au moment du mysql_fetch_array().
Vous avez une question ? Posez-la de préférence sur le forum et si ça demande un contact plus instantané, n'hésitez pas à vous rendre sur le t'chat IRC. Si votre question est personnelle, contactez-nous directement.
suite à ce OR die (mysql_error());
j'ai le même message qui apparait mais j'ai bien mon tableau qui effectue ma requete
donc je pense que mon erreur vient quand il n'y a pas de saisie de la part de l'utilisateur.
La fonction isset() de PHP vérifie si la variable est définie et elle est toujours définie à NULL lorsqu'elle est vide et qu'elle est récupérée depuis un GET ou un POST.
Vous devriez utiliser la fonction !empty() à la place de isset(), par contre la valeur 0 est considérée comme empty, il faudrait combiner les deux ou retravailler la variable après son GET.
Un moyen de la retravailler avant :
if(empty($_POST['id']))
{
$_POST['id']=0;
}
Mais attention ! Actuellement votre requête est très dangereuse : si on entre dans le formulaire un bout de requête SQL que l'on nomme "injection SQL", n'importe qui peut faire ce qu'il souhaites sur votre base comme l'effacer.
Il vous faut alors utiliser la fonction mysql_real_escape_string() pour échapper la ponctuation MySQL et éviter qu'une injection se fasse.
Le mieux est de vérifier également que la valeur saisie est bien un nombre.
Vous avez une question ? Posez-la de préférence sur le forum et si ça demande un contact plus instantané, n'hésitez pas à vous rendre sur le t'chat IRC. Si votre question est personnelle, contactez-nous directement.
Nous utilisons des cookies sur notre site Web pour vous offrir l'expérience la plus pertinente en mémorisant vos préférences et vos visites. En cliquant sur « Tout accepter », vous consentez à l'utilisation de TOUS les cookies. Vous pouvez également les refuser et affiner vos préférences.
Ce site Web utilise des cookies pour améliorer votre expérience pendant que vous naviguez. Parmi ces cookies, les cookies classés comme essentiels sont stockés sur votre navigateur car ils sont nécessaires au bon fonctionnement des fonctionnalités de base de notre site. Nous pouvons également utiliser des cookies tiers qui nous aident à analyser et à comprendre comment notre site Internet est utilisé, à stocker les préférences de l'utilisateur et à vous fournir du contenu pertinent. Ces cookies seront stockés sur votre navigateur, mais uniquement après obtention du consentement.
Vous avez la possibilité de désactiver ces cookies si vous le souhaitez. Mais la désactivation de certains de ces cookies peut avoir un effet sur votre expérience de navigation selon leurs utilitées et leurs catégories respectives.
Les cookies définis dans cette catégorie sont absolument essentiels au bon fonctionnement du site. Par conséquent, ils sont chargés par défaut indépendamment du consentement de l'utilisateur comme le permet la legislation..
Cookie
Description
PHPSESSID
Ce cookie est natif des applications PHP. Ce cookie est utilisé pour stocker et identifier l'ID de session unique d'un utilisateur dans le but de gérer la session utilisateur sur le site Web. Ce cookie est un cookie de session et est supprimé lorsque toutes les fenêtres du navigateur sont fermées.
SRVNAME
Ce cookie permet de stabiliser l’affectation du nœud Web derrière le mécanisme de répartition de charges Web.
Ces cookies sont définis par le mécanisme de consentement RGPD des cookies et sont utilisés pour conserver le consentement ou non de l'utilisateur des cookies. Il n'y a aucune données personnelles dans ces cookies et ils permettent de mémoriser un éventuel refus.
PMA_LANG_HTTPS
PHPMYADMIN_HTTPS
PMAUSER-1_HTTPS
Cookies liés avec l'outils PhpMyAdmin lorsque le client est connecté sur son espace client.
PHPPBB3_S1W4X_K
PHPPBB3_S1W4X_U
PHPPBB3_S1W4X_SID
Cookies liés avec les forums PhpBB3 de FranceServ Hébergement.
Les cookies analytiques nous aident à comprendre comment nos visiteurs interagissent avec notre site Web. Cela nous aide à comprendre le nombre de visiteurs, leur provenance et les pages sur lesquelles ils naviguent. Les cookies collectent ces données et sont signalés de manière anonyme.
Cookie
Description
_pk_id.*
_pk_ses.*
Ces cookies sont utilisés par Matomo (anciennement Piwik) sur l'adresse analytics.franceserv.fr pour suivre et analyser les connexions sur nos services. Matomo Analytics se veut indépendant des GAFAM et respectueux de la vie privée.
Les cookies de préférences sont utilisés pour stocker les préférences des utilisateurs afin de leur fournir un contenu personnalisé. Cela inclut le thème graphique de ce présent site ou des jetons d'authentification et OTP.
Cookie
Description
login
Ce cookie permet de mémoriser sur le navigateur, un jeton d'authentification automatique pour le client lorsqu'il le décide. Ce cookie est chiffré et est rattaché au navigateur Internet et à la connexion Internet lors de sa création. Ce cookie devient invalide au bout de 30 jours.
otp
Ce cookie est utilisé pour authentifier automatiquement le client à son gestionnaire par la double authentification, ce jeton d’authentification est valide pendant maximum 30 jours lorsque le client le décide. Ce cookie est chiffré et est rattaché au navigateur Internet et à la connexion Internet lorsqu’il a été crée et sera automatiquement supprimé lorsque c’est nécessaire.