Php/Mysql formule de recherche Mysqli [Résolu]

Signaler
Messages postés
52
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
7 avril 2019
-
Messages postés
52
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
7 avril 2019
-
Bonjour,

Je recherche une formule qui recherche dans la BD(Mysqli) si deux variable existent , je n'ai pas trouvé sur le net sauf les anciennes version qui ne sont plus valable pour la version PHP 5... Je ne suis pas un expert dans ce domaine:)

j'ai passé facilement 4 jours à chercher et à essayer.


if (($resultat->num_rows == $id_insc) and ($resultat->num_rows == $id_ent)) {echo "il exist déjà";exit;}


Merci beaucoup de votre aide .

Eric

2 réponses

Messages postés
32980
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 juin 2021
351
Bonjour,

Le code que tu nous montres ... c'est du PHP ..... hors... si tu fais une recherche dans ta BDD ... il faut le faire au niveau de ta requête SQL

PS: La fonction num_rows ....
num_rows -- Retourne le nombre de lignes dans un résultat

Messages postés
52
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
7 avril 2019

Bonjour et merci à Jordane45,

Désolé pour le retard de ma réponse, j'ai trouvé la solution , c'est à mon avis une usine à gaz (je suis trop débutant).


include("includes/sql_connect.php");
$requete = "SELECT * FROM cv_envoye WHERE id_entreprise LIKE '$idEntreprise' and id_inscrit LIKE '$idInscrit'";
$resultat = $base->query($requete) or die ('Erreur '.$requete.' '.$base->error());
$n = $resultat->num_rows;
$base->close();
Messages postés
32980
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 juin 2021
351
Ce code là me semble très bien.
par contre ... si tu utilises des LIKE dans ta requête ... il faut le faire avec des caractères joker ( sinon..ça se comporte comme un EGAL ( = ) )

Donc par exemple :
$requete = "SELECT * 
                 FROM cv_envoye 
                 WHERE id_entreprise LIKE '%$idEntreprise%' 
                     AND id_inscrit ='%$idInscrit%'";;


Ou si c'est la valeur exacte que tu cherches (remplacer par les LIKE par des "=" )
$requete = "SELECT * 
                 FROM cv_envoye 
                 WHERE id_entreprise = '$idEntreprise' 
                     AND id_inscrit ='$idInscrit'";


Vu que tu sembles chercher sur des "ID" ... je pense donc que la deuxième syntaxe (avec des EGALES) est la plus juste.

Voilou.
Messages postés
52
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
7 avril 2019

Oui merci jordane45 , oui j'avais vu ça, je l'utilise sur un moteur de recherche que je viens de faire aussi :)

SELECT * FROM Entreprise WHERE ville LIKE '$rubrique%' OR code_postal LIKE '$rubrique%' OR Nom LIKE '$rubrique%


j'ai mis le % volontairement et uniquement à la fin (dans la recherche il prend en compte le début du mot mais la fin il recherche au delà ).
Messages postés
32980
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 juin 2021
351
Par contre,
Si la question est résolue..
Merci de ne pas oublier de clôturer le sujet
(en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de la question)

Cordialement,
Jordane
Messages postés
52
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
7 avril 2019

Cool, c'est magique merci pour ton aide ;)