Problème requête PHP/MySQL
delaville81
Messages postés
209
Statut
Membre
-
Reivax962 Messages postés 3742 Statut Membre -
Reivax962 Messages postés 3742 Statut Membre -
Bonjour,
Je sollicite votre aide pour résoudre un problème que je rencontre sur une requête. C'est le fichier PHP que j'ai trouvé sur un site pour créer un imput autocompletion.
mon code
J'ai renseigné serveur, login et mot de passe
Mon problème est le suivant, je n'arrive pas à afficher la liste des champs que je veux. Il ne se passe rien.
Il y a sureent une erreur dans le code, si oui, je ne la trouve pas.
De plus à la suite le la ligne
le code PHP se termine. Je ne sais pas comment le coder pour relancer le php proprement.
Merci d'avance pour votre aide
--
Bien PHPment et MySQLment
Delaville
Je sollicite votre aide pour résoudre un problème que je rencontre sur une requête. C'est le fichier PHP que j'ai trouvé sur un site pour créer un imput autocompletion.
mon code
<?php
//SÈcuritÈ pour empÍcher d'interroger la base librement : liste des table et des champs utilisables
$check = array(
'vin' => array('clevin', 'id_vin')
);
//Connexion # la base de donnÈes
@mysql_connect('serveur', 'login', 'motdepasse') or die('Connexion # la base de donnÈes impossible');
@mysql_select_db('login') or die('base de donnÈes inexistante');
$table = (isset($_GET['table']) ? $_GET['table'] : 'vin');
$field = (isset($_GET['field']) ? $_GET['field'] : 'clevin');
$search = (isset($_GET['search']) ? $_GET['search'] : 'id_vin');
if(isset($check[$table]) && in_array($field, $check[$table])){ //VÈrification
if($table && $field && $search){
$search = strtolower(mysql_escape_string($search));
header("content-type: application/xml");
echo '<?xml version="1.0" encoding="iso-8859-1" ?>';
echo '<suggests>';
$query = 'SELECT ''.$field.'' FROM ''.$table.'' WHERE lower(''.$field.'') LIKE "'.$search.'%" ORDER BY ''.$field.''';
$result = mysql_query($query);
while($row = mysql_fetch_array($result)){
echo ' <suggest>'.$row[$field].'</suggest>';
}
echo '</suggests>';
}
}
else{
die('RequÍte interdite');
}
?>
J'ai renseigné serveur, login et mot de passe
Mon problème est le suivant, je n'arrive pas à afficher la liste des champs que je veux. Il ne se passe rien.
Il y a sureent une erreur dans le code, si oui, je ne la trouve pas.
De plus à la suite le la ligne
echo '<?xml version="1.0" encoding="iso-8859-1" ?>';
le code PHP se termine. Je ne sais pas comment le coder pour relancer le php proprement.
Merci d'avance pour votre aide
--
Bien PHPment et MySQLment
Delaville
6 réponses
-
Bonjour,
Il y a un problème avec les apostrophes et quotes dans cette ligne :$query = 'SELECT ''.$field.'' FROM ''.$table.'' WHERE lower(''.$field.'') LIKE "'.$search.'%" ORDER BY ''.$field.''';
Remplace par :$query = 'SELECT ''.$field.'' FROM ''.$table.'' WHERE lower(''.$field.'') LIKE "'.$search.'%" ORDER BY ''.$field.''';
Xavier -
Merci Xavier pour ta réponse si rapide
mais lors que je lance le script, j'obtient :
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /xxxxxxxxxxxxxxxxx/autocomplete_ajax.php on line 29
La ligne 29 est la ligne du SELECT
J'ai donc besoin encore de ton aide
Merci d'avance
-
En enlevant les doubles quotes, j'ai une autre message (dans un cadre rouge) que je n'ai jamais vu
This page contains the following errors: error on line 1 at column 47: ParsePI: PI php space expected Below is a rendering of the page up to the first error.
Pour être franc, je ne comprend pas la signification
Merci pour votre aide -
C'est toujours pareil, rien ne s'affiche
Dans le code source de la page interprétée j'obtient<suggests></suggests>
Avez vous une idée ?
De plus j'ai viré de ma pageecho '<?xml version="1.0" encoding="iso-8859-1" ?>';
Parce que la page montrée une erreur incompréhensible (voir message précèdent)
Si vous connaissez le moyen de coder cette ligne pour qu'elle ne face plus afficher d'erreur je suis preneur
Merci de votre aide -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Xavier,
Merci,
en faisant$query = 'SELECT '.$field.' FROM '.$table.' WHERE lower('.$field.') LIKE "'.$search.'%" ORDER BY '.$field;
ça marche.
Mais j'ai toujours le problème avececho '<?xml version="1.0" encoding="iso-8859-1" ?>';
Le code à la suite s'affiche en HTML. Il prend en compte le ?> à la fin de la ligne comme fin du code PHP. Je ne sais pas comment l'intégrer différemment.
Si vous avez une idée
Merci-
Pour ce problème, je pense que le mieux est de ne pas l'inclure dans du php avec echo, mais de le mettre simplement dans le flux de la page...
Comme ceci :if(isset($check[$table]) && in_array($field, $check[$table])){ //VÈrification if($table && $field && $search){ $search = strtolower(mysql_escape_string($search)); header("content-type: application/xml"); ?> <?xml version="1.0" encoding="iso-8859-1" ?> <?php echo '<suggests>';
-
-
Merci pour ta réponse mais malheureusement en ajoutant cette ligne, mon autocompletion ne marche plus.
Donc pour le moment j'enlève la ligne.