2010-11-19 18 views
0

Je suis désolé si cela peut sembler une question vraiment bête mais je commence juste à saisir le concept de programmation orientée objet et je suis un peu confus sur le modèle singleton pour php.OOP Query fonction

Comment est-ce que j'incorporerais une requête avec enregistrer les résultats des rangées récupérées sauvées en tant que variables dans le modèle de singleton?

Par exemple, comment le code ci-dessous serait-il incorporé?

$query = "SELECT * FROM members WHERE email= '".mysql_real_escape_string($_SESSION['email1'])."'"; 
$result = mysql_query($query) or die(mysql_error()); 
$number = mysql_num_rows($result); 
$i = 0; 

while ($i < $number) 
{ 

    $first_name = mysql_result($result,$i,"first_name"); 
    $last_name = mysql_result($result,$i,"last_name"); 
    $state = mysql_result($result,$i,"home_state"); 
    $id_district = mysql_result($result,$i,"district"); 
    $political_views = mysql_result($result,$i,"political_views"); 
    $first_issue = mysql_result($result,$i,"first_issue"); 
    $second_issue = mysql_result($result,$i,"second_issue"); 
    $third_issue = mysql_result($result,$i,"third_issue"); 
    $email = mysql_result($result,$i,"email"); 
    $iStand = mysql_result($result,$i,"iStand"); 
    $photo = mysql_result($result,$i,"photo"); 
    $code = mysql_result($result,$i,"code"); 
    $changed = mysql_result($result,$i,"changed"); 
    $mem_ID   = mysql_result($result,$i,"member_ID"); 
    $pass = mysql_result($result,$i,"password"); 
    $privacy = mysql_result($result,$i,"privacy"); 
    $since = mysql_result($result,$i,"invite_date"); 
    $nombre = mysql_result($result,$i,"peer_name"); 

    $i++; 
    } 
+0

Pas lié à la question, mais quel est ce code en premier lieu? Pourquoi chercheriez-vous plusieurs lignes juste pour mettre les valeurs de seulement la dernière ligne dans les variables? Pourquoi affecter chaque colonne à une variable séparément au lieu de simplement demander la ligne entière en tant que tableau associatif (mysql_fetch_array)? Ce code ne devrait pas exister! –

+0

Une seule ligne est extraite de la base de données car le champ de courrier électronique est unique et par conséquent, aucun utilisateur ne peut avoir le même courrier électronique. – Lance

+0

Dans ce cas, vous ne devriez pas avoir besoin d'une boucle while. – BoltClock

Répondre

0

Un modèle Singleton a un but spécifique:

the singleton pattern is a design pattern used to implement the mathematical concept of a singleton, by restricting the instantiation of a class to one object. This is useful when exactly one object is needed to coordinate actions across the system

Cela ne convient pas pour la fonctionnalité que vous avez présenté ci-dessus. Un motif Singleton serait utilisé, par exemple, lors de la création d'une classe de paramètres à l'échelle du système. Le Singleton empêche lui-même d'être instancié plus d'une fois (ou, du moins) et fournit à la place un seul endroit pour obtenir et définir des informations de réglage.

+1

Vous pourriez ajouter que le Singleton est un AntiPattern qui devrait être évité. – Gordon