Fonction
pyschopathe Messages postés 2053 Statut Membre -
Configuration: Windows XP Firefox 3.0.10
40 réponses
- 1
- 2
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.
-
strstr donne la 1ere occurrence d'une chaine dans une autre
man ici : http://www.manuelphp.com/php/function.strstr.php -
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>";
}
} -
$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 -
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
ok ^^ (j'apprends des trucs comme ca ^^ )
tu l'as testée dans phpmyadmin ? -
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?
-
tu veux selectionner un element dans une table s'il existe dans une autre ... c'est ca ?
-
-
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;"); -
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 -
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 -
-
-
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 ) -
-
-
tu t'es bien connecté a ta bdd ?
t'as pas fait une erreur de frappe quelque part ? -
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 -
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'inversermysql_select_db('ticket', $connexion) or exit(mysql_error()); mysql_select_db('intervention', $connexion) or exit(mysql_error()); -
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);
- 1
- 2