Page 1 sur 1

probleme mysql_field_name()

Posté : 27 août 2016, 16:02
par develop_adn
bonjour

qui peut m'aider à modifier ce code pour eviter ce msg d'erreur:
Warning: mysql_field_name() expects parameter 1 to be resource, integer given in C:\wamp\www\formulaire\afficher_plsrs tbl\afficherResultat.php on line 22

afficherResultat.php:

Code : Tout sélectionner

<?php //affichage partiel des results d'une reqte //creation d'un tbleau html avec autant de colonnes que d'attributs //on affiche $pNbLignes lignes à partir de la ligne indiquée par $pPosition //require("fonctionBDD.php"); //$connexion=mysql_connect(SERVEUR,NOM_SERVEUR,MOT_PASSE,NOM_BASE); function afficherResultat($connexion,$pResultat,$pPosition,$pNbLignes){ echo "<table border='1'>"; $compteurLignes=1; mysqli_num_fields($pResultat); $nbAttributs=mysqli_num_fields($pResultat); while ($tableAttributs=mysqli_fetch_row($pResultat)){ //avant la 1ere ligne on affiche //on affiche l'entete du tableau html avec le nom des attributs if($compteurLignes==1){ echo "<tr>"; //affichage des noms d'attributs for($i=0;$i<$nbAttributs;$i++) echo "<th>".mysql_field_name($pResultat,$i)."</th>\n"; } //pour chaque ligne comprise entre la 1ere($pPosition) et la derniere($pPosition+$pNbLignes-1) //on affiche les valeurs de chaque attributs if($compteurLignes >= $pPosition and $compteurLignes <= $pPosition+$pNbLignes-1){ echo "<tr>"; for($i=0;$i<$nbAttributs;$i++){ //le champ est vide if(empty($tableAttributs[$i])) $tableAttributs[$i]=""; echo "<td>".$tableAttributs[$i]."</td>"; } echo "</tr>\n"; } //incremente le compteur $compteurLignes++; //inutile de continuer si tout est affiché if($compteurLignes >= $pPosition+$pNbLignes-1) break; } echo "</table>\n"; } ?>
sachant que cette fonction est appelée par ce code:

Code : Tout sélectionner

<!Doctype html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"" http://www.w3.org/TR/xhtml1/DTD/xhtml-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html" charset="utf-8" /> <title>affichage multipages</title> </head> <body> <?php require("fonctionBDD.php"); require("constantes.php"); require("afficherResultat.php"); define ("NB_LIGNES",5); $connexion=mysqli_connect(SERVEUR,NOM_SERVEUR,MOT_PASSE,NOM_BASE); //on initialise la position if(isSet($_GET["position"])) $position=$_GET['position']; else $position=1; //on cree le formulaire de saisie de requete echo "<form action='affichageMultipages.php' method='post'>\n"; echo "<textarea name='requete' cols='50' rows='4'>"; //si on reçoit une requete en POST ou en GET if(isSet($_REQUEST['requete'])) $requete=urldecode($_REQUEST['requete']); else $requete="SELECT * FROM utilisateurs ORDER BY nom"; //affiche la requete ds le chmps textarea echo $requete; echo "</textarea>\n"; echo "<br/>"; echo "<input name='submit' type='submit' value='Executer' />\n"; echo "</form>\n"; //on excute la reqte $resultat=mysqli_query($connexion,$requete); //on affich le tabl html avec Nb lignes à partir de la ligne $position afficherResultat($connexion,$resultat,$position,NB_LIGNES); //on calcule les positions avt et apres $positionAvant=$position-NB_LIGNES; $positionApres=$position+NB_LIGNES; $requeteCode=urlEncode($requete); //s'il ya des lignes avant la 1ere affichée if($positionAvant >0) echo "<a href='affichageMultipages.php?position=$positionAvant&requete=$requeteCode'><<page précédente</a>\n"; //s'il ya des lignes apres la derniere affichee if($positionApres<= mysql_num_rows($resultat)) echo "<a href='affichageMultipages.php?position=$positionApres&requete=$requeteCode'>page suivante>></a>\n"; ?> </body> </html>
et merci.

Re: probleme mysql_field_name()

Posté : 27 août 2016, 22:18
par @rthur
Bonjour,

Il faut que tu utilises mysqli_fetch_field_direct()

Inspire toi et essaye de reproduire les exemples de la doc :
http://php.net/manual/en/mysqli-result. ... direct.php