Fonction

nesrine -  
pyschopathe Messages postés 2053 Statut Membre -
Bonjour, svp est-ce que y a t-il une fonction qui cherche une sous chaine ds une chaine ou meme un texte en php , j'ai trop cherché pas aucun résultat , je dois remettre ce travail pour samedi :( et merci d'avance...
Configuration: Windows XP
Firefox 3.0.10

40 réponses

  • 1
  • 2
Résumé de la discussion

La discussion porte sur la recherche d'une sous-chaîne dans une chaîne ou un texte en PHP, en soulignant l'intérêt d'une fonction de détection efficace comme strpos. Plusieurs réponses évoquent l'usage de strpos et la vérification de son retour; d'autres proposent des solutions SQL avec LEFT JOIN et IS NULL pour repérer les enregistrements sans correspondance. En parallèle, certains échanges abordent des erreurs liées à MySQL, comme un résultat invalide après mysql_fetch_array ou une colonne inconnue, montrant le rôle du débogage et du contrôle des requêtes. En complément, la discussion illustre que le choix entre une solution PHP ou une solution SQL dépend du contexte applicatif et que des tests avec des cas réels permettent d'éviter les erreurs courantes.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. nesrine
     
    merci , mais mnt il m'affiche cette erreur :

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

    et voici mon code :

    $resultat=mysql_query("SELECT * FROM ticket WHERE n_ticket IN SELECT n_ticket FROM intervention and cat_pb='".$catégorie."' and s_dom_pb='".$ss_domaine."';");
    while($donnée=mysql_fetch_array($resultat)).....................................(17)
    {$pos = strpos($donnée['def_pb'], $session);
    if($pos=== true)
    {echo"<strong>"; echo"donnée['def_pb']"; echo"</strong>"; echo"<br>";
    echo"donnée['despt_pb']";
    echo"<hr>";
    }
    }
    0
  2. Brachior Messages postés 616 Statut Membre 46
     
    $resultat=mysql_query("SELECT * FROM ticket WHERE n_ticket IN SELECT n_ticket FROM intervention and cat_pb='".$catégorie."' and s_dom_pb='".$ss_domaine."';");

    tu peux me dire ce que fait IN car je ne connais pas cette syntaxe ?
    essayes cette ligne dans mysql ( phpmyadmin ) elle te donnera plus d'information sur l'erreur
    0
  3. nesrine
     
    elle fait la jointure entre les deux tables : ticket et intervention.
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Brachior Messages postés 616 Statut Membre 46
     
    ok ^^ (j'apprends des trucs comme ca ^^ )

    tu l'as testée dans phpmyadmin ?
    0
  6. nesrine
     
    oui mais tjrs l'erreur inconnue !!! tu sais je pense que je dois reformuler ma requete avec EXISTS parce que je veux afficher deux champs de la table ticket mais le tuple contenant ces deux champs dois y exister ds la table intervention (càd possède une solution), tu m'as compris?
    0
  7. Brachior Messages postés 616 Statut Membre 46
     
    tu veux selectionner un element dans une table s'il existe dans une autre ... c'est ca ?
    0
  8. nesrine
     
    voici la nouvelle version de la requete mais pas chance tjrs ds fetch_erray !!!!! je comprends rien :(

    $resultat=mysql_query("SELECT def_pb,descpt_pb FROM ticket WHERE cat_pb='".$catégorie."' and s_dom_pb='".$ss_domaine."' EXISTS SELECT * FROM intervention WHERE Num_ticket=ticket.Num_ticket;");
    0
  9. Brachior Messages postés 616 Statut Membre 46
     
    essayes comme ca :
    $resultat=mysql_query("SELECT def_pb,descpt_pb FROM ticket WHERE cat_pb='".$catégorie."' and s_dom_pb='".$ss_domaine."' EXISTS (SELECT * FROM intervention WHERE intervention.Num_ticket=ticket.Num_ticket);");

    syntaxe prise ici : http://dev.mysql.com/doc/refman/5.0/fr/exists-and-not-exists-subqueries.html
    0
  10. nesrine
     
    meme erreur , je pense l'erreur est ds la recuperation des données pas ds la requete non ?!!

    l'erreur tjrs: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
    0
  11. Brachior Messages postés 616 Statut Membre 46
     
    essayes avec un "mysql_fetch_assoc()"
    0
  12. Brachior Messages postés 616 Statut Membre 46
     
    donc c'est ta requête qu'est pas bonne
    essaye de la produire sur phpmyadmin ... lui il te donnera la syntaxe exacte
    (désolé je n'ai fait que très peu d'SQL =/ tu viens même de m'apprendre 2 syntaxe xD lol )
    0
  13. nesrine
     
    non pas de soucis , je vais encore plus espérant je trouve la réponse :)
    0
  14. nesrine
     
    il veut me rendre folle , il me dit : Unknown database 'ticket'
    0
  15. Brachior Messages postés 616 Statut Membre 46
     
    tu t'es bien connecté a ta bdd ?
    t'as pas fait une erreur de frappe quelque part ?
    0
  16. nesrine
     
    ben , normalement tout est bon !! tu peux vérifier avec moi :

    $connexion = mysql_connect('localhost', 'root', '') or exit(mysql_error());
    mysql_select_db('ticket', $connexion) or exit(mysql_error());
    mysql_select_db('intervention', $connexion) or exit(mysql_error());
    $catégorie='réparation';
    $ss_domaine='logiciel';
    $session='session';
    $requete="SELECT def_pb,descpt_pb FROM `ticket` WHERE cat_pb='".$catégorie."' and s_dom_pb='".$ss_domaine."' EXISTS (SELECT * FROM `intervention` WHERE intervention.Num_ticket=ticket.Num_ticket);";
    $resultat = mysql_query($requete, $connexion) or exit(mysql_error() . "<br/>$requete");

    dsl je t'ai embêté avec moi :p
    0
    1. pyschopathe Messages postés 2053 Statut Membre 137
       
      Pourquoi tu sélectionnes deux bases de données ? Alors que tu n'as besoin que de deux tables qui devraient être dans la même base ! Je pense que tu ferais bien de revoir ton schéma, il ne m'a pas l'air très cohérent...
      0
  17. Brachior Messages postés 616 Statut Membre 46
     
    extrait du man mysql_select_db
    Sélectionne une base de données MySQL sur le serveur associé avec le paramètre link_identifier .
    Chaque appel à la fonction mysql_query() sera exécutée sur la base de données active.


    dans ton cas la bdd active est "intervention" or tu cherche dans ticket ...
    essaye d'inverser
    mysql_select_db('ticket', $connexion) or exit(mysql_error());
    mysql_select_db('intervention', $connexion) or exit(mysql_error()); 
    0
  18. nesrine
     
    mnt voila ce qu'il m'affiche :s:s :

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'EXISTS (SELECT * FROM `intervention` WHERE intervention.Num_ticket=ticket.Num_ti' at line 1
    SELECT def_pb,descpt_pb FROM `ticket` WHERE cat_pb='réparation' and s_dom_pb='logiciel' EXISTS (SELECT * FROM `intervention` WHERE intervention.Num_ticket=ticket.Num_ticket);
    0
  • 1
  • 2