Problème script de recherche avec fichier
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour, j'ai un script qui permet d'écrire un article et qui stocke son contenu dans un fichier, mais je n'arrive pas à voir comment je peux modifier mon ancien code pour qu'il recherche dans le fichier : (j'ai enlever la colonne 'contenu' de ma bdd)
Juste pour info, les fichiers créés sont sous cette forme : article_numDeLarticle.txt
Merci d'avance
Nils0
$articleParPage = 5; $articleTotalesReq = $bdd->prepare('SELECT * FROM article_articles WHERE verif = 1 AND CONCAT(titre, contenu) LIKE :queryString'); $articleTotalesReq->execute(array(':queryString' => '%'.$q.'%')); $articleTotales = $articleTotalesReq->rowCount(); $pagesTotales = ceil($articleTotales/$articleParPage); if(isset($_GET['page']) AND !empty($_GET['page']) AND intval($_GET['page']) > 0 AND $_GET['page'] <= $pagesTotales) { $_GET['page'] = intval($_GET['page']); $pageCourante = $_GET['page']; } else { $pageCourante = 1; } $depart = ($pageCourante-1)*$articleParPage; $articles = $bdd->prepare('SELECT * FROM article_articles WHERE titre AND verif = 1 LIKE CONCAT("%", :query, "%") ORDER BY id DESC LIMIT :debut, :nombre'); $articles->bindParam(':debut', $depart, PDO::PARAM_INT); $articles->bindParam(':nombre', $articleParPage, PDO::PARAM_INT); $articles->bindParam(':query', $q, PDO::PARAM_STR); $articles->execute(); if($articles->rowCount() == 0) { $articles = $bdd->prepare('SELECT * FROM article_articles WHERE verif = 1 AND CONCAT(titre, contenu) LIKE CONCAT("%", :query, "%") ORDER BY id DESC LIMIT :debut, :nombre'); $articles->bindParam(':debut', $depart, PDO::PARAM_INT); $articles->bindParam(':nombre', $articleParPage, PDO::PARAM_INT); $articles->bindParam(':query', $q, PDO::PARAM_STR); $articles->execute(); }
Juste pour info, les fichiers créés sont sous cette forme : article_numDeLarticle.txt
Merci d'avance
Nils0
A voir également:
- Problème script de recherche avec fichier
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
1 réponse
Bonjour,
Pour ça .. tu peux lire le fichier ligne par ligne jusqu'à trouver l'info cherchée
https://www.php.net/manual/fr/function.fgets.php
NB : EN PDO .. on place les requêtes dans des blocs TRY/CATCH pour intercepter les éventuelles erreurs
NB² : EN PDO .. on n'utilise pas ROWCOUNT avec une requête SELECT. A la place on fera un FETCHALL puis un COUT sur la variable
NB" : On récupère PROPREMENT les variables AVANT de les utiliser !
Par exemple :
S'écrit plus proprement :
pour qu'il recherche dans le fichier
Pour ça .. tu peux lire le fichier ligne par ligne jusqu'à trouver l'info cherchée
https://www.php.net/manual/fr/function.fgets.php
NB : EN PDO .. on place les requêtes dans des blocs TRY/CATCH pour intercepter les éventuelles erreurs
NB² : EN PDO .. on n'utilise pas ROWCOUNT avec une requête SELECT. A la place on fera un FETCHALL puis un COUT sur la variable
NB" : On récupère PROPREMENT les variables AVANT de les utiliser !
Par exemple :
if(isset($_GET['page']) AND !empty($_GET['page']) AND intval($_GET['page']) > 0 AND $_GET['page'] <= $pagesTotales) { $_GET['page'] = intval($_GET['page']); $pageCourante = $_GET['page']; } else { $pageCourante = 1; }
S'écrit plus proprement :
$pageCourante = !empty($_GET['page']) && intval($_GET['page'])>0 && intval($_GET['page'])<= $pagesTotales ? intval($_GET['page']) : 1;
Utilisateur anonyme
merci de ta réponse, comme j'ai dit, c'est mon "ancien code" que je suis en train de modifier ;)
Utilisateur anonyme
J'ai pas totalement fini, mais pour le moment, j'ai fais ça :