develop_adn
Messages postés7Date d'inscriptionsamedi 13 août 2016StatutMembreDernière intervention 4 décembre 2016
-
Modifié par KX le 26/08/2016 à 08:10
develop_adn -
29 août 2016 à 00:28
Bonjour,
qui peut m'aider à modifier ce code pour eviter ce msg d'erreur:
Warning: mysql_num_fields() expects parameter 1 to be resource, object given in C:\wamp\www\formulaire\afficher_plsrs tbl\afficherResultat.php on line 8
et aussi:
Warning: mysql_fetch_row() expects parameter 1 to be resource, object given in C:\wamp\www\formulaire\afficher_plsrs tbl\afficherResultat.php on line 10
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
function afficherResultat($pResultat,$pPosition,$pNbLignes){
echo "<table border='1'>";
$compteurLignes=1;
mysql_num_fields($pResultat);
$nbAttributs=mysql_num_fields($pResultat);
while ($tableAttributs=mysql_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";
}
?>
merci
le probleme est que je travaille ici par l'API mysql et non pas avec mysqli recemment recommandé par php.net...
mais le probleme est comment adapter mes codes avec la nouvelle approche car j'ai essayé de changer tous les mysql en mysqli et j'ai pas arrivé à une solution(toujours il y a des msg d'erreur...etc).
voilà le code qui appelle cette fonction que j'ai publié là-dessus pouvez vous m'aider et merci: (affichageMultipages.php)
<!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=mysql_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=mysql_query($connexion,$requete); //on affich le tabl html avec Nb lignes à partir de la ligne $position afficherResultat($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' rel="nofollow" target="_blank"><<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' rel="nofollow" target="_blank">page suivante>></a>\n"; ?> </body> </html>
jordane45
Messages postés38104Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention25 mars 2024344 28 août 2016 à 23:21
j'ai essayé de changer tous les mysql en mysqli et j'ai pas arrivé à une solution(toujours il y a des msg d'erreur...etc).
Il ne suffit pas de mettre un "i" à la fin pour que ça marche.....
Tu dois adapter le code de tes fonctions.....
Pour ça il te suffit de lire la doc des différentes fonctions pour savoir comment les écrire.....
...
je te laisse faire ces modifications avant de revenir nous voir avec ton code si ça ne fonctionne toujours pas.
develop_adn
>
jordane45
Messages postés38104Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention25 mars 2024 29 août 2016 à 00:28