Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/12/2010, 11h46   #1
Invité régulier
 
lucas bonomi
Inscription : décembre 2010
Messages : 86
Détails du profil
Informations personnelles :
Nom : lucas bonomi
Âge : 21
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2010
Messages : 86
Points : 7
Points : 7
Envoyer un message via MSN à lukyVJ Envoyer un message via Skype™ à lukyVJ
Par défaut Problème de script PHP/MySQl V.2

Bonjour à tous, voici mon souci :

j'ai écris un code en PhP/Mysql que nous appellerons script, ce script sert à parcourir une BDD, et à retourner des données préalablement entrées dans un formulaire, le script marchait très bien, jusqu'à que j'upload une bdd de plus de 63 000 clients, et là dès que je lance ma recherche, un message d'erreur s'affiche, le contenu du message est :

Citation:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\php form\lebontestou.php on line 237
Le contenu de ma base donnée n'est fait que de fonctions type 'VARCHAR'.

et lorsque ce message s'affiche, le formulaire reste en place, la page n'est donc pas noyée dans des messages d'erreurs php, je pense donc que c'est une erreur minime...

Mais très déroutante.... À l'aide
lukyVJ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 11h48   #2
Membre éprouvé
 
Avatar de radicaldreamer
 
Homme Guillaume
Développeur Web
Inscription : décembre 2007
Messages : 353
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 21
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2007
Messages : 353
Points : 473
Points : 473
Eventuellement, un message d'erreur sans code à montrer, ça pose problème donc si nous pouvions avoir ton code...

