php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 21.12.2011, 16:33  
archer42
Gast
 
Beiträge: n/a
Standard PDO Ausgabe in Array speichern

Hallo,
ich habe in möchte als Übung das MVC-Konzept für eine Art Pinnwand umsetzen.

Dafür habe ich folgendes Array angelegt:
PHP-Code:
$entries = array();
$entries['id'] = array();
$entries['user'] = array();
$entries['time'] = array();
$entries['content'] = array(); 
Nun möchte ich mittels PDO jede Spalte ablaufen und in das passende Array speichern.
PHP-Code:
$stmt $db->prepare('SELECT id, user, time, content FROM board_entries');
$stmt->execute();
$stmt->fetch(); // ab dann weiß ich nicht mehr weiter 
Wie kriege ich nun die Datensätze der einzelnen Spalten so gefecht, dass ich diese mittels while Schleife in die arrays einfügen kann?
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 21.12.2011, 16:38  
Erfahrener Benutzer
 
Benutzerbild von wolf29
 
Registriert seit: 17.03.2010
Beiträge: 1.833
PHP-Kenntnisse:
Fortgeschritten
wolf29 wird schon bald berühmt werdenwolf29 wird schon bald berühmt werden
Standard

Hi,

http://www.phpro.org/tutorials/Intro...o-PHP-PDO.html

mfg Wolf29
__________________
while (!asleep()) sheep++;

Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.
wolf29 ist offline   Mit Zitat antworten
Alt 21.12.2011, 17:04  
Benutzer
 
Registriert seit: 14.08.2008
Beiträge: 41
PHP-Kenntnisse:
Anfänger
hummer befindet sich auf einem aufstrebenden Ast
Standard

http://php.net/manual/de/pdostatement.fetchall.php
hummer ist gerade online   Mit Zitat antworten
Alt 21.12.2011, 17:14  
archer42
Gast
 
Beiträge: n/a
Standard

Hi wolf29,

Danke für den Link.

ich habe das für mich jetzt erstmal so gemacht:
PHP-Code:
public function getEntriesFromDB() {
        
$stmt $this->db->prepare('SELECT id, user, time, content FROM board_entries');
        
$stmt->execute();
        
$this->entries $stmt->fetch(PDO::FETCH_ASSOC);
        
    } 
Das müsste im prinzip funktionieren, aus irgendeinem Grund, gibt das Script leider kein Array aus, obwohl es am Anfang noch geklappt hat, so ein Mist
  Mit Zitat antworten
Alt 21.12.2011, 17:24  
archer42
Gast
 
Beiträge: n/a
Standard

Ich habe die array Erstellung im Konstruktor auskommentiert, deswegen ging es nicht mehr.
Kann mir das jemand erklären?
Jetzt bekomme ich folgendes zurück:
Code:
Array
(
    [id] => Array
        (
        )

    [user] => Array
        (
        )

    [time] => Array
        (
        )

    [content] => Array
        (
        )

)

PHP-Code:
<?php namespace boardcore;

use 
PDO;

class 
model {
    private 
$db;
    private 
$entries = array();
    
    public function 
__construct($pdo) {
        
$this->db $pdo;
        
$this->entries['id']   = array();
        
$this->entries['user'] = array();
        
$this->entries['time'] = array();
        
$this->entries['content'] = array();
    }
    
    public function 
getEntriesFromDB() {
        
$stmt $this->db->prepare('SELECT id, user, time, content FROM board_entries');
        
$stmt->execute();
        
$rslt $stmt->fetch();
        
print_r($rslt);
    }
    
    public function 
getEntries() {
        
$this->getEntriesFromDB();
        
print_r($this->entries);
    }
    
}

?>
  Mit Zitat antworten
Alt 21.12.2011, 18:00  
Benutzer
 
Registriert seit: 14.08.2008
Beiträge: 41
PHP-Kenntnisse:
Anfänger
hummer befindet sich auf einem aufstrebenden Ast
Standard

Nochmal: Verwende fetchAll(), das liefert dir alle Einträge als Array.
hummer ist gerade online   Mit Zitat antworten
Alt 21.12.2011, 18:35  
archer42
Gast
 
Beiträge: n/a
Standard

Zitat:
Nochmal: Verwende fetchAll(), das liefert dir alle Einträge als Array.
Das habe ich bereits ausprobiert, dies gibt mir allerdings immer noch
Code:
Array
(
    [id] => Array
        (
        )

    [user] => Array
        (
        )

    [time] => Array
        (
        )

    [content] => Array
        (
        )

)
aus
  Mit Zitat antworten
Alt 21.12.2011, 18:40  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Sinn eines Datensatzes ist, die Daten in einem Array (oder Objekt) zu bündeln. Einzelne Bestandteile (Spalten) eines Datensatzes über mehrere Arrays zu verteilen, ist zwar nicht verkehrt, aber sehr verquert.

