Moteur de recherche presque fini :

Herozine Messages postés 52 Date d'inscription   Statut Membre Dernière intervention   -  
Herozine Messages postés 52 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
J'ai programmé avec quelques tutoriels un système de connexion a ma base de données tout est bon (fin, je pense), mais chaque fois que je fais une requête aucun élément ne s'affiche + je me demande s'il n'y a pas un moyen d'afficher les résultats sur une page différentes que celle en php car il y aura mes identifiants dedans.



CODE HTML :
<form method="post" action="connection.php">
</br><input type="text" name="titre" id="titre" size="20" maxlength="50" />
<input type="submit" value="Valider"/>
</form>


CODE PHP :
<?php
//La si j'ai bien compris je créer ma variable $requete
$requete = "SELECT id, titre from 'Pages'";
//je me connecte a mon serveur MySQL
$serveur = "serveur";
$utilisateur = "user";
$passe = "password";
$base = "base"
$connexion = MySQL_connect($serveur, $utilisateur, $passe);
//Je vérifie s'il n'y a pas d'erreur(s)
}
else
{
echo 'Erreur';
}
//Je choisi ma base de donnée
mysql_select_db($base);


//Et la normalement ca devrai afficher les informations reçu
while ($row = mysql_fetch_row($res)) {
echo '<tr>';

for ($j = 0; $j < count($row); $j++) {
echo '<td>';
echo ($row[$j] == NULL) ? '<i>NULL</i>' : $row[$j];
echo '</td>';
}

echo '</tr>';
}
?>






Merci d'avance, Herozine

5 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

1 - Tu peux séparer la page contenant la connexion à ta BDD du reste de ta page.
Il te suffit ensuite d'en faire un INCLUDE lorsque tu en as besoin

2 - Tu es passé par mysql .... hors .. avec les futurs versions de mysql il est conseillé de passer à mysqli ou à la PDO (encore mieux)

3 - TU créés ta requête... ok
.. tu te connectes à ta BDD ok
.. tu choisis la base .. ok
.. mais à quelle moment LANCES TU la requête ?

Il te manque le $res = mysql_query($requete)



0
Herozine Messages postés 52 Date d'inscription   Statut Membre Dernière intervention   3
 
A merci pour ta réponse jordane45, peut tu me faire un exemple de connexion avec Mysqli, car je veux pas trop me re-tapé les 10 H de recherche sur internet si tu vois ce quie je veux dire.

Merci encore, Herozine
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
voici un tuto tout fait : https://codular.com/php-mysqli

Sachant que tu peux utiliser deux syntaxes différentes :
La forme objet :

<?php
$mysqli = @new mysqli('localhost', 'fake_user', 'my_password', 'my_db');

// Fonctionne depuis PHP 5.2.9 et 5.3.0.
if ($mysqli->connect_error) {
    die('Erreur de connexion : ' . $mysqli->connect_error);
}else{
 echo " connexion OK !!";
}
?>


La forme procédurale :

<?php
$link = @mysqli_connect('localhost', 'fake_user', 'my_password', 'my_db');

if (!$link) {
    die('Erreur de connexion : ' . mysqli_connect_error());
}else{
   echo " connexion OK !!";
}
?>

0
Herozine Messages postés 52 Date d'inscription   Statut Membre Dernière intervention   3 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
Vraiment merci, je vais regardez ça demain et voir ce que ça donne, je garde la question active, et je posterai le code complet sur cet page.
0
Herozine Messages postés 52 Date d'inscription   Statut Membre Dernière intervention   3
 
J'ai fais tout comme il faut mais rien ne marche. pourrait tu aussi m'expliquer le système "include" merci d'avance.


CODE HTML : (recherche.html)
<form method="post" action="connection.php">
</br><input type="text" name="requete" id="requete"  size="20" maxlength="50" />
<input type="submit" value="Valider"/>
</form>



CODE PHP : (connection.php)
<?php
$bdd = mysqli_connect('serveur', 'user', 'pass', 'db');

if($bdd = mysqli_connect('serveur', 'user', 'pass', 'db'))
{
	
}
else 
{
	echo 'Erreur'; 
}

$req_pre = mysqli_prepare($bdd, 'SELECT * FROM Pages WHERE titre = ?');

mysqli_stmt_bind_param($req_pre, "s", $titre);

$req_pre = mysqli_prepare($bdd, 'INSERT INTO page"s (titre, id, contenu) VALUES ( ?, ?, ?)');
mysqli_stmt_bind_param($req_pre, "sid", $titre, $id, $contenu);

mysqli_stmt_execute($req_pre); 


mysqli_stmt_bind_result($req_pre, $donnees['titre'], $donnees['id'], $donnees['contenu']);

mysqli_stmt_fetch($req_pre);

while(mysqli_stmt_fetch($req_pre))
{
      echo $donnees['titre'] . ", " . $donnees['id'] . " id," . $donnees['contenu'];
}

?>






Herozin
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Tu te fais une page connexion.php ( elle ne contiendra QUE les infos de connexion à ta BDD)
<?php
// Variables à remplacer par LES TIENNES 
$hostname = 'localhost';
$user = 'user';
$pwd = 'pass';
$dataBase = 'ma_database';

// Connexion au serveur :
$bdd= @new mysqli($hostname , $user , $pwd, $dataBase );

// Fonctionne depuis PHP 5.2.9 et 5.3.0.
if ($bdd->connect_error) {
    die('Erreur de connexion : ' . $mysqli->connect_error);
}
?>


Puis dans TES autres pages .. tu peux les INCLURE sans avoir à réécrire à chaque fois le code.

recherche.html :
<form method="post" action="pagederecherche.php">
</br><input type="text" name="requete" id="requete"  size="20" maxlength="50" />
<input type="submit" value="Valider"/>
</form>



pagederecherche.php :
<?php
session_start();

// on inclus la page de connexion à la BDD:
require_once('connexion.php'); 

//Ensuite on peut utiliser la BDD pour faire des requêtes
//-----------------------------------------------------------------------

//on récupère les données venant de la page html...
$titre = isset($_POST['requete'])?$_POST['requete']:NULL;

$sql = "SELECT * FROM Pages WHERE titre = '?'";
$req_pre = mysqli_prepare($bdd,$sql);
//etc...
?>



Après... si ça ne fonctionne toujours pas... penche toi sur l'utilisation des ECHO .. PRINT_R ... sur tes variables pour voir ce qu'elles contiennent.

Penses aussi à tester tes requêtes directement dans ta BDD pour savoir si elles fonctionnent.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Herozine Messages postés 52 Date d'inscription   Statut Membre Dernière intervention   3
 
Merci je vais tester cela.
0