Parce que d'après ton message d'erreur, ça serait un problème dans ton code, non dans ta base. (:
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi.

- Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
radicaldreamer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 11h50   #3
Invité régulier
 
lucas bonomi
Inscription : décembre 2010
Messages : 86
Détails du profil
Informations personnelles :
Nom : lucas bonomi
Âge : 21
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2010
Messages : 86
Points : 7
Points : 7
Envoyer un message via MSN à lukyVJ Envoyer un message via Skype™ à lukyVJ
Merci de votre rapide intervention

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
 <h1>Instructions</h1>
 <?php
mysql_connect('localhost','root','') or die(mysql_error());;
mysql_select_db('clients');
 
//On determine l'expression a rechercher
if(isset($_GET['recherche']))
{
        $rec = htmlentities($_GET['recherche']);
}
else
{
        $rec = 'php MYSQL';
}
//On determine le type de recherche
if(isset($_GET['type']))
{
        if($_GET['type']=='un')//Un des mots
        {
                $type = 1;
        }
        elseif($_GET['type']=='tout')//Tout les mots
        {
                $type = 2;
        }
        else//L'expression exacte
        {
                $type = 3;
        }
}
else
{
        $type = 1;//type par defaut: L'expression exacte
}
//On determine si on doit surligner les mots dans les resultats
if(!isset($_GET['surligner']) or $_GET['surligner']!='true')
{
        $surligner = false;
}
else
{
        $surligner = true;
}
//On dertermine les identifiants, les noms et les informations des utilisateur
$req = 'SELECT RAISON SOCIALE, DIRIGEANT,ADRESSE, CP, REGION, VILLE, TEL, TELECOPIE, EMAIL, EMAIL2, CODE_NAF, LIBELLE_NAF, RUBRIQUE_PROFESSIONNELLE FROM list WHERE';
 
if($type==1)
{//ayant un des mots dans leurs informations
        $mots = explode(' ',$rec);//En separre lexpression en mots cles
        foreach($mots as $mot)
        {
                $req .= ' email LIKE "%'.$mot.'%" OR';
        }
        $req .= ' 1=1';
}
elseif($type==2)
{//ayant tout des mots dans leurs informations
        $mots = explode(' ',$rec);//En separre lexpression en mots cles
        foreach($mots as $mot)
        {
                $req .= ' email LIKE "%'.$mot.'%" AND';
        }
        $req .= ' 1=1';
}
else
{//ayant l'expression exacte dans leurs informations
        $req .= 'email LIKE "%'.$rec.'%"';
}
//Les utilisateur seront ranges par identifiant en ordre croissant
$req .= ' order by username DESC';
//echo $req;
$requete = mysql_query($req);
//echo $requete;
 
 
 
//Le formulaire de recherche
?>
<form action="" method="get">
Expression &agrave; rechercher: <input type="text" name="recherche" value="<?php echo $rec; ?>" /><br />
Type de recherche: <input type="radio" name="type" value="un"<?php if($type==1){echo 'checked="checked"';} ?> /> Un des mots <input type="radio" name="type" value="tout"<?php if($type==2){echo 'checked="checked"';} ?> /> Tout les mots <br />
Mettre en gras les mots recherch&eacute;s: <input type="checkbox" name="surligner" value="true" <?php if($surligner){echo 'checked="checked"';} ?> /><br />
<input type="submit" value="Rechercher" />
</form>
<h2>R&eacute;sultats</h2>
<table>
        <tr>
                <th>Pseudo</th>
                <th>Identifiant</th>
                <th>email</th>
                <th>Résumé</th>
                <th>&nbsp;</th>
        </tr>
<?php
//On affiche les resultats
while($dnn = mysql_fetch_array($requete))
{
?>
        <tr>
                <td><?php echo $dnn['username']; ?></td>
                <td><?php echo $dnn['id']; ?></td>
                <td><?php echo $dnn['email']; ?></td>
 
 
                <td><b>|||</b>  <?php
if($surligner)//Si il faut surligner les mots, on les surligne
{
        if($type==3)
        {
                echo preg_replace('#('.preg_quote($rec).')#i', '<strong>$1</strong>', $dnn['infos']);//On surligne l'expression exacte
        }
        else
        {
                echo preg_replace('#('.str_replace(' ','|',preg_quote($rec)).')#i', '<strong>$1</strong>', $dnn['infos']);//On surligne les mots cles de la recherche
        }
}
else
{
	    echo $dnn['username'];
		echo $dnn['id'];
		echo $dnn['email'];
 
}
 
//echo $requete
?></td>
        </tr>
<?php
}
?>
 
<?php // ?>
</table>
voici la partie qui me fait défaut
lukyVJ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 11h52   #4
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Ta requête ne doit pas fonctionner, il faut debuguer de ce côté.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 11h53   #5
Invité régulier
 
lucas bonomi
Inscription : décembre 2010
Messages : 86
Détails du profil
Informations personnelles :
Nom : lucas bonomi
Âge : 21
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2010
Messages : 86
Points : 7
Points : 7
Envoyer un message via MSN à lukyVJ Envoyer un message via Skype™ à lukyVJ
Heu SabotaG j'ai pas bien compris
lukyVJ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 12h02   #6
Membre éprouvé
 
Avatar de radicaldreamer
 
Homme Guillaume
Développeur Web
Inscription : décembre 2007
Messages : 353
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 21
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2007
Messages : 353
Points : 473
Points : 473
au lieu de faire un "mysql_query($req)" fait un "echo $req" et test ta requete directement via le panel d'administration phpmyadmin
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi.

- Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
radicaldreamer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 12h11   #7
Invité régulier
 
lucas bonomi
Inscription : décembre 2010
Messages : 86
Détails du profil
Informations personnelles :
Nom : lucas bonomi
Âge : 21
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2010
Messages : 86
Points : 7
Points : 7
Envoyer un message via MSN à lukyVJ Envoyer un message via Skype™ à lukyVJ
c'est à dire je remplace
Code :
$requete = mysql_query($req);
par ?

et dans PhPmyAdmin, où et commetn puis-je faire pour tester ma requête ..?

merci d'avance

luky
lukyVJ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 12h29   #8
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 015
Points : 5 015
Hello

Ligne #73, tu devrais faire:
Code :
1
2
3
4
5
6
7
8
9
10
11
 
if (DEBUG) echo "<pre>"; var_dump($query); echo "</pre>";
if ($results = mysql_query($req))
{
    // Code si la query à fonctionné
    // ...
}
else
{
    // la query n'a pas marché, message d'erreur
}
et au début de ton script (dans un tag PHP cela va sans dire), ajouter
Code :
1
2
 
if (!defined('DEBUG')) define('DEBUG', 1); // que tu mettra à 0 en prod
Le débug permettra d'afficher la requête SQL que tu essaie d'envoyer, tu pourra alors la copier/coller dans la console de mysql ou dans phpmyadmin et voir ce qui coince. Dans phpmyadmin tu vas dans l'onglet SQL et tu colle ta requête intégrale.

Si tu veux qu'on t'aide plus, on va avoir besoin des create table correspondants.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 14h11   #9
Invité régulier
 
lucas bonomi
Inscription : décembre 2010
Messages : 86
Détails du profil
Informations personnelles :
Nom : lucas bonomi
Âge : 21
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2010
Messages : 86
Points : 7
Points : 7
Envoyer un message via MSN à lukyVJ Envoyer un message via Skype™ à lukyVJ
Re-bonjour, et excusez moi pour ma petite absence, j’étais en pause, donc, j’ai essayé les modifications que vous m'aviez conseillé, et ce qui en résulte, est cette notification :
Code :
1
2
3
4
 
Notice:  Undefined variable: query in C:\wamp\www\php form\lebontestou.php on line 216
 
NULL
... je suis un peu perdu là..
lukyVJ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 15h54   #10
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 015
Points : 5 015
Désolé, je me suis trompé dans mon exemple, je corrige:

Code :
1
2
3
4
5
6
7
8
9
10
11
 
if (DEBUG) echo "<pre>"; var_dump($req); echo "</pre>";
if ($results = mysql_query($req))
{
    // Code si la query à fonctionné
    // ...
}
else
{
    // la query n'a pas marché, message d'erreur
}
Les vieilles habitudes ont la vie dure...
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 16h59   #11
Invité régulier
 
lucas bonomi
Inscription : décembre 2010
Messages : 86
Détails du profil
Informations personnelles :
Nom : lucas bonomi
Âge : 21
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2010
Messages : 86
Points : 7
Points : 7
Envoyer un message via MSN à lukyVJ Envoyer un message via Skype™ à lukyVJ
Voici ce que me retourne le code

Code :
string(193) "SELECT * FROM liste ID, RAISON SOCIALE, DIRIGEANT ,ADRESSE ,CP ,REGION ,VILLE ,TEL ,TELECOPIE ,EMAIL ,EMAIL2 ,CODE_NAF ,LIBELLE_NAF ,RUBRIQUE_PROFESSIONNELLE LIKE "%PACA%" OR 1=1ORDER BY ID ASC"
lukyVJ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 17h39   #12
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 015
Points : 5 015
En effet, ta requête est complètement fausse...

Je n'arrive pas à mettre les éléments dans le bon ordre pour la débugger, on dirait que la clause FROM caractérise les noms de champs, il manque la clause WHERE, le LIKE et le OR s'annullent...

D'après le code que tu as fourni dans ton premier post, c'est carrément impossible d'obtenir ce formattage, tu n'aurais pas changé le comportement de ton script par hasard ?

Tu peux reposter ton code source mis à jour ?
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 17h42   #13
Invité régulier
 
lucas bonomi
Inscription : décembre 2010
Messages : 86
Détails du profil
Informations personnelles :
Nom : lucas bonomi
Âge : 21
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2010
Messages : 86
Points : 7
Points : 7
Envoyer un message via MSN à lukyVJ Envoyer un message via Skype™ à lukyVJ
Le voici, je l'ai pas mal tripoté pour avoir un minimum d'erreurs... a coté, j'ai fait une autre page pour vérifier si la connexion avec mon serveur était bien configurée, et c'est le cas....

voici mon code
Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
<?php if (!defined('DEBUG')) define('DEBUG', 1); // que tu mettra à 0 en prod ?>
 <?php
$my = mysql_connect('localhost','root','') or die(mysql_error());;
$my_db= mysql_select_db('clients');
 
//On determine l'expression a rechercher
if(isset($_GET['recherche']))
{
        $rec = htmlentities($_GET['recherche']);
}
else
{
        $rec = 'qui recherchez vous ?';
}
//On determine le type de recherche
if(isset($_GET['type']))
{
        if($_GET['type']=='un')//Un des mots
        {
                $type = 1;
        }
        elseif($_GET['type']=='tout')//Tout les mots
        {
                $type = 2;
        }
        else//L'expression exacte
        {
                $type = 3;
        }
}
else
{
        $type = 1;//type par defaut: L'expression exacte
}
//On determine si on doit surligner les mots dans les resultats
if(!isset($_GET['surligner']) or $_GET['surligner']!='true')
{
        $surligner = false;
}
else
{
        $surligner = true;
}
//On dertermine les identifiants, les noms et les informations des utilisateur
$req = 'SELECT * FROM liste WHERE ';
 
if($type==1)
{//ayant un des mots dans leurs informations
        $mots = explode(' ',$rec);//En separre lexpression en mots cles
        foreach($mots as $mot)
        {
                $req .= "'RAISON SOCIALE','DIRIGEANT' LIKE "%'.$mot.'%" OR";
        }
        $req .= ' 1=1';
}
elseif($type==2)
{//ayant tout des mots dans leurs informations
        $mots = explode(' ',$rec);//En separre lexpression en mots cles
        foreach($mots as $mot)
        {
                $req .= 'RAISON SOCIALE LIKE "%'.$mot.'%" AND';
        }
        $req .= ' 1=1';
}
else
{//ayant l'expression exacte dans leurs informations
 
        $req .= 'ID, RAISON SOCIALE, DIRIGEANT ,ADRESSE ,CP ,REGION ,VILLE ,TEL ,TELECOPIE ,EMAIL ,EMAIL2 ,CODE_NAF ,LIBELLE_NAF ,RUBRIQUE_PROFESSIONNELLE LIKE "%'.$rec.'%"';
}
//Les utilisateur seront ranges par identifiant en ordre croissant
$req .= ' ORDER BY ID';
 
$requete = mysql_query($req);
//echo $requete;
 
 
if (DEBUG) echo '<pre><em bgcolor="grey">'; var_dump($req); echo "</em></pre>";
if ($results = mysql_query($req))
{
    // Code si la query à fonctionné
    // ...
}
else
{
    // la query n'a pas marché, message d'erreur
}
 
//Le formulaire de recherche
?>
<form action="" method="get">
Expression &agrave; rechercher: <input type="text" name="recherche" value="<?php echo $rec; ?>" /><br />
Type de recherche: <input type="radio" name="type" value="un"<?php if($type==1){echo 'checked="checked"';} ?> /> Un des mots <input type="radio" name="type" value="tout"<?php if($type==2){echo 'checked="checked"';} ?> /> Tout les mots <br />
Mettre en gras les mots recherch&eacute;s: <input type="checkbox" name="surligner" value="true" <?php if($surligner){echo 'checked="checked"';} ?> /><br />
<input type="submit" value="Rechercher" />
</form>
<h2>R&eacute;sultats</h2>
<table>
        <tr>
                <th>Pseudo</th>
                <th>Identifiant</th>
                <th>email</th>
                <th>Résumé</th>
                <th>&nbsp;</th>
        </tr>
<?php
//On affiche les resultats
while($dnn = mysql_fetch_array($req))
 
{
?>
        <tr>
                <td><?php echo $dnn['ID']; ?></td>
                <td><?php echo $dnn['RAISON SOCIALE']; ?></td>
                <td><?php echo $dnn['EMAIL']; ?></td>
 
 
                <td><b>|||</b>  <?php
if($surligner)//Si il faut surligner les mots, on les surligne
{
        if($type==3)
        {
                echo preg_replace('#('.preg_quote($rec).')#i', '<strong>$1</strong>', $dnn['RAISON SOCIALE']);//On surligne l'expression exacte
        }
        else
        {
                echo preg_replace('#('.str_replace(' ','|',preg_quote($rec)).')#i', '<strong>$1</strong>', $dnn['RAISON SOCIALE']);//On surligne les mots cles de la recherche
        }
}
else
{
	    echo $dnn['ID'];
		echo $dnn['RAISON SOCIALE'];
		echo $dnn['EMAIL'];
 
 
}
 
 
//echo $requete
?></td>
        </tr>
<?php
}
?>
 
<?php 
// ?>
</table>

PS : je n'aurais pas le temps de regarder ça tout de suite.... sûrement à demain
lukyVJ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 18h03   #14
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 015
Points : 5 015
Ok bon, y'a du boulot :p

Je vais déjà te donner deux ou trois trucs pour optimiser ton code et le rendre plus lisible.

Utilise des switch:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
if($_GET['type']=='un')//Un des mots
        {
                $type = 1;
        }
        elseif($_GET['type']=='tout')//Tout les mots
        {
                $type = 2;
        }
        else//L'expression exacte
        {
                $type = 3;
        }
est mieux comme ça:
Code :
1
2
3
4
5
6
7
 
switch ($_GET['type'])
{
    case 'un' : $type=1; break;
    case 'tout' : $type=2; break;
    default: $type=3; break;
}
Utilise cette syntaxe quand tu mèles du HTML et du PHP (je déteste faire ça mais bon):
Code :
1
2
3
4
5
6
 
<?php if ($a == 1) : ?>
<p>A vaut 1</p>
<?php else: ?>
<p>A ne vaut pas 1</p>
<?php endif; ?>
C'est plus facile à lire que des { } dont l'indentation se perds dans les nodes XHMLT. Voir: http://www.php.net/manual/fr/control...ive-syntax.php

Autre astuce :
Code :
1
2
3
4
5
6
7
8
9
 
if(!isset($_GET['surligner']) or $_GET['surligner']!='true')
{
        $surligner = false;
}
else
{
        $surligner = true;
}
peut être intelligement remplacé par
Code :
1
2
 
$surligner = (!isset($_GET['surligner']) || $_GET['surligner']!='true') ? false: true;
Fais également attention à la différence entre OR et || (le ou logique)
n'est pas
Je rappelle que
Code :
1
2
 
$req .= "'RAISON SOCIALE','DIRIGEANT' LIKE "%'.$mot.'%" OR";
n'est pas un fragment de requête SQL valide

Pour rappel
Code :
1
2
3
 
SELECT 'value'; /* les quotes sont des valeurs en SQL */
SELECT `field` FROM `database`.`table`; /* Les backquotes sont à utiliser pour les noms des champs */
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 09h14   #15
Invité régulier
 
lucas bonomi
Inscription : décembre 2010
Messages : 86
Détails du profil
Informations personnelles :
Nom : lucas bonomi
Âge : 21
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2010
Messages : 86
Points : 7
Points : 7
Envoyer un message via MSN à lukyVJ Envoyer un message via Skype™ à lukyVJ
Hello, alors avec le code que tu m'as donné:
Code :
1
2
3
4
5
6
switch ($_GET['type'])
{
    case 'un' : $type=1; break;
    case 'tout' : $type=2; break;
    default: $type=3; break;
}
Me retourne une erreur de syntaxe, je ne vois pas trop pourquoi, les accolades y sont.. les points virgules aussi.

Réponse :
Code :
Parse error: parse error in C:\wamp\www\php form\lebontestou.php on line 166
m'en sortirai-je un jour !!! ^^
lukyVJ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 10h46   #16
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 126
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 126
Points : 7 270
Points : 7 270
Bonjour,

Citation:
Code :
$req .= "'RAISON SOCIALE','DIRIGEANT' LIKE "%'.$mot.'%" OR";
Déjà la structure n'est pas correct, même la couleur syntaxique montre que la chaîne est tronquée (regarde bien sur le %), d'où le parse error.

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 15h34   #17
Invité régulier
 
lucas bonomi
Inscription : décembre 2010
Messages : 86
Détails du profil
Informations personnelles :
Nom : lucas bonomi
Âge : 21
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2010
Messages : 86
Points : 7
Points : 7
Envoyer un message via MSN à lukyVJ Envoyer un message via Skype™ à lukyVJ
Alors que la bonne syntaxe serait ?

j'ai fait pas mal de modifications sur le script, ce qui a allégé le nombre d'erreurs affichées, mais j'ai toujours un souci vis a vis de

je n'arrive pas a trouver la bonne syntaxe, malgrès mes recherches...
lukyVJ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 13h06   #18
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 015
Points : 5 015
Je te fais un exemple de requete:
Code :
1
2
 
$query = "SELECT `field` FROM `table` WHERE `other_field` LIKE '%{$mot}'";
Les doubles quotes pour la chaine sont importantes car l'interpretation des variables dans les chaines de caractères en php ne se fait qu'a cette condition.

Exemple
Code :
1
2
3
4
 
$a = "hello";
echo "$a"; // affiche 'hello'
echo '$a'; // affiche '$a'
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h27.


 
 
 
 
Partenaires

Hébergement Web