mysql_fetch_array() et requet_sql

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : mysql_fetch_array() et requet_sql

par Cyrano » 11 juin 2006, 19:57

C'est pourtant clair : lis moins vite. Tu as un message d'erreur indiquant une erreur de syntaxe dans la requête SQL. Donc... il faut vérifier ce qui cloche dans cette requête.

mysql_fetch_array

par ldaniele » 11 juin 2006, 18:53

Excuste moi ,
je n'est pas compris, peux tu m'expliquer ?
merci .

par ouckileou » 09 juin 2006, 11:57

erreur 1 : erreur SQL donc...
Quand une requête ne renvoie pas (ou ne fait pas) ce que l'on attend :
- faire afficher les erreurs MySQL (ou autre)
ex :
mysql_query($requete) or die (mysql_error());
- afficher le SQL généré (c'est ce code qui est important) :
echo $requête;
- regarder si rien ne cloche
- tester directement dans MySQL (ex : via phpMyAdmin) et ajuster

erreur 2 : la ressource passée en paramètre est inutilisable, souvent (et ici c'est le cas) parceque la requête sur la base à échoué

mysql_fetch_array() et requet_sql

par IxeX » 09 juin 2006, 11:45

En ouvrant ma page, deux pb apparaissent encore :(

le premier avec le message d'erreur suivant :
requete_sql erreur: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 'where 1 order by id' at line 1
Bon j'ai traduit littéralement le msg de l'anglais au français mais comment cela se "fess-t-il" concrètement ? :(

Le deuxième et non des moindres apparaît comme suit :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in à la ligne 363
voici le code en question:

Code : Tout sélectionner

<?php // --- récupère le tableau des clients function tableau_clients($params='') { // --- initialisation du tableau dans lequel // --- on va récupérer les clients $tb = array(); // --- nom de la table $tbl_parametres = $this->nom_table('clients'); // --- valeurs par défaut if (!is_array($params)) $params = array(); // --- valeurs par défaut : ordre de tri if (!isset($params['order'])) { $params['order'] = 'id'; } // --- valeurs par défaut : champs à sélectionner if (!isset($params['champs'])) { $params['champs'] = '*'; } // --- valeurs par défaut : table utilisées if (!isset($params['tables'])) { $params['tables'] = $tbl_clients; } // --- conditions $conditions = array(); // --- requête SQL : champs et tables utilisés $cde = 'select ' . $params['champs']; $cde .= ' from ' . $params['tables']; $cde .= ' where 1'; // --- requête SQL : ajout des conditions for ($i=0; $i<count($conditions); $i++) { $cde .= ' ' . $conditions[$i]; } // --- requête SQL : ordre de tri if (strlen($params['order']) > 0) { $cde .= ' order by ' . $params['order']; } // --- requête SQL : recherche des enregistrements // --- et stockage dans un tableau $result = $this->requete_sql($this->db, $cde); while($row = mysql_fetch_array($result, MYSQL_ASSOC)) { ----- 'l.363' $key = $row['id']; $tb["$key"] = $row; } return($tb); } ?>
Je cale ...