| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

20-08-2009, 17:42
|
|
Cappo
Registrierter Benutzer
|
|
Registriert seit: Aug 2009
Beiträge: 43
|
|
Datenbankabfrage in Array
Hallo,
hab ein kleines Problem mit einer meiner DB Abfragen. Also ich will meine Datenbankabfrage in mehrdimensionales Array speichern und dann mit einer foreach-Schleife ausgeben. Und so sieht das ganze aus:
PHP-Code:
$blogDBResult = array(); $blogDatas = array();
$query = "SELECT * FROM blog WHERE autor = 'admin'"; $result = mysql_query($query); while ($row = mysql_fetch_array($result)) { $blogDBResult = array ( 'blogText'=>$row->text, 'blogTitle'=>$row->titel, 'blogTime'=>$row->time, 'blogDate'=>date("d.m.Y", $row->time), 'blogTime'=>date("H:i", $row->time), 'blogUpdateDate'=>date("d.m.Y", $row->updateTime), 'blogUpdateTime'=>date("H:i", $row->updateTime) );
array_push($blogDatas, $blogDBResult); }
Nun wenn ich das mehrdim. Array "$blogDatas" per foreach Schleife ausgeben will befindet sich nix im Array. Habe "$blogDatas" mit print_r() ausgeben und gesehen das er gar nichts in das Array reinschreibt. Also wollte ich euch fragen woran das liegt. Komm einfach nicht drauf...
MfG
Cappo
|

20-08-2009, 17:52
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Der gezeigte Code "funktioniert" wie gewünscht in dem Sinne, dass er in jedem Schleifendurchlauf den Inhalt von $blogDBResult als neues Element an $blogDatas anfügt.
Wenn da letztendlich gar nichts drin steht - dann wurde vielleicht deine Schleife gar nicht so oft durchlaufen, wie du dir erträumt hast (nämlich 0 statt X Mal).
Hast du das mal überprüft ...?
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

20-08-2009, 18:04
|
|
Cappo
Registrierter Benutzer
|
|
Registriert seit: Aug 2009
Beiträge: 43
|
|
Jo also wenn ich ein print_r() auf $row mache bekomme ich 3 Durchläufte gezeigt (soviel wie er halt laut der Query findet)....
MfG
Cappo
|

20-08-2009, 18:05
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Sorry, dann kann ich dein Problem mit dem Code nicht nachvollziehen.
Welche der Kontrollausgaben hast du wo genau gemacht?
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

20-08-2009, 18:10
|
|
Cappo
Registrierter Benutzer
|
|
Registriert seit: Aug 2009
Beiträge: 43
|
|
also die erste hier:
PHP-Code:
$blogDBResult = array(); $blogDatas = array();
$query = "SELECT * FROM blog WHERE autor = 'admin'"; $result = mysql_query($query); while ($row = mysql_fetch_array($result)) { print_r($row); $blogDBResult = array ( 'blogText'=>$row->text, //'blogAutor'=>$row->autor, 'blogTitle'=>$row->titel, 'blogTime'=>$row->time, 'blogDate'=>date("d.m.Y", $row->time), 'blogTime'=>date("H:i", $row->time), 'blogUpdateDate'=>date("d.m.Y", $row->updateTime), 'blogUpdateTime'=>date("H:i", $row->updateTime) );
array_push($blogDatas, $blogDBResult); }
Das print_r() wirft mir folgendes aus:
Code:
Array ( [0] => 6 [id] => 6 [1] => Titel [titel] => Titel [2] => admin [autor] => admin [3] => text [4] => 1234295505 [time] => 1234295505 [5] => 1241271391 [updateTime] => 1241271391 ) Array ( [0] => 4 [id] => 4 [1] => Titel1 [titel] => Titel1 [2] => admin [autor] => admin [3] => Hallo..test...test [text] => Hallo..test...test [4] => 1234295287 [time] => 1234295287 [5] => 0 [updateTime] => 0 ) Array ( [0] => 11 [id] => 11 [1] => testseetstseestsetsestetse [titel] => testseetstseestsetsestetse [2] => admin [autor] => admin [3] => tsetsestesesetsetsetsestestetsetseste [text] => tsetsestesesetsetsetsestestetsetseste [4] => 1250623466 [time] => 1250623466 [5] => 0 [updateTime] => 0 )
Die zweite vor der foreach-Schleife:
PHP-Code:
print_r($blogDatas); foreach ($blogDatas as $data) { echo' <div class="blogBar"> <div id="blogs"> <div class="blogBarBorder1"></div> <div class="blogBarBorder2"></div> <div class="blogBarBorder3"></div>
<div id="title" class="blogBarSize"> <div onclick="showBox(\'text'.$i.'\')"> <div class="blogTitle">'.$data['blogTitle'].'</div> </div> </div> <div class="blogBarSize"> <div class="blogDate"> Geschrieben am <b> '.$data['blogDate'].' </b>um<b> '.$data['blogTime'].' </b>Uhr </div> </div>';
(Code geht noch weiter...)
Und das print_r() wirft mir das zurück:
Code:
Array ( [0] => Array ( [blogText] => [blogTitle] => [blogTime] => 01:00 [blogDate] => 01.01.1970 [blogUpdateDate] => 01.01.1970 [blogUpdateTime] => 01:00 ) [1] => Array ( [blogText] => [blogTitle] => [blogTime] => 01:00 [blogDate] => 01.01.1970 [blogUpdateDate] => 01.01.1970 [blogUpdateTime] => 01:00 ) [2] => Array ( [blogText] => [blogTitle] => [blogTime] => 01:00 [blogDate] => 01.01.1970 [blogUpdateDate] => 01.01.1970 [blogUpdateTime] => 01:00 ) )
MfG
David
|

20-08-2009, 18:34
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Und auf Daten, die du explizit in Form eines Arrays holst, anschliessend mit der Schreibweise zugreifen zu wollen, die man zum Zugriff auf die Eigenschaften/Methoden von Objekten benutzt, erscheint dir sonderlich clever ...?
Stelle bitte das error_reporting auf E_ALL, während du entwickelst, dann hat PHP die Chance, dich gleich auf sowas hinzuweisen.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

20-08-2009, 18:53
|
|
Cappo
Registrierter Benutzer
|
|
Registriert seit: Aug 2009
Beiträge: 43
|
|
Hmmm okay stimmt eigentlich  ...Könntest du mir evtl. sagen wie du es anstellen würdest?
MfG
Cappo
|

20-08-2009, 19:03
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Ich würde mir vorher überlegen, ob ich die Daten in Objekt- oder Array-Form von der Datenbank abhole - und dann die jeweils passende Notation für den Zugriff verwenden.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

20-08-2009, 19:09
|
|
Cappo
Registrierter Benutzer
|
|
Registriert seit: Aug 2009
Beiträge: 43
|
|
Ok werd wieder ein bisschen rumtüfteln. Werds schon gebacken kriegen. Danke nochmals.
MfG
David
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|