Recherche dans une table

Petit nouveau ! | 2 Messages

17 janv. 2013, 00:31

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

Eléphant du PHP | 120 Messages

17 janv. 2013, 02:32

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.

ViPHP
AB
ViPHP | 5818 Messages

17 janv. 2013, 16:32

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.

Petit nouveau ! | 2 Messages

17 janv. 2013, 16:40

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.

Eléphant du PHP | 120 Messages

17 janv. 2013, 21:31

- 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