|
| Autor |
Nachricht |
Xanni Stammuser [User]


Anmeldung: 11.11.07 Beiträge: 29
|
Verfasst am: 19.03.2008, 11:45 Titel: MySQL-Abfrage in Array speichern |
|
|
Hallo,
ich will ganz simpel ein paar Einträge aus einer SQL-Datenbank abfragen und die in ein Array speichern und dann mit einer Schleife ausgeben. Hab das schon tausend mal gemacht, aber jetzt hab ich einen Code bei dem das ums Verrecken nicht gehen will. Vielleicht bin ich einfach müde... aber ich brauch Hilfe ^^
der code:
| Code: |
$result = mysql_query("SELECT month FROM weblog ORDER BY id DESC") OR die(mysql_error());
$datum_row = mysql_fetch_array($result);
|
Datenbankverbindung usw. ist alles in Ordnung, bloß wenn ich jetzt das Array mit var_dump($datum_row) ausgebe, bringt er mir nur den allerersten Eintrag der Datenbank, und wenn ich das Array mit einer Schleife ausgebe, logischerweise genau das gleiche.
Deshalb muss ja schon beim mysql_fetch_array irgendwas falsch laufen.... aber waaaas...?? _________________ Wake up, my friend... the Matrix has You.
|
|
| Nach oben |
|
 |
Melzebub Erfahrener [User]

Anmeldung: 15.02.08 Beiträge: 59
|
Verfasst am: 19.03.2008, 11:48 Titel: |
|
|
du brauchst ne while und darin ne for schleife.
stell ma deinen code komplett rein _________________ wer einen Hammer halten kann,
ist nicht unbedingt ein guter Handwerker!
www.digitalmedia4u.de
|
|
| Nach oben |
|
 |
benjam4 Bekannter [Mod]


Anmeldung: 17.05.06 Beiträge: 1193 Wohnort: Ostfildern ...
|
Verfasst am: 19.03.2008, 11:59 Titel: Re: MySQL-Abfrage in Array speichern |
|
|
| Code: |
$datum_row=array();
$result = mysql_query("SELECT month FROM weblog ORDER BY id DESC") OR die(mysql_error());
while ($row=mysql_fetch_array($result)) {
array_push($datum_row,$row);
}
|
So könnte es gehen. _________________ Rechtschreibfehler sind beabsichtigt, sie dienen der Verschleiherung meiner tatsächlichen Genialität
____________________________________
Eine Signatur sie alle zu knechten
|
|
| Nach oben |
|
 |
Xanni Stammuser [User]


Anmeldung: 11.11.07 Beiträge: 29
|
Verfasst am: 19.03.2008, 12:17 Titel: Array-Ausgabe |
|
|
Der Ansatz ist echt gut, also zumindest bringt er mir jetzt die exakte Anzahl der Einträge, die in der Datenbank drin sind. Bloß schreibt er mir nicht den Wert der Einträge hin, sondern einfach nur "Array".
Wenn ich allerdings mit var_dump das Array ausgebe, stehen die korrekten Einträge drin. Jetzt hab ich noch eine for-Schleife eingebaut um die Arrayelemente einzeln auszugeben, aber das bringt auch nix. Noch eine Idee? _________________ Wake up, my friend... the Matrix has You.
|
|
| Nach oben |
|
 |
benjam4 Bekannter [Mod]


Anmeldung: 17.05.06 Beiträge: 1193 Wohnort: Ostfildern ...
|
Verfasst am: 19.03.2008, 12:54 Titel: |
|
|
Könntest du den Code mal posten? _________________ Rechtschreibfehler sind beabsichtigt, sie dienen der Verschleiherung meiner tatsächlichen Genialität
____________________________________
Eine Signatur sie alle zu knechten
|
|
| Nach oben |
|
 |
Xanni Stammuser [User]


Anmeldung: 11.11.07 Beiträge: 29
|
Verfasst am: 19.03.2008, 13:12 Titel: |
|
|
Da ist im Moment noch nicht viel mehr dran, als das was du mir gepostet hattest:
| Code: |
<?php
require('newsblog/weblog_connect.php');
$datum_row=array();
$result = mysql_query("SELECT month FROM weblog ORDER BY id DESC") OR die(mysql_error());
while ($row=mysql_fetch_array($result)) {
array_push($datum_row,$row);
echo $datum_row;
}
?>
|
_________________ Wake up, my friend... the Matrix has You.
|
|
| Nach oben |
|
 |
benjam4 Bekannter [Mod]


Anmeldung: 17.05.06 Beiträge: 1193 Wohnort: Ostfildern ...
|
Verfasst am: 19.03.2008, 13:32 Titel: |
|
|
Du willst einfach eine Liste mit den Monaten haben?
| Code: | <?php
require('newsblog/weblog_connect.php');
$datum_row=array();
$result = mysql_query("SELECT month FROM weblog ORDER BY id DESC") OR die(mysql_error());
while ($row=mysql_fetch_array($result)) {
array_push($datum_row,$row);
}
foreach ($datum_row as $print) {
print "Monat: ".$print."<br />";
}
?> |
Dann bräuchtest du aber egtl kein Array, sondern könntest die direkt ausgeben:
| Code: | <?php
require('newsblog/weblog_connect.php');
$datum_row=array();
$result = mysql_query("SELECT month FROM weblog ORDER BY id DESC") OR die(mysql_error());
while ($row=mysql_fetch_array($result)) {
print "Monat: ".$row."<br />";
}
?> |
_________________ Rechtschreibfehler sind beabsichtigt, sie dienen der Verschleiherung meiner tatsächlichen Genialität
____________________________________
Eine Signatur sie alle zu knechten
|
|
| Nach oben |
|
 |
