[ Index ] |
|
Code source de SPIP 1.8.3 |
1 <?php 2 3 /***************************************************************************\ 4 * SPIP, Systeme de publication pour l'internet * 5 * * 6 * Copyright (c) 2001-2005 * 7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * 8 * * 9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * 10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * 11 \***************************************************************************/ 12 13 14 // Ce fichier ne sera execute qu'une fois 15 if (defined("_INC_ABSTRACT_SQL")) return; 16 define("_INC_ABSTRACT_SQL", "1"); 17 18 // Cette fonction est systematiquement appelee par les squelettes 19 // pour constuire une requete SQL de type "lecture" (SELECT) a partir 20 // de chaque boucle. 21 // Elle construit et exe'cute une reque^te SQL correspondant a` une balise 22 // Boucle ; elle notifie une erreur SQL dans le flux de sortie et termine 23 // le processus. 24 // Sinon, retourne la ressource interrogeable par spip_abstract_fetch. 25 // Recoit en argument: 26 // - le tableau des champs a` ramener 27 // - le tableau des tables a` consulter 28 // - le tableau des conditions a` remplir 29 // - le crite`re de regroupement 30 // - le crite`re de classement 31 // - le crite`re de limite 32 // - une sous-requete e'ventuelle (MySQL > 4.1) 33 // - un compteur de sous-requete 34 // - le nom de la table 35 // - le nom de la boucle (pour le message d'erreur e'ventuel) 36 // - le serveur sollicite 37 38 function spip_abstract_select ( 39 $select = array(), $from = array(), $where = '', 40 $groupby = '', $orderby = array(), $limit = '', 41 $sousrequete = '', $cpt = '', 42 $table = '', $id = '', $serveur='') { 43 44 if (!$serveur) 45 // le serveur par defaut est celui de inc_connect.php 46 // tout est deja pret, notamment la fonction suivante: 47 $f = 'spip_mysql_select'; 48 else { 49 // c'est un autre; est-il deja charge ? 50 $f = 'spip_' . $serveur . '_select'; 51 if (!function_exists($f)) { 52 // non, il est decrit dans le fichier ad hoc 53 $d = _DIR_RESTREINT . 'inc_connect-' . $serveur .'.php3'; 54 if (@file_exists($d)) include($d); 55 $f = spip_abstract_serveur($f, $serveur); 56 } 57 } 58 return $f($select, $from, $where, 59 $groupby, array_filter($orderby), $limit, 60 $sousrequete, $cpt, 61 $table, $id, $serveur); 62 } 63 64 function spip_abstract_serveur($f, $serveur) { 65 if (function_exists($f)) 66 return $f; 67 68 erreur_squelette(' '._T('zbug_serveur_indefini'), $serveur); 69 70 // hack pour continuer la chasse aux erreurs 71 return 'array'; 72 } 73 74 // Les 3 fonctions suivantes exploitent le resultat de la precedente, 75 // si l'include ne les a pas definies, erreur immediate 76 77 function spip_abstract_fetch($res, $serveur='') 78 { 79 if (!$serveur) return spip_fetch_array($res); 80 $f = spip_abstract_serveur('spip_' . $serveur . '_fetch', $serveur); 81 return $f($res); 82 } 83 84 function spip_abstract_count($res, $serveur='') 85 { 86 if (!$serveur) return spip_num_rows($res); 87 $f = spip_abstract_serveur('spip_' . $serveur . '_count', $serveur); 88 return $f($res); 89 } 90 91 function spip_abstract_free($res, $serveur='') 92 { 93 if (!$serveur) return spip_free_result($res); 94 $f = spip_abstract_serveur('spip_' . $serveur . '_free', $serveur); 95 return $f($res); 96 } 97 98 function spip_abstract_insert($table, $noms, $valeurs, $serveur='') 99 { 100 $f = (!$serveur ? 'spip_mysql_insert' : 101 spip_abstract_serveur('spip_' . $serveur . '_insert', $serveur)); 102 return $f($table, $noms, $valeurs); 103 } 104 105 # une composition tellement frequente... 106 function spip_abstract_fetsel( 107 $select = array(), $from = array(), $where = '', 108 $groupby = '', $orderby = array(), $limit = '', 109 $sousrequete = '', $cpt = '', 110 $table = '', $id = '', $serveur='') { 111 return spip_abstract_fetch(spip_abstract_select( 112 $select, $from, $where, $groupby, $orderby, $limit, 113 $sousrequete, $cpt, $table, $id, $serveur), 114 $serveur); 115 } 116 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Thu Feb 22 22:27:47 2007 | par Balluche grâce à PHPXref 0.7 |