Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PDO
PDO Forum d'entraide sur PDO (PHP Data Objects) : pilote générique de bases de données avec PHP. Avant de poster -> FAQ PDO et Cours PDO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/02/2011, 13h03   #1
Invité régulier
 
Adel Echi
Inscription : juillet 2010
Messages : 30
Détails du profil
Informations personnelles :
Nom : Adel Echi
Localisation : Tunisie

Informations forums :
Inscription : juillet 2010
Messages : 30
Points : 6
Points : 6
Par défaut Premier affichage dans un tableau

Bonjour à tous,
voila c’est mon premier exercice en php5.
J’ai trouvé ce code exécutable.
Aide moi à trouver la solution la plus efficace.

table utiliser user(id,name)
comment je peux affiché le contenu de la table user dans un tableau en utilisant une méthode de classe UserTable ?

contenu de fichier "class_MyPDO.php"

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
class MyPDO extends PDO
{
      public function __construct($dsn, $user=NULL, $password=NULL)
      {
            parent::__construct($dsn, $user, $password);
            $this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      }
      public function prepare($sql, $options=NULL)
      {
            $statement = parent::prepare($sql);
            if(strpos(strtoupper($sql), 'SELECT') === 0) //requête "SELECT"
            {
                  $statement->setFetchMode(PDO::FETCH_ASSOC);
            }
            return $statement;
      }
}
?>
contenu de fichier "class_UserTable.php"

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
class UserTable
{
 
      private $selectAll;
      private $insert;
 
 
 
      public function __construct($db)
      {
            $this->selectAll = $db->prepare(
            "SELECT id, name FROM user ORDER BY name, id");
 
            $this->insert = $db->prepare(
            "INSERT INTO user (name, password) VALUES (:name, :password)");
 
      }
      public function insert($name, $password)
      {
            $this->insert->execute(
            array(':name' => $name, ':password' => $password));
            return $this->insert->rowCount();
      }
      public function selectAll()
      {
            $this->selectAll->execute();
            return $this->selectAll->fetchAll();
      }
 
}
?>
contenu de fichier "main.php"
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
<?php
require_once 'class_UserTable.php';
require_once 'class_MyPDO.php';
 
$db = new MyPDO('mysql:host=localhost;dbname=developpez', 'root', '');
 
  $userTable = new UserTable($db);
 
  $userTable->insert('Yogui', '4321');
  $userTable->insert('mathieu', '4321');
  $userTable->insert('BrYs', '4321');
 
  ?><pre><?php
 
  print_r($userTable->selectAll());
?>

Merci…
zamoud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2011, 15h57   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 465
Points : 8 465
tu ne sais pas parcourir un array ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2011, 17h06   #3
Invité régulier
 
Adel Echi
Inscription : juillet 2010
Messages : 30
Détails du profil
Informations personnelles :
Nom : Adel Echi
Localisation : Tunisie

Informations forums :
Inscription : juillet 2010
Messages : 30
Points : 6
Points : 6
Par défaut Premier affichage dans un tableau

Merci pour votre réponse, voilà l’affichage, mais je veux utiliser une méthode de la classe UserTable pour obtenir le même résultat
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
mysql_connect('localhost', 'root, '');
mysql_select_db('developpez');
$sql = 'SELECT id,name
          FROM user
          ORDER BY id';
 
$db_messages = mysql_query($sql);
 
echo"<table border=1><tr><td>id</td><td>name</td></tr>";
 
while($tab= mysql_fetch_array($db_messages))
{
  echo"<tr><td>".  $tab['id'] ."</td><td>".  $tab['name'] ."</td></tr>";
}
echo"</table>
zamoud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2011, 17h30   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 465
Points : 8 465
$userTable->selectAll() tr renvoie un array a toi de faire la boucle dessus...
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2011, 02h11   #5
Invité régulier
 
Adel Echi
Inscription : juillet 2010
Messages : 30
Détails du profil
Informations personnelles :
Nom : Adel Echi
Localisation : Tunisie

Informations forums :
Inscription : juillet 2010
Messages : 30
Points : 6
Points : 6
Par défaut merci

merci
you are the best

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
$tab=$userTable->selectAll();
        echo"<table border=1><tr><td>id</td><td>name</td></tr>";
        foreach($tab as $key=> $value)
        {
 
           echo"<tr>";
            foreach($value as $cle=> $value2)
            {
                echo "<td>$value2</td>";    
            }
          echo"</tr>";  
        }
         echo"</table>";
zamoud est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h11.


 
 
 
 
Partenaires

Hébergement Web