Je suis nouveau sur le forum et vous remercie d'exister car le php c'est la croix et la bannière!
Ainsi voila mon problème. j'ai un projet à faire : création d'une base de données en ligne et avant même mon premier code..j'ai cette erreur : Accès refusé pour l'utilisateur: 'admin'@'@localhost' (mot de passe: OUI)
Je ne comprends pas pourquoi.
Voici ma page code qui est censé me trouver des résultats multiples et qui au lieu de trouver m'affiche des erreurs :
<?php
$transport=$post ['transport'];// $post récupère le contenu de la ligne transport (par le formulaire de formulaire.php)
echo "</br>";
$titre=$post ['titre'];
echo $titre;
echo $transport;
$titre=""; // //initialise la variable titre
$transport=""; //initialise la variable transport
$requete = mysql_fetch_array( $_POST['requete'] );
// Extraction des mots clefs
$mots = explode( " ", $requete );
if( count( $mots ) > 0 ) {
// Première partie de ta requête
$query = "SELECT * FROM geode WHERE ";
for( $i = 0; $i < count( $mots ); $i++ ) {
$query .= "titre LIKE '%". $mots[$i] ."%' OR transport LIKE '%". $mots[$i] ."%' OR photographe LIKE '%". $mots[$i] ."%'";
if( $i < count( $mots ) - 1 )
$query .= " OR ";
}
$query .= " ORDER BY id DESC";
$reponse = mysql_query( $query ) or die( mysql_error() );
} else {
// Aucune donnée
}
$chaine_interrogation= "SELECT titre, transport, photographe FROM geode WHERE".$where;
//pour permettre d'afficher les informations dans chaque champs. (SELECT)
// LIKE permet de recherche une lettre dans tel ligne indiquer avant like le nom du champs entre "%"
echo $chaine_interrogation;
$servername = 'localhost';
$username = 'admin';
$password = 'admincalamite';
$dbbase = 'geode';
$conn=new mysqli("localhost","admin","admincalamite","geode"); // se connecte sur la base mysql ayant le nom du serveur +dam (user)+ mot de passe + le nom de la base de donnée.
if($conn->connect_error) die ($conn->connect_error); // test si la connection s'est bien passé.
// where permet de faire afficher un elément d'un champ. le * entre select et from permet de selectionner toute la table. Sinon juste indiquer les champs voulu entre.
// ci dessus on stocke la chaine des champs de la base de données livre dans la variable (chaine_interrogation)
$res=$conn->query($chaine_interrogation);// la methode query de l'objet $conn retourne le resultat dans l'objet $res. si different de false, on récupère les données
$nbligne=$res->num_rows;
echo $rows; // affiche le nombre des resultats /champs enregistrés dans la base de données.(num_rows = nombre de livre). Le nombre de ligne présent dans la base de donnée
// création du tableau (vide sans les données)
echo"<table border=1>";
echo '<tr>';
echo "<th>";
echo "titre";
echo "</th>";
echo "<th>";
echo "transport";
echo "</th>";
echo "<th>";
echo "photographe";
echo "</th>";
echo "<th>";
echo "rien";
echo "</th>";
echo "<th>";
echo "rien";
echo "</th>";
echo "</tr>";
for ($j=0; $j<$nbligne; $j++)
{ $res->data_seek($j); // permet de se positionner sur une ligne d'enregistrement.
//fetch_array methode retourne la ligne entière des données sous forme de tableau. Peut retourner 3 types de tableaux différents
$row=$res->fetch_array(MYSQLI_ASSOC); // crée un tableau avec les champs remplis dans le tableau.
//echo 'ISBN : '.$row['coteisbn'].'<br>'; // permet d'afficher les donnees enregistrées dans la base.(.$row[nomdelaligne])
//echo 'ID : '.$row['idLivre'].'<br>';
echo '<tr>'; // cette partie ajoute les elements dans le tableau realisée précédemment
echo '<td>'.$row ['titre'].'<br>';
echo '</td>';
echo '<td>'.$row['transport'].'<br>';
echo '</td>';
echo '<td>'.$row ['photographe'].'<br>';
echo '</td>';
echo '<td>'.$row ['rien'].'<br>';
echo '</td>';
echo '</td>';
echo '<td>'.$row ['rien'].'<br>';
echo '</tr>';
}
echo '</table>';
$res->close();
$conn->close();
?>
Je suppose qu'il y a d'autre erreur car j'ai changé la boucle pour que ce soit une recherche multicritère dans une seule barre de recherche (comme google). Mais le plus important serait d'avoir déjà la connexion à ma base de données....Une idée?
Cordialement,
Shark260486
