par
develop_adn » 27 août 2016, 16:02
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.
bonjour
qui peut m'aider à modifier ce code pour eviter ce msg d'erreur:
[b] 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[/b]
afficherResultat.php:
[code]<?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";
}
?>[/code]
[b]sachant que cette fonction est appelée par ce code:[/b]
[code]<!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>[/code]
et merci.