PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 Re : Forum Général PHP » mysql ou mysqli? » 16-09-2017 15:38:27

merci
le probleme est que je travaille ici par l'API mysql et non pas avec mysqli recemment recommandé par php.net("Il est recommandé d'utiliser soit l'extension mysqli, soit l'extension PDO_MySQL. Il n'est pas recommandé d'utiliser l'ancienne extension mysql pour de nouveaux développements sachant qu'elle est obsolète depuis PHP 5.5.0, et sera supprimée dans un futur proche. Une matrice de comparaison détaillant les fonctionnalités est fournie ci-dessous. La performance globale des 3 extensions peut être considérée comme identique. Malgré tout, la performance de l'extension constitue seulement une fraction du temps total d'exécution d'une requête web PHP. Aussi, l'impact est inférieur à 0.1%.").

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).
et maintenant c resolu par la nvlle aprche

#2 Forum Général PHP » mysql ou mysqli? » 16-09-2017 15:38:27

develop_adn
Réponses : 3

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

afficherResultat.php:

<?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";
}
?>

et qui a été appelée par ceci:(affichageMultipages.php)


<!Doctype html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""
[url=http://www.w3.org/TR/xhtml1/DTD/xhtml-transitional.dtd>]http://www.w3.org/TR/xhtml1/DTD/xhtml-transitional.dtd">[/url]
<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'><<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>

quel est le probleme svp merci

#4 Forum Général PHP » [résolu] erreur syntaxique sql? » 14-08-2016 00:20:32

develop_adn
Réponses : 2

bonjour

j'ai un probleme d'execution de la ligne suivante:


$resultat=mysqli_query($connexion,'SELECT * FROM utilisateurs WHERE prenom LIKE "%".$_POST["prenom"]."%"  order by annee_naissance');
 

lors de l'execution on m'affiche ce message d'erreur:

erreur dans l'execution de la requete
le message d'erreur est : Erreur de syntaxe prs de '.$_POST["prenom"]."%" order by annee_naissance'  la ligne 1


j'ai modifié comme ça:


$resultat=mysqli_query($connexion,SELECT * FROM utilisateurs WHERE prenom LIKE $_POST["prenom"]  order by annee_naissance);
 

et l'erreur devient:

syntax error, unexpected 'utilisateurs' (T_STRING) in C:\wamp\www\formulaire\recherche.php on line 34



ET PUIS:

j'ai modifié comme ça:


$resultat=mysqli_query($connexion,SELECT * FROM utilisateurs WHERE prenom LIKE $_POST["prenom"]  order by annee_naissance);
 

et l'erreur devient:

syntax error, unexpected 'utilisateurs' (T_STRING) in C:\wamp\www\formulaire\recherche.php on line 34


ENSUITE:

j'ai essayé les deux :


$resultat=mysqli_query($connexion,'SELECT * FROM utilisateurs WHERE prenom LIKE '$_POST["prenom"]'  order by annee_naissance');
 

ET


$resultat=mysqli_query($connexion,"SELECT * FROM utilisateurs WHERE prenom LIKE "$_POST["prenom"]" order by annee_naissance");
 

j'ai obtenu:

Parse error: syntax error, unexpected '$_POST' (T_VARIABLE) in C:\wamp\www\formulaire\recherche.php on line 34

bizarre!!!!

qui peut m'aider svp? et merci??

Pied de page des forums

Propulsé par FluxBB