Recherche dans une base

Bigbangss Messages postés 40 Date d'inscription vendredi 30 novembre 2007 Statut Membre Dernière intervention 3 décembre 2008 - 15 avril 2008 à 22:40
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 - 16 avril 2008 à 01:18
Bonsoir tt le monde,
je suis en train d'essayer de créer un moteur de recherche dans ma base de données por mon prochain site, mais j'ai un souci avec la fonction mysql_fetch_array() pourriez-vous me corriger svp?

<?php

include("variables.inc.php");
include("haut.inc.php");

$liendb = mysql_connect($bddserver, $bddlogin, $bddpassword);
mysql_select_db($bdd);
?>
                <form action="search.php" method="post">
                  " size="30" />
                 
                </form>
    

          <!--DWLayoutTable-->
      ----

        id,
    nom,
    prenom,
    naissance,
    &nbsp;,
   
      
      <?php

$clause = '';
if (isset($_REQUEST['motclef'])) {
$clause .= \" WHERE INSTR(nom,'\".$_REQUEST['motclef'].\"')\";
$clause .= \" OR INSTR(artistes,'\".$_REQUEST['motclef'].\"')\";
}

$sql = \"SELECT * FROM tapesall \".$clause;
$resultat = mysql_query ($sql);

while ($tapesall = mysql_fetch_array($resultat))

{
$id = $tapesall['id'];
$nom = $tapesall['nom'];
$artiste = $tapesall['artiste'];
$date = $tapesall['naissance'];
echo \"----
\";
echo \"$id, \";
echo \"$nom, \";
echo \"$artistes, \";
echo \"$date, \";
echo \"\";
}
echo "
";

mysql_close($liendb);

?>

merci de votre aide.

11 réponses

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
15 avril 2008 à 22:47
Salut,

Et quel est le problème exactement ?

<hr size="2" width="100%" />Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
0
Bigbangss Messages postés 40 Date d'inscription vendredi 30 novembre 2007 Statut Membre Dernière intervention 3 décembre 2008
15 avril 2008 à 22:51
ca m'affiche ca (c vrai si je dis tout ce qui se passe...) :

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\.......\search.php on line 278

c'est quoi mon problème?
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
15 avril 2008 à 22:58
Hello,

ben ta requête foire. Affiche la en clair après l'avoir construite pour voir à auoi elle ressemble.
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
15 avril 2008 à 23:00
Ah ! Ben c'est mieux :)

Le résultat que tu obtiens n'est pas un résultat mysql... Parce que ta requête a échoué.
Pour t'assurer que ton script se déroule bien, tu DOIS vérifier que la requête s'est correctement déroulée.

if (resultat = mysql_query($sql)) {
  // Traitement du résultat
}
else {
  echo 'Requête : ' . $sql . '
';
  echo 'Erreur n°' . mysql_errno() . ' : ' . mysql_error();
}

Ca te permet de savoir ce qui se passe et pourquoi. Afficher la requête, quand tu fais du debug, ça te permet de déceler une erreur dans ce qui est effectivement exécuté (et pas ce que tu imagines avec les variables, qui peuvent parfois te réserver des surprises) ou de l'exécuter (dans phpMyAdmin par exemple) pour voir mieux ce qui déconne.

<hr size="2" width="100%" />Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
0

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

Posez votre question
Bigbangss Messages postés 40 Date d'inscription vendredi 30 novembre 2007 Statut Membre Dernière intervention 3 décembre 2008
15 avril 2008 à 23:00
qu'est ce que tu entends par affiche la en clair?
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
15 avril 2008 à 23:03
echo $sql;
0
Bigbangss Messages postés 40 Date d'inscription vendredi 30 novembre 2007 Statut Membre Dernière intervention 3 décembre 2008
15 avril 2008 à 23:18
[auteur/NEIGEDHIVER/924195.aspx neigedhiver]




j'ai placé le code que tu m'as filé en dessous de
$resultat = mysql_query ($sql);

ca me donne ca : Requête : SELECT * FROM tapesall WHERE INSTR(nom,'dj') OR INSTR(artistes,'dj')
Erreur n°1046 : No database selected

j'ai perdu toutes mes notions de requetes sql....comment je définit la base dans laquelle i faut chercher la table tapesall?
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
15 avril 2008 à 23:26
Tu es censé l'avoir fait avec la ligne :
mysql_select_db($bdd);

Sauf que visiblement, ça n'a pas marché.
Dans ton script, tu ne contrôles aucune erreur. Et après, tu galères pour trouver.

Soit $bdd est vide, soit c'est un nom de base de données qui n'existe pas.  Il semble que la connexion au serveur soit quand même ok...

Lis un peu la doc :
http://fr.php.net/mysql_select_db

Valeurs de retour

Cette fonction retourne <tt>TRUE</tt> en cas de
succès, <tt>FALSE</tt> en cas d'échec.


=>

if (!mysql_select_db($bdd)) {
  die('Erreur n°' . mysql_errno() . ' : ' . mysql_error());
}

Prends l'habitude de vérifier que tout se passe bien et fais en sorte d'être informé quand ce n'est pas le cas.

<hr size="2" width="100%" />Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
0
Bigbangss Messages postés 40 Date d'inscription vendredi 30 novembre 2007 Statut Membre Dernière intervention 3 décembre 2008
15 avril 2008 à 23:37
j'ai copié bêtement le code que j'ai dans mon livre sans réfléchir un minimum....je n'avais pas défini $bdd dans mon fichier variables.inc.php....
la ca a l'air de marche maintenan...
mais ya ke le critere nom qui apparait.....
je triture mon code et je re!
0
Bigbangss Messages postés 40 Date d'inscription vendredi 30 novembre 2007 Statut Membre Dernière intervention 3 décembre 2008
16 avril 2008 à 00:19
j'ai resolu mon problème :p merci beaucoup!
je souhaiterai savoir comment fait-on pour afficher une image dans le code php, sachant ke le nom de l'image se trouve dans ma base de données. Est ce que je suis clair?
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
16 avril 2008 à 01:18
Plop,

Si le problème est résolu, marque le sujet comme résolu.

Pour ton deuxième problème, normalement, il faut ouvrir un nouveau sujet. En plus, je comprends pas ce que tu veux...

<hr size="2" width="100%" />Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
0