Bonjour,
Je suis nouveau ici et me voila avec un problème à résoudre.
Je précise je débute en PHP.
J'ai trois tables dans ma base:
table villes :
ville_id type int primaire en Auto increment
ville_nom type varchar
ville_texte type text

table users :
user_id type int primaire en autoencrement
user_prenom type varchar

table users_searchs:
user_id type int
ville_id type int

L'utilisateur entre son prénom via un formulaire qui ouvre une session dans cette session il y a un formulaire de recherche de ville qui retourne un résultat et qui est enregistré dans la table users_searchs. Jusque la tout va bien.

Maintenant je voudrais que l'utilisateur voit les villes qu'il a recherché. "Vous avez déjà cherché nomdelaville"

Voila le code que j'essaye mais qui ne fonctionne pas
<?php
$result = $mysqli->query("SELECT user_id, ville_id FROM user_searchs INNER JOIN villes ON villes.ville_id = user_searchs.ville_id WHERE user_id = '.$user_id.'");

while($row = $result->fetch_array())
{
    $liste_rech[$row['ville_id']] = $row['ville_nom'];

}
 
?>

Le code me retourne cette erreur :
Call to a member function fetch_array() on boolean

Je précise que je démarre bien ma page avec session_star() et que je suis bien connecté à ma base de donnée.

Mon $user_id a été construit plus haut voila le code :

$user_prenom = $_SESSION['user_prenom'];
$result = $mysqli->query("SELECT user_id, user_prenom FROM users WHERE user_prenom = '$user_prenom' ") or die (mysql_error());
			$row = $result->fetch_array();
			$user_prenom = $row['user_prenom'];
			$user_id = $row['user_id'];


Pouvez-vous m'aider?
Modérateur
Bonjour,

apparemment $result est un booléen, du coup ça doit être FALSE parce que la requête a eu un problème.

essaie de rajouter après ta requête:


if (!$result) {
  printf("Message d'erreur : %s\n", $mysqli->error);
  // @TODO: gérer mieux les erreurs [smile]
}