Page 1 sur 1

Recherche dans une table

Posté : 17 janv. 2013, 00:31
par simonlaforge
Bonjour,

je tente de créé une petite recherche dans mon site. Je veux seulement chercher dans une seul table et dans un seul ID

Nom de ma table : film_film
ID : nom

J'aimerais utilisé la fonction

Code : Tout sélectionner

<form action="search.php" method="post"> Mot clé<input type="text" name="mot_cle"> <input type="submit" value="Rechercher"> </form>
Et mon fichier search.php

Code : Tout sélectionner

<?php function search() { $resultat=mysql_query("select * from table where $film_film=\"$nom"\") $ligne=mysql_fetch_array($resultat); $nb=mysql_num_rows($resultat); $i=0; while($i<$nb) { $nom=$ligne['nom']; $prenom=$ligne['prenom']; $tel=$ligne['tel']; echo $nom.' '.$prenom.' '.$tel $i=$i+1; } } search(); ?>
Je crois que ma formule n'est pas du tout correct et je n'arrive à rien.

Merci

Re: Recherche dans une table

Posté : 17 janv. 2013, 02:32
par Perine
Il y a pas mal d'erreurs dans ton programme, il faudrait peut-être relire quelques tutoriels sur le PHP et d'approfondir les bases de PHP.
Tout d'abord, tu utilises lors de la construction de ta requête SQL des variables non déclarées. Si tu actives les messages d'erreur avec error_reporting(-1); au début de ton script, tu verras quelles erreurs ton script encaisse.

Quelques conseils :
Tu utilises l'extension MySQL qui est dépréciée à partir de la version PHP5.5 et qui sera sans doute supprimée de PHP5.6 ou PHP6. Cela implique qu'à partir de ces versions, ton script ne marchera plus du tout. Je te conseille donc d'utiliser PDO ou mysqli à la place.
Lors d'une requête SQL, il est fortement déconseillé de sélectionner tous les champs à l'aide de *. Seuls les champs utiles devraient être chargés et même si tous les champs sont utiles, il est fortement conseillé de tous les définir.
MySQL ne connait pas de doubles-quotes pour la délimitation de chaines de caractère. Il s'agit de simples-quotes.

Re: Recherche dans une table

Posté : 17 janv. 2013, 16:32
par AB
Ton code php est un grand spectacle. Tu fais comment pour arriver à cela ? tu tapes sur ton clavier au hasard ?

- Par exemple tu as un champ de recherche nommé "mot_cle", où le récupères-tu dans ton code php ?

- Si tu utilise une fonction (dans ton exemple tu n'en aurais pas besoin) faudrait que tu t'intéresse à la portée des variables dans une fonction.

- Pour lire tes lignes de résultat c'est plutôt while($ligne=mysql_fetch_array($resultat)){}

Pour résumé comme le suggère Perine faudrait que tu passe par la case départ et faire quelques tutos.

Re: Recherche dans une table

Posté : 17 janv. 2013, 16:40
par simonlaforge
En fait j'ai pris un code d'un autre tuto que j'ai tenté de modifier pour arriver à faire ce que je veux, mais j'en suis tout perdu. Je suis vos conseils et retourne voir plus d'exemples pour tenter d'y voir plus clair.

Re: Recherche dans une table

Posté : 17 janv. 2013, 21:31
par Perine
- Pour lire tes lignes de résultat c'est plutôt while($ligne=mysql_fetch_array($resultat)){}

Pour résumé comme le suggère Perine faudrait que tu passe par la case départ et faire quelques tutos.
Haha, mon parser interne s'arrête au bout de 5 erreurs :D