mysql fetch array()/mysql fetch assoc () / mysql fetch row () / mysql num rows etc ... s'attend à ce que le paramètre 1 soit une ressource

j'essaie de sélectionner des données à partir D'une table MySQL, mais je reçois un des messages d'erreur suivants:

mysql_fetch_array () s'attend à ce que le paramètre 1 soit ressource, booléen donné

ou

mysqli_fetch_array () s'attend à ce que le paramètre 1 soit mysqli_result, booléen donné

ou

Appel à un membre fonction fetch_array() boolean / non-objet

C'est mon code:

$username = $_POST['username'];
$password = $_POST['password'];

$result = mysql_query('SELECT * FROM Users WHERE UserName LIKE $username');

while($row = mysql_fetch_array($result)) {
    echo $row['FirstName'];
}

la même chose s'applique au code comme

$result = mysqli_query($mysqli, 'SELECT ...');
// mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given
while( $row=mysqli_fetch_array($result) ) {
    ...

et

$result = $mysqli->query($mysqli, 'SELECT ...');
// Call to a member function fetch_assoc() on a non-object
while( $row=$result->fetch_assoc($result) ) {
    ...

et

$result = $pdo->query('SELECT ...', PDO::FETCH_ASSOC);
// Invalid argument supplied for foreach()
foreach( $result as $row ) {
    ...

et

$stmt = $mysqli->prepare('SELECT ...');
// Call to a member function bind_param() on a non-object
$stmt->bind_param(...);

et

$stmt = $pdo->prepare('SELECT ...');
// Call to a member function bindParam() on a non-object
$stmt->bindParam(...);
884
demandé sur Rakibul Haq 2010-06-04 14:18:08

30 réponses

une requête peut échouer pour diverses raisons, auquel cas mysql_* et l'extension mysqli retourneront false à partir de leurs fonctions/méthodes de requête respectives. Vous devez tester pour cette condition d'erreur et le gérer en conséquence.

mysql_* extension :

NOTE les les fonctions mysql_ sont dépréciées et ont été supprimés dans la version 7 de php.

cochez $result avant de la passer à mysql_fetch_array . Vous trouverez que c'est false parce que la requête a échoué. Voir la documentation mysql_query pour les valeurs de retour possibles et des suggestions pour la façon de les traiter.

$username = mysql_real_escape_string($_POST['username']);
$password = $_POST['password'];
$result = mysql_query("SELECT * FROM Users WHERE UserName LIKE '$username'");

if($result === FALSE) { 
    die(mysql_error()); // TODO: better error handling
}

while($row = mysql_fetch_array($result))
{
    echo $row['FirstName'];
}

mysqli extension

Style procédural :

$username = mysqli_real_escape_string($mysqli, $_POST['username']);
$result = mysqli_query($mysqli, "SELECT * FROM Users WHERE UserName LIKE '$username'");

// mysqli_query returns false if something went wrong with the query
if($result === FALSE) { 
    yourErrorHandler(mysqli_error($mysqli));
}
else {
    // as of php 5.4 mysqli_result implements Traversable, so you can use it with foreach
    foreach( $result as $row ) {
        ...

oo "de style 1519380920" :

$username = $mysqli->escape_string($_POST['username']);
$result = $mysqli->query("SELECT * FROM Users WHERE UserName LIKE '$username'");

if($result === FALSE) { 
    yourErrorHandler($mysqli->error); // or $mysqli->error_list
}
else {
    // as of php 5.4 mysqli_result implements Traversable, so you can use it with foreach
    foreach( $result as $row ) {
      ...

utilisant une déclaration préparée:

$stmt = $mysqli->prepare('SELECT * FROM Users WHERE UserName LIKE ?');
if ( !$stmt ) {
    yourErrorHandler($mysqli->error); // or $mysqli->error_list
}
else if ( !$stmt->bind_param('s', $_POST['username']) ) {
    yourErrorHandler($stmt->error); // or $stmt->error_list
}
else if ( !$stmt->execute() ) {
    yourErrorHandler($stmt->error); // or $stmt->error_list
}
else {
    $result = $stmt->get_result();
    // as of php 5.4 mysqli_result implements Traversable, so you can use it with foreach
    foreach( $result as $row ) {
      ...

ces exemples illustrent seulement ce que devrait être fait (Traitement des erreurs), et non comment le faire. Code de Production ne devrait pas utiliser or die pour la sortie HTML, sinon, il générera (à tout le moins) du HTML non valide. En outre, les messages d'erreur de base de données ne devraient pas être affichés pour les utilisateurs non-admin, car il divulgue trop d'informations .

625
répondu scompt.com 2017-05-23 12:02:56

Ce message d'erreur s'affiche lorsque vous avez une erreur dans votre requête, qui l'a fait échouer. Il se manifestera en utilisant:

  • mysql_fetch_array / mysqli_fetch_array()
  • mysql_fetch_assoc() / mysqli_fetch_assoc()
  • mysql_num_rows() / mysqli_num_rows()

Note : cette erreur ne pas apparaît si aucune ligne n'est affectée par votre requête. Seule une requête avec une syntaxe non valide générera cette erreur.

Étapes De Dépannage

  • assurez-vous que votre serveur de développement est configuré pour afficher toutes les erreurs. Vous pouvez le faire en plaçant en haut de vos fichiers ou dans votre fichier de config: error_reporting(-1); . Si vous avez des erreurs de syntaxe, elles vous seront signalées.

  • Utilisation mysql_error() . mysql_error() rapportera toutes les erreurs MySQL rencontrées lors de l'exécution de votre requête.

    exemple d'utilisation:

    mysql_connect($host, $username, $password) or die("cannot connect"); 
    mysql_select_db($db_name) or die("cannot select DB");
    
    $sql = "SELECT * FROM table_name";
    $result = mysql_query($sql);
    
    if (false === $result) {
        echo mysql_error();
    }
    
  • lancez votre requête depuis la ligne de commande MySQL ou un outil comme phpMyAdmin . Si vous avez une erreur de syntaxe dans votre requête cela vous dira ce que c'est.

  • Assurez-vous que vos citations sont correctes. Une citation manquante autour de la requête ou d'une valeur peut causer l'échec d'une requête.

  • assurez-vous d'échapper à vos valeurs. Les guillemets dans votre requête peuvent causer l'échec d'une requête (et aussi vous laisser ouvert aux injections SQL). Utilisez mysql_real_escape_string() pour échapper à votre entrée.

  • assurez-vous de ne pas mélanger les fonctions mysqli_* et mysql_* . Ils ne sont pas la même chose et ne peuvent pas être utilisés ensemble. (Si vous voulez choisir l'un ou l'autre bâton avec mysqli_* . Voir ci-dessous pourquoi.)

autres conseils

mysql_* les fonctions ne doivent pas être utilisées pour le nouveau code. Ils ne sont plus maintenus et la communauté a commencé le processus de dépréciation . Au lieu de cela, vous devriez en savoir plus sur préparé déclarations et utiliser soit AOP ou MySQLi . Si vous ne pouvez pas décider, cet article aidera à choisir. Si vous voulez apprendre, voici bon tutoriel AOP .

160
répondu John Conde 2014-11-10 15:21:53
L'erreur

s'est produite ici en raison de l'utilisation de guillemets simples ( ' ). Vous pouvez mettre votre requête comme ceci:

mysql_query("
SELECT * FROM Users 
WHERE UserName 
LIKE '".mysql_real_escape_string ($username)."'
");

il utilise mysql_real_escape_string pour la prévention de L'injection SQL. Bien que nous devrions utiliser MySQLi ou L'extension PDO_MYSQL pour la version améliorée de PHP (PHP 5.5.0 et plus tard), mais pour les versions plus anciennes mysql_real_escape_string fera l'affaire.

108
répondu nik 2015-11-19 08:08:59

As scompt.com a expliqué , la requête pourrait échouer. Utilisez ce code pour obtenir l'erreur de la requête ou le résultat correct:

$username = $_POST['username'];
$password = $_POST['password'];

$result = mysql_query("
SELECT * FROM Users 
WHERE UserName LIKE '".mysql_real_escape_string($username)."'
");

if($result)
{
    while($row = mysql_fetch_array($result))
    {
        echo $row['FirstName'];
    }
} else {
    echo 'Invalid query: ' . mysql_error() . "\n";
    echo 'Whole query: ' . $query; 
}

voir la documentation pour mysql_query() pour plus d'informations.

L'erreur était les guillemets simples, de sorte que la variable $username n'a pas été analysée. Mais vous devez vraiment utiliser mysql_real_escape_string($username) pour éviter les injections SQL.

59
répondu 2ndkauboy 2017-05-23 12:34:48

mettez des guillemets autour de $username . Les valeurs de chaîne, par opposition aux valeurs numériques, doivent être incluses dans les guillemets.

$result = mysql_query("SELECT * FROM Users WHERE UserName LIKE '$username'");

en outre, il n'y a aucun intérêt à utiliser la condition LIKE si vous n'utilisez pas de jokers: si vous avez besoin d'une correspondance exacte utilisez = au lieu de LIKE .

53
répondu Matteo Riva 2010-06-04 10:22:01

s'il vous Plaît vérifier une fois la base de données sélectionnées ne sont pas parce que certains moments de la base de données n'est pas activée

Vérifier

mysql_select_db('database name ')or DIE('Database name is not available!');

avant MySQL query puis passez à l'étape suivante

$result = mysql_query('SELECT * FROM Users WHERE UserName LIKE $username');

f($result === FALSE) {
    die(mysql_error());
43
répondu yasin 2012-07-11 10:19:08

votre code devrait être quelque chose comme ça

$username = $_POST['username'];
$password = $_POST['password'];
$query = "SELECT * FROM Users WHERE UserName LIKE '$username'";
echo $query;
$result = mysql_query($query);

if($result === FALSE) {
    die(mysql_error("error message for the user")); 
}

while($row = mysql_fetch_array($result))
{
    echo $row['FirstName'];
}

une Fois terminé, vous obtenez la requête imprimée sur l'écran. Essayez cette requête sur votre serveur et voir si elle produit les résultats escomptés. La plupart du temps, l'erreur est dans la requête. Reste du code est correct.

40
répondu Chaitannya 2012-01-05 11:06:20
$result = mysql_query('SELECT * FROM Users WHERE UserName LIKE $username');

vous définissez la chaîne de caractères en utilisant des guillemets simples et PHP n'analyse pas les guillemets simples délimités. Afin d'obtenir l'interpolation variable, vous devrez utiliser les guillemets doubles ou la concaténation de chaîne (ou une combinaison de). Voir http://php.net/manual/en/language.types.string.php pour plus d'information.

vous devriez également vérifier que mysql_query retourné une ressource de résultat valide, sinon fetch_*, num_rows, etc ne pas travailler sur le résultat comme n'est pas un résultat! C'est à dire:

$username = $_POST['username'];
$password = $_POST['password'];
$result = mysql_query('SELECT * FROM Users WHERE UserName LIKE $username');

if( $result === FALSE ) {
   trigger_error('Query failed returning error: '. mysql_error(),E_USER_ERROR);
} else {
   while( $row = mysql_fetch_array($result) ) {
      echo $row['username'];
   }
}

http://us.php.net/manual/en/function.mysql-query.php pour plus d'information.

35
répondu derokorian 2012-01-08 03:48:24

cette requête devrait fonctionner:

$result = mysql_query("SELECT * FROM Users WHERE UserName LIKE '%$username%'");
while($row = mysql_fetch_array($result))
{
    echo $row['FirstName'];
}

le problème est des guillemets simples, donc votre requête échoue et retourne FALSE et votre boucle WHILE ne peut pas être exécutée. Utiliser % vous permet de faire correspondre tous les résultats contenant votre chaîne (comme SomeText-$username-SomeText).

il s'agit simplement d'une réponse à votre question, vous devez mettre en œuvre les choses mentionnées dans les autres messages: gestion des erreurs, utiliser des chaînes d'échappement (les utilisateurs peuvent taper n'importe quoi dans le champ, et vous Doit s'assurer qu'il ne s'agit pas d'un code arbitraire), utilisez PDO à la place de mysql_connect qui est maintenant déprécié.

34
répondu Enis P. Aginić 2013-04-23 13:49:18
$username = $_POST['username'];
$password = $_POST['password'];
$result = mysql_query("SELECT * FROM Users WHERE UserName LIKE '%$username%'") or die(mysql_error());

while($row = mysql_fetch_array($result))
{
    echo $row['FirstName'];
}

supprime parfois la requête comme @mysql_query(your query);

29
répondu Dip Pokhrel 2014-04-04 16:57:33

si vous avez tout essayé ici, et que cela ne fonctionne pas, vous pourriez vouloir vérifier votre compilation de base de données MySQL. Le mien a été fixé à une collation suédoise. Puis je l'ai changé en utf8_general_ci et tout s'est embrayé.

j'espère que cela aidera quelqu'un.

27
répondu kolexinfos 2014-04-13 22:31:54
$query = "SELECT Name,Mobile,Website,Rating FROM grand_table order by 4";

while( $data = mysql_fetch_array($query))
{
    echo("<tr><td>$data[0]</td><td>$data[1]</td><td>$data[2]</td><td>$data[3]</td></tr>");      
}

au lieu d'utiliser une requête WHERE, vous pouvez utiliser cet ordre Par requête. C'est beaucoup mieux que pour l'utilisation d'une requête.

j'ai fait cette requête et je ne reçois aucune erreur comme paramètre OU booléen.

25
répondu Gears.of.Codes 2014-10-29 18:46:37

essayez ceci, cela doit être du travail, sinon vous devez imprimer l'erreur pour spécifier votre problème

$username = $_POST['username'];
$password = $_POST['password'];

$sql = "SELECT * from Users WHERE UserName LIKE '$username'";
$result = mysql_query($sql,$con);

while($row = mysql_fetch_array($result))
{
    echo $row['FirstName'];
}
25
répondu Amjad Omari 2015-05-30 19:43:23

essayez le code suivant. Il peut fonctionner correctement.

$username = $_POST['username'];
$password = $_POST['password'];
$result = mysql_query("SELECT * FROM Users WHERE UserName ='$username'");

while($row = mysql_fetch_array($result))
{
    echo $row['FirstName'];
}
21
répondu ravi 2014-04-13 22:36:20

il pourrait y avoir deux raisons:

  1. avez-vous ouvert la connexion à la base de données avant d'appeler la fonction mysql_query? Je ne vois pas ça dans ton code. Utilisation mysql_connect avant de faire la requête. Voir php.net/manual/en/function.mysql-connect.php

  2. la variable $username est utilisée à l'intérieur d'une seule chaîne de citation, de sorte que sa valeur ne sera pas évaluée à l'intérieur de la requête. La requête échouera définitivement.

Troisièmement, la structure de la requête est sujette à SQL injection . Vous pouvez utiliser des déclarations préparées pour éviter cette menace à la sécurité.

20
répondu asim-ishaq 2014-04-13 22:35:44

passez à votre config.php . J'ai eu le même problème. Vérifiez le nom d'utilisateur et le mot de passe, et aussi sql select est le même nom que la configuration.

15
répondu user2835116 2013-12-15 20:47:40
<?php
    $username = $_POST['username'];
    $password = $_POST['password'];
    $result = mysql_query("SELECT * FROM Users WHERE UserName LIKE '".$username."'");

    while($row = mysql_fetch_array($result))
    {
        echo $row['FirstName'];
    }
?>

et s'il y a un utilisateur avec un nom d'utilisateur unique, vous pouvez utiliser " = " pour cela. Il n'y a pas besoin de l'aimer.

votre requête sera:

mysql_query("SELECT * FROM Users WHERE UserName ='".$username."'");
15
répondu Janak Prajapati 2014-04-13 22:40:01

inclut une variable de chaîne de connexion avant la requête MySQL. Par exemple, $connt dans ce code:

$results = mysql_query($connt, "SELECT * FROM users");
14
répondu Durairaj 2014-12-07 17:32:13

N'utilisez pas la fonction mysql_* dépréciée (dépricated in php 5.5 sera supprimé dans php 7). et vous pouvez le faire avec mysqli ou AOP

voici la requête select complète

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        // code here 
    }
} else {
    echo "0 results";
}
$conn->close();
?>
14
répondu Manoj Kumar 2015-04-16 06:53:00

Essayez Cette

$username = $_POST['username'];
$password = $_POST['password'];
$result = mysqli_query('SELECT * FROM Users WHERE UserName LIKE $username');

if($result){
while($row = mysqli_fetch_array($result))
{
    echo $row['FirstName'];
}
}
12
répondu Suresh Ratten 2016-01-04 05:28:00

Vérifiez D'abord votre connexion à la base de données. Est-il connecté avec succès ou non?

si c'est fait, alors après que j'ai écrit ce code, et il fonctionne bien:

if (isset($_GET['q1mrks']) && isset($_GET['marks']) && isset($_GET['qt1'])) {
    $Q1mrks = $_GET['q1mrks'];
    $marks = $_GET['marks'];
    $qt1 = $_GET['qt1'];

    $qtype_qry = mysql_query("
        SELECT *
        FROM s_questiontypes
        WHERE quetype_id = '$qt1'
    ");
    $row = mysql_fetch_assoc($qtype_qry);
    $qcode = $row['quetype_code'];

    $sq_qry = "
        SELECT *
        FROM s_question
        WHERE quetype_code = '$qcode'
        ORDER BY RAND() LIMIT $Q1mrks
    ";
    $sq_qry = mysql_query("
        SELECT *
        FROM s_question
        WHERE quetype_code = '$qcode'
        LIMIT $Q1mrks
    ");
    while ($qrow = mysql_fetch_array($sq_qry)) {
        $qm = $qrow['marks'] . "<br />";
        $total += $qm . "<br />";
    }
    echo $total . "/" . $marks;
}
10
répondu Peter Mortensen 2014-04-13 22:33:46
<?php
      $username = $_POST['username'];
       $password = $_POST['password'];

     $result = mysql_query("SELECT * FROM Users WHERE UserName LIKE '".mysql_real_escape_string($username)."'")or die(mysql_error());
while($row=mysql_fetch_array($result))
  {
 echo $row['FirstName'];
 }
 ?>
10
répondu Dennis Kiptugen 2015-04-06 18:01:37

chaque fois que vous obtenez le...

"Avertissement: mysqli_fetch_object() s'attend à ce paramètre 1 pour être mysqli_result, booléenne donnée"

...c'est probablement parce qu'il y a un problème avec votre requête. Le prepare() ou query() pourrait retourner FALSE (un booléen), mais ce message générique d'échec ne vous laisse pas beaucoup d'indices. Comment pouvez-vous savoir quel est le problème avec votre requête? Vous demandez !

tout d'abord, assurez-vous que le rapport d'erreur est activé et visible: ajoutez ces deux lignes en haut de votre(Vos) fichier (s) juste après votre ouverture <?php étiquette:

error_reporting(E_ALL);
ini_set('display_errors', 1);

Si votre rapport d'erreur a été défini dans le php.ini vous n'aurez pas à vous inquiéter à ce sujet. Assurez-vous juste que vous manipulez les erreurs avec élégance et ne jamais révéler la véritable cause de tous les problèmes à vos utilisateurs. Révéler la vraie cause pour le public peut être une invitation gravée or pour ceux qui veulent nuire à vos sites et serveurs. Si vous ne voulez pas envoyer d'erreurs au navigateur, vous pouvez toujours surveiller les journaux d'erreurs de votre serveur web. L'emplacement des logs varie d'un serveur à l'autre .par exemple, sur Ubuntu, le log d'erreur est typiquement situé à /var/log/apache2/error.log . Si vous examinez les journaux d'erreurs dans un environnement Linux, vous pouvez utiliser tail -f /path/to/log dans une fenêtre de console pour voir les erreurs telles qu'elles se produisent en temps réel....ou comme tu les fais.

une fois que vous êtes au carré sur le rapport d'erreur standard ajouter le contrôle d'erreur sur votre connexion de base de données et les requêtes vous donnera beaucoup plus de détails sur les problèmes en cours. Regardez cet exemple où le nom de la colonne est incorrect. Tout d'abord, le code qui renvoie le message d'erreur fatal Générique:

$sql = "SELECT `foo` FROM `weird_words` WHERE `definition` = ?";
$query = $mysqli->prepare($sql)); // assuming $mysqli is the connection
$query->bind_param('s', $definition);
$query->execute();

l'erreur est générique et pas très utile pour vous dans la résolution de ce qui se passe.

avec quelques lignes supplémentaires de code vous pouvez obtenir des informations très détaillées que vous pouvez utiliser pour résoudre le problème immédiatement . Vérifiez la déclaration prepare() pour la véracité et si elle est bonne, vous pouvez procéder à la reliure et l'exécution.

$sql = "SELECT `foo` FROM `weird_words` WHERE `definition` = ?";
if($query = $mysqli->prepare($sql)) { // assuming $mysqli is the connection
    $query->bind_param('s', $definition);
    $query->execute();
    // any additional code you need would go here.
} else {
    $error = $mysqli->errno . ' ' . $mysqli->error;
    echo $error; // 1054 Unknown column 'foo' in 'field list'
}

si quelque chose ne va pas, vous pouvez cracher un message d'erreur qui vous amène directement au problème. Dans ce cas, il n'y a pas de colonne foo dans le tableau, résoudre le problème est trivial.

si vous choisissez, vous pouvez inclure cette vérification dans une fonction ou une classe et l'étendre en traitant les erreurs avec élégance comme mentionné précédemment.

10
répondu Jay Blanchard 2015-08-05 20:53:42

assurez-vous de ne pas fermer la base de données en utilisant db_close() avant de Exécution De Votre Requête:

si vous utilisez plusieurs requêtes dans un script, même si vous incluez d'autres pages qui contiennent des requêtes ou une connexion à une base de données, alors il est possible qu'à n'importe quel endroit vous utilisiez db_close() qui fermerait votre connexion à la base de données, alors assurez-vous de ne pas faire cette erreur dans vos scripts.

9
répondu A.Aleem11 2014-10-13 15:07:02

Vérifiez d'abord votre connexion.

alors si vous voulez récupérer la valeur exacte de la base de données, vous devez écrire:

$username = $_POST['username'];
$password = $_POST['password'];
$result = mysql_query("SELECT * FROM Users WHERE UserName =`$usernam`");

ou vous voulez obtenir le type de valeur LIKE alors vous devez écrire:

$result = mysql_query("SELECT * FROM Users WHERE UserName LIKE '%$username%'");
8
répondu Omdev 2014-04-13 22:37:01

si vous n'avez pas D'erreur MySQL apparaissant lors de la vérification, assurez-vous que vous avez correctement créé votre table de base de données. Ce qui m'est arrivé. Cherchez les guillemets ou les guillemets indésirables.

8
répondu user1012181 2014-11-08 13:36:00

vous pouvez aussi vérifier si $result tombe en panne comme ça, avant d'exécuter le tableau fetch

$username = $_POST['username'];
$password = $_POST['password'];
$result = mysql_query('SELECT * FROM Users WHERE UserName LIKE $username');
if(!$result)
{
     echo "error executing query: "+mysql_error(); 
}else{
       while($row = mysql_fetch_array($result))
       {
         echo $row['FirstName'];
       }
}
7
répondu user28864 2013-12-15 20:27:05

vous pouvez essayer ce code. Je l'ai trouvé plus tôt, quand j'avais rencontré un problème similaire au vôtre.

if (isset($_GET['q1mrks']) && isset($_GET['marks']) && isset($_GET['qt1'])) {
$Q1mrks = $_GET['q1mrks'];
$marks = $_GET['marks'];
$qt1 = $_GET['qt1'];

$qtype_qry = mysql_query("
    SELECT *
    FROM s_questiontypes
    WHERE quetype_id = '$qt1'
");
$row = mysql_fetch_assoc($qtype_qry);
$qcode = $row['quetype_code'];

$sq_qry = "
    SELECT *
    FROM s_question
    WHERE quetype_code = '$qcode'
    ORDER BY RAND() LIMIT $Q1mrks
";
$sq_qry = mysql_query("
    SELECT *
    FROM s_question
    WHERE quetype_code = '$qcode'
    LIMIT $Q1mrks
");
while ($qrow = mysql_fetch_array($sq_qry)) {
    $qm = $qrow['marks'] . "<br />";
    $total += $qm . "<br />";
}
echo $total . "/" . $marks;
}
6
répondu Mithun Debnath 2015-02-07 06:56:17

habituellement une erreur se produit quand votre conectivite de base de données échoue, alors assurez-vous de connecter votre base de données ou d'inclure le fichier de base de données.

include_once(db_connetc.php');

ou

// Create a connection
$connection = mysql_connect("localhost", "root", "") or die(mysql_error());

//Select database
mysql_select_db("db_name", $connection) or die(mysql_error());

$employee_query = "SELECT * FROM employee WHERE `id` ='".$_POST['id']."';

$employee_data = mysql_query($employee_query);

if (mysql_num_rows($employee_data) > 0) {

    while ($row = mysql_fetch_array($employee_data)){
        echo $row['emp_name'];
    } // end of while loop
} // end of if
  • Meilleure pratique consiste à exécuter la requête dans sqlyog, puis le copier dans le code de la page.
  • stockez toujours votre requête dans une variable et ensuite echo cette variable. Puis passer à mysql_query($query_variable); .
5
répondu Engr Zardari 2014-04-13 22:44:11

essayez ce code il fonctionne très bien

assignez la variable post à la variable

   $username = $_POST['uname'];

   $password = $_POST['pass'];

  $result = mysql_query('SELECT * FROM userData WHERE UserName LIKE $username');

if(!empty($result)){

    while($row = mysql_fetch_array($result)){
        echo $row['FirstName'];
     }
}
4
répondu Ritesh d joshi 2014-07-14 14:01:28