Das ist schlecht:
PHP-Code:
$entries = array();
$entries['id'] = array();
$entries['user'] = array();
$entries['time'] = array();
$entries['content'] = array(); 
Besser:
PHP-Code:
// sammelt viele Einträge
$entries = array();

// ein einzelner Eintrag "bündelt" die Informationen, die zusammengehören
$oneEntry = array(
  
'id' => 1,
  
'user' => 'Horst',
  
'time' => 10000000,
  
'content' => 'whatever'
);

$entries[] = $oneEntry;
print_r($entries); 
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 21.12.2011, 19:00  
archer42
Gast
 
Beiträge: n/a
Standard

Zitat:
Sinn eines Datensatzes ist, die Daten in einem Array (oder Objekt) zu bündeln. Einzelne Bestandteile (Spalten) eines Datensatzes über mehrere Arrays zu verteilen, ist zwar nicht verkehrt, aber sehr verquert
Einverstanden

Nur die Geschichte mit FetchAll und PDO bereitet noch Schwierigkeiten.

Meine Klasse und der Aufruf sehen momentan so aus:
index.php
PHP-Code:
<?php namespace board;

use 
PDO;

$dbHost 'localhost';
$dbUser 'root';
$dbPass '';

$pdo = new PDO("mysql:host=$dbHost;dbname=mysql"$dbUser$dbPass);

include 
__DIR__.'/core/model.php';
$model = new coremodel($pdo);
$model->getEntries();

?>
model.php
PHP-Code:
<?php namespace boardcore;

use 
PDO;

class 
model {
    private 
$db;
    private 
$entries = array();
    
    public function 
__construct($pdo) {
        
$this->db $pdo;
    }
    
    private function 
getEntriesFromDB() {
        
$stmt $this->db->prepare('SELECT id, user, time, content FROM board_entries');
        
$stmt->execute();
        
$this->entries $stmt->fetchAll();

    }
    
    public function 
getEntries() {
        
$this->getEntriesFromDB();
        
print_r($this->entries);
        return 
$this->entries;
    }
    
}

?>
Ausgabe:
Code:
Array
(
)
Dabei muss doch eigentlich das array ausgegeben werden?
Habe schon alles überprüft, vom SQL Befehl bis hin zum Array selbst, aber ich finde den Fehler nicht...
  Mit Zitat antworten
Alt 21.12.2011, 19:24  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Zitat:
PHP-Code:
class model 
Zitat:
PHP-Code:
$model = new coremodel($pdo); 


In der Regel liefert eine Abfrage mehr als einen Datensatz in einem Resultset. fetch-Methoden liefern aber nur einen Eintrag aus besagtem Set, es macht Sinn, solange in einer Schleife zu fetchen, bis nichts mehr kommt.
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] PDF im Browser Streamen PiXeL1337 PHP Einsteiger 22 08.09.2011 16:24
[Erledigt] Mehrdimensionalem Array umformen, Index neu setzen und anschließend sortie wooha PHP Einsteiger 3 26.04.2011 12:08
Objekte in Array speichern und diese Verwenden michi_pader PHP Einsteiger 6 12.12.2010 17:24
mehrdimensionales array inhalte tauschen pidaman PHP Tipps 2010 18 27.08.2010 16:58
[Erledigt] Mehrdimensionales Array --&gt; direkte Ausgabe bello_1234 PHP Tipps 2010 6 22.07.2010 12:52
IE8 verliert Session Lenki PHP-Fortgeschrittene 10 25.04.2010 01:10
Array auslesen andrew22 PHP Tipps 2006 3 21.01.2006 23:06
Array Formatierung PHP Tipps 2006 3 17.01.2006 19:12
Menü mit Unterpunkten supertramp Beitragsarchiv 7 18.10.2005 22:40
Problem beim vergleichen von 2 Arrays PHP Tipps 2005-2 1 06.10.2005 14:25
Sortieren von Arrays mit mehr als 2 Dimensionen (Teil 2) Buhmann PHP-Fortgeschrittene 4 12.07.2005 14:03
[Erledigt] Mehrdimensionales Array in eindimensionales Array umwandeln PHP-Fortgeschrittene 3 03.01.2005 22:31
Abfrage mit id aus anderer Tabelle suter PHP Tipps 2004-2 15 16.12.2004 14:25
bbcode - Classe PHP-Fortgeschrittene 4 18.09.2004 17:30

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
pdo ausgabe, php pdo ausgabe, archer42 pdo mermshaus, pdo datenbank wie array ausgeben, pdo id auslesen und setzen, php pdo datenausgabe, §stmt array, php pdo execute sammeln, mehrere datensätze in arrays php pdo, pdo array auslesen, pdo zeile in array speichern, pdo daten in array key wie id, php pdo array weiter verwenden, pdo mysql array ausgeben

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:16 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum