Les opérations avec $Sql
Pour la lecture sql on dois disposer de la classe sql.
En module il n'y a pas de souci.
Mais pour les menu, étant dans une fonction il faut déclaré la classe en global
global $Sql;
Pour une lecture sql, il faut se connecter a la db. Par le framework, la connection est deja prete. Elle est automatique.
On passe donc directement a l'étape query, soit la lecture/écriture sql.
Pour un module, il n'y a pas a chargée de classe particuliere, elle est déjà prete a l'emploie.
En php sans le framework une query ressemble a :
ensuite il faut utiliser une autre fonction pour pouvoir utiliser les resultat comme : mysql_result(), mysql_fetch_array(), mysql_fetch_row() ...
Avec le framework c'est un peu pareil, la connexion en moins, et une lecture directe avec certaines fonction.
query( string $query, int $errline, int $errfile)
query() envoie une seule requête (les requêtes multiples ne sont pas supportées) à la base de données.
retour: query() retournera une ressource en cas de succès, ou FALSE en cas d'erreur.
Paramètres:
Exemple (dans le forum topic.php ligne 112) :
Cette lecture compte le nombre de message de la table 'forum_msg correspondant au condition donnée.
Dans ce cas on utilise directement de resultat de la lecture sql.
query_while( query $query, int $errline, int $errfile)
Cette méthode permet d'exécuter une requête qui récupère plusieurs chan dans la base de données.
retour:
Paramètres:
Exemple (dans member.php ligne 893) :
On lis et récupère toutes les valeurs id et name qui sont dans la table group.
Pour l'utiliser on utilise la fonction fetch_assoc() ligne 895.
query_array( string $table, string $field, string $clause, int $errline, int $errfile)
Cette méthode fait automatiquement une requête sur plusieurs champs d'une table.
retour :
Paramètres:
Exemple (dans member.php ligne 62) :
Cette ligne lis la table mebre de pbt, et selectionne la serie de chan de user_lang à user_notif_mail, la condition est en relation avec l'user_id.
chaque valeur est mise en tableau pour chaque chan lu.
pour user_id = 1 cela vaut : $row['user_id'] = 1 ;
query_close( resource $resource)
Libère la mémoire liée a la lecture/écriture sql.
retours : true / false celons si la mémoire a été libéré ou non.
Paramètres:
Exemple (dans member.php a la ligne 361)
Dans ce cas là on libere la memoire de $result passé ligne 282
fetch_assoc( resource $result)
Parcourt une rangée MySQL ressource de résultat par ligne. Lorsque vous appelez cette méthode sur une ressource, vous obtenez le rang suivant.
retour : Un tableau associatif dont les clés sont le nom de chaque chan et les valeurs sont la valeur du chan. Il retourne false lorsque vous êtes à la fin des lignes.
Paramètres:
exemple (dans member ligne 287) :
On passe dans une boucle le tableau associatif de la lecture $result dans $row pour chaque niveau.
Aussi on aura $row['name'] = un pseudo pour chaque niveau de la db.
Il existe aussi la methode fetch_row( resource $result)
Cette méthode n'est pas utiliser dans les modules.
En module il n'y a pas de souci.
Mais pour les menu, étant dans une fonction il faut déclaré la classe en global
global $Sql;
Pour une lecture sql, il faut se connecter a la db. Par le framework, la connection est deja prete. Elle est automatique.
On passe donc directement a l'étape query, soit la lecture/écriture sql.
Pour un module, il n'y a pas a chargée de classe particuliere, elle est déjà prete a l'emploie.
En php sans le framework une query ressemble a :
Code PHP :
$result = mysql_query('SELECT * WHERE id=1');
ensuite il faut utiliser une autre fonction pour pouvoir utiliser les resultat comme : mysql_result(), mysql_fetch_array(), mysql_fetch_row() ...
Avec le framework c'est un peu pareil, la connexion en moins, et une lecture directe avec certaines fonction.
methode query
query( string $query, int $errline, int $errfile)
query() envoie une seule requête (les requêtes multiples ne sont pas supportées) à la base de données.
retour: query() retournera une ressource en cas de succès, ou FALSE en cas d'erreur.
Paramètres:
$query Selection query
$errline Utilisez la constante __LINE__ . Il est très intéressant quand vous déboguez votre script et que vous voulez savoir où est appelé la requête qui rend une erreur.
$errfile Utilisez la constante __FILE__ . Il est très intéressant quand vous déboguez votre script et que vous voulez savoir où est appelé la requête qui rend une erreur.
$errline Utilisez la constante __LINE__ . Il est très intéressant quand vous déboguez votre script et que vous voulez savoir où est appelé la requête qui rend une erreur.
$errfile Utilisez la constante __FILE__ . Il est très intéressant quand vous déboguez votre script et que vous voulez savoir où est appelé la requête qui rend une erreur.
Exemple (dans le forum topic.php ligne 112) :
Code PHP :
$nbr_msg_before = $Sql->query("SELECT COUNT(*) as nbr_msg_before FROM " . PREFIX . "forum_msg WHERE idtopic = " . $id_get . " AND id < '" . $idm . "'", __LINE__, __FILE__);
Cette lecture compte le nombre de message de la table 'forum_msg correspondant au condition donnée.
Dans ce cas on utilise directement de resultat de la lecture sql.
methode query_while
query_while( query $query, int $errline, int $errfile)
Cette méthode permet d'exécuter une requête qui récupère plusieurs chan dans la base de données.
retour:
query_while() retournera une ressource en cas de succès, ou FALSE en cas d'erreur.
pour exploiter le retour de cette fonction il faut utiliser fetch_assoc().
pour exploiter le retour de cette fonction il faut utiliser fetch_assoc().
Paramètres:
$query Selection query
$errline Utilisez la constante __LINE__ . Il est très intéressant quand vous déboguez votre script et que vous voulez savoir où est appelé la requête qui rend une erreur.
$errfile Utilisez la constante __FILE__ . Il est très intéressant quand vous déboguez votre script et que vous voulez savoir où est appelé la requête qui rend une erreur.
$errline Utilisez la constante __LINE__ . Il est très intéressant quand vous déboguez votre script et que vous voulez savoir où est appelé la requête qui rend une erreur.
$errfile Utilisez la constante __FILE__ . Il est très intéressant quand vous déboguez votre script et que vous voulez savoir où est appelé la requête qui rend une erreur.
Exemple (dans member.php ligne 893) :
Code PHP :
$result = $Sql->query_while("SELECT id, name FROM " . PREFIX . "group", __LINE__, __FILE__);
On lis et récupère toutes les valeurs id et name qui sont dans la table group.
Pour l'utiliser on utilise la fonction fetch_assoc() ligne 895.
methode query_array
query_array( string $table, string $field, string $clause, int $errline, int $errfile)
Cette méthode fait automatiquement une requête sur plusieurs champs d'une table.
retour :
query_array() retournera un tableau (array()) en cas de succès, ou FALSE en cas d'erreur.
Paramètres:
$table Nom de la table a interroger.
$field Nom des chan a lire.
$clause Les conditions qui permettrons à la méthode de savoir dans quelle ligne il doit sélectionner les valeurs. Elles doivent respecter la syntaxe MySQL et commencer avec 'WHERE'.
$errline Utilisez la constante __LINE__ . Il est très intéressant quand vous déboguez votre script et que vous voulez savoir où est appelé la requête qui rend une erreur.
$errfile Utilisez la constante __FILE__ . Il est très intéressant quand vous déboguez votre script et que vous voulez savoir où est appelé la requête qui rend une erreur.
$field Nom des chan a lire.
$clause Les conditions qui permettrons à la méthode de savoir dans quelle ligne il doit sélectionner les valeurs. Elles doivent respecter la syntaxe MySQL et commencer avec 'WHERE'.
$errline Utilisez la constante __LINE__ . Il est très intéressant quand vous déboguez votre script et que vous voulez savoir où est appelé la requête qui rend une erreur.
$errfile Utilisez la constante __FILE__ . Il est très intéressant quand vous déboguez votre script et que vous voulez savoir où est appelé la requête qui rend une erreur.
Exemple (dans member.php ligne 62) :
Code PHP :
$row = $Sql->query_array(DB_TABLE_MEMBER, 'user_lang', 'user_theme', 'user_mail', 'user_local', 'user_web', 'user_occupation', 'user_hobbies', 'user_avatar', 'user_show_mail', 'user_editor', 'user_timezone', 'user_sex', 'user_born', 'user_sign', 'user_desc', 'user_msn', 'user_yahoo', 'user_show_mp', 'user_notif_mail', "WHERE user_id = '" . $User->get_attribute('user_id') . "'", __LINE__, __FILE__);
Cette ligne lis la table mebre de pbt, et selectionne la serie de chan de user_lang à user_notif_mail, la condition est en relation avec l'user_id.
chaque valeur est mise en tableau pour chaque chan lu.
pour user_id = 1 cela vaut : $row['user_id'] = 1 ;
methode query_close
query_close( resource $resource)
Libère la mémoire liée a la lecture/écriture sql.
retours : true / false celons si la mémoire a été libéré ou non.
Paramètres:
$resources l'appel sql qui a utiliser la base de donnée.
Exemple (dans member.php a la ligne 361)
Code PHP :
$Sql->query_close($result);
Dans ce cas là on libere la memoire de $result passé ligne 282
Code PHP :
$result = $Sql->query_while("SELECT ....
methode fetch_assoc
fetch_assoc( resource $result)
Parcourt une rangée MySQL ressource de résultat par ligne. Lorsque vous appelez cette méthode sur une ressource, vous obtenez le rang suivant.
retour : Un tableau associatif dont les clés sont le nom de chaque chan et les valeurs sont la valeur du chan. Il retourne false lorsque vous êtes à la fin des lignes.
Paramètres:
$resources La ressource est fournie par la méthode query_while.
exemple (dans member ligne 287) :
Code PHP :
while ($row = $Sql->fetch_assoc($result))
On passe dans une boucle le tableau associatif de la lecture $result dans $row pour chaque niveau.
Aussi on aura $row['name'] = un pseudo pour chaque niveau de la db.
Il existe aussi la methode fetch_row( resource $result)
Cette méthode n'est pas utiliser dans les modules.