Xanni Stammuser [User]


Anmeldung: 11.11.07 Beiträge: 29
|
Verfasst am: 19.03.2008, 19:25 Titel: |
|
|
Okeee das hab ich jetzt soweit raus, aber jetzt steh ich im selben Code vor einem neuen Problem. Bis jetzt sieht er so aus:
| Code: |
<?php
require('newsblog/weblog_connect.php');
$result = mysql_query("SELECT month, year FROM weblog ORDER BY id DESC") OR die(mysql_error());
$anzahl=mysql_num_rows($result);
while ($row=mysql_fetch_array($result)) {
for($i=0; $i<$anzahl; $i++) { echo $row[$i]; }
echo '<br>';
}
?>
|
Ich hole mir die Zwei Einträge month und year aus der Datenbank, die dann auch hintereinander ausgegeben werden sollen. Da steht dann jetzt im Moment also:
January2008
March2008
March2008
Ich habe zwei Einträge die im März geschrieben worden sind und einer im Januar. Ich möchte zwei Dinge tun: Einmal zwischen Monat und Jahr ein Leerzeichen einfügen und dann noch die doppelten Einträge (in dem Fall das eine March2008) entfernen. Habe schon mit array_unique und str_replace rumprobiert, beides ohne ERfolg. Wie könnte das gehen? _________________ Wake up, my friend... the Matrix has You.
|
|
| Nach oben |
|
 |
benjam4 Bekannter [Mod]


Anmeldung: 17.05.06 Beiträge: 1193 Wohnort: Ostfildern ...
|
Verfasst am: 19.03.2008, 23:13 Titel: |
|
|
Ich schreib hier mal den Code wie ich ihn nutzen würde, ohne auf deinen einzugehen.
| Code: | <?php
$datenliste=array();
$result = mysql_query("SELECT month, year FROM weblog ORDER BY id DESC") OR die(mysql_error());
while ($row=mysql_fetch_array($result)) {
$datum= $row['month']." ".$row['year'];
if (!in_array($datum, $datenliste)) {
array_push($datenliste, $datum);
}
}
#Jetzt wurde jedes Datum einmal eingetragen in das Array
#d.h. doppelte Einträge gibt es nicht
#Nun werden sie wieder ausgelesen
foreach ($datenliste as $print) {
print $print."<br />;
}
?> |
Wenn was unklar ist, dann frag  _________________ Rechtschreibfehler sind beabsichtigt, sie dienen der Verschleiherung meiner tatsächlichen Genialität
____________________________________
Eine Signatur sie alle zu knechten
|
|
| Nach oben |
|
 |
Wimp Power-Poster [User]


Anmeldung: 22.10.06 Beiträge: 619
|
Verfasst am: 20.03.2008, 01:08 Titel: |
|
|
| Code: | | mysql_query("SELECT month, year FROM weblog ORDER BY id DESC GROUP BY month") OR die(mysql_error()); |
so bekommst du nur einen Eintrag pro monat _________________

|
|
| Nach oben |
|
 |
800XE Bekannter [Mod]


Anmeldung: 24.10.04 Beiträge: 1115 Wohnort: Speyer
|
Verfasst am: 20.03.2008, 02:12 Titel: |
|
|
| Wimp hat folgendes geschrieben: | | Code: | | mysql_query("SELECT month, year FROM weblog ORDER BY id DESC GROUP BY month") OR die(mysql_error()); |
so bekommst du nur einen Eintrag pro monat |
Aber jedes Jahr hat diese Monate .....
| Code: | | GROUP BY month,year | oder | Code: | | GROUP BY month AND year | wie, und obs überhaupt geht, weiss ich jetzt nicht
und ich glaube .....
.... ich hab mich schon drüber geärgert das man erst GROUPE und dann ORDER machen muß
| Code: |
SELECT
FROM
GROUP BY
ORDER BY
|
bei mir war es da so, das ich zwar nur einen datensatz pro GRUPPE aber nicht den den ich laut ORDER wollte _________________
Seien wir realistisch, versuchen wir das Unmögliche!
CMS800 :::::::::: Andy 800XE Zmuda :::::::::
|
|
| Nach oben |
|
 |
Xanni Stammuser [User]


Anmeldung: 11.11.07 Beiträge: 29
|
Verfasst am: 20.03.2008, 20:43 Titel: |
|
|
Jo jungs das klappt jetzt mit den Monaten ganz klasse. ich danke euch für die hilfe!
aber ich steh schon vor einem neuen problem, siehe anderer Thread... _________________ Wake up, my friend... the Matrix has You.
|
|
| Nach oben |
|
 |
|
|