Du bist nicht eingeloggt.

Login

Pass

Registrieren

Community
Szene & News
Locations
Impressum

Forum / Bits und Bytes

PHP / MySQL Problem ...

chris_008 - 35
Halbprofi (offline)

Dabei seit 07.2005
346 Beiträge

Geschrieben am: 28.03.2008 um 23:52 Uhr
Zuletzt editiert am: 28.03.2008 um 23:53 Uhr

Hey Leute,

Ich bin seit ca 2 Wochen dabei mir ein bisschen PHP und MySQL anzueignen.

Ich habe mir eine Datenbank aufgesetzt und möchte meine nachrichten aus der Datenbank abfragen. ( Die Felder lauten zB: "mail1stat", "mail1", "mail1sender" und "mail1time" )

Allerdings bekomme ich jetzt immer folgende Fehlermeldung:

Zitat:


Object of class stdClass could not be converted to string


Mein Code sieht an der Problemstelle ungefähr folgendermaßen aus:

Zitat:


[...]

$username=$_SESSION['sesusername'];
$max=250;
$staty="stat";
$maily="mail";
$sendery="sender";
$timey="time";


for ($i=1; $i<=$max; $i++)
{

$a0=$maily.$i.$staty;
$a1=$maily.$i;
$a2=$maily.$i.$sendery;
$a3=$maily.$i.$timey;
$abfrage2 = mysql_query("SELECT * FROM register WHERE username = '$username'");

while($row = mysql_fetch_object($abfrage2))
{

echo "<tr><td>";
echo "$row->$a0"; // <---- HIER LIEGT DER FEHLER?!
echo "</td><td>";
echo "$row->$a2"; // <---- HIER LIEGT DER FEHLER?!
echo "</td><td>";
echo "$row->$a3"; // <---- HIER LIEGT DER FEHLER?!
echo "</td><td>";
echo "$row->$a1"; // <---- HIER LIEGT DER FEHLER?!
echo "</td></tr>";

}

}
echo "</table>";


[...]



würde ich anstelle der variablen "$a0" bis "$a3" bei "row->" direkt die werte eintragen, so würde alles prima funktionieren...

Kann mir bitte jemand helfen, denn so langsam gehen mir die Ideen aus... :-(

„Irren ist menschlich!“, sprach der Igel und hüpfte von der Klobürste :D

franzy_1992 - 34
Halbprofi (offline)

Dabei seit 10.2007
130 Beiträge
Geschrieben am: 28.03.2008 um 23:57 Uhr

man spricht die $row so an:

$row->feld und nicht $row->$feld
franzy_1992 - 34
Halbprofi (offline)

Dabei seit 10.2007
130 Beiträge
Geschrieben am: 28.03.2008 um 23:59 Uhr

aber was genau soll der code bezwecken?
poste mal die struktur der tabelle...
chris_008 - 35
Halbprofi (offline)

Dabei seit 07.2005
346 Beiträge

Geschrieben am: 29.03.2008 um 00:02 Uhr

Zitat von franzy_1992:

man spricht die $row so an:

$row->feld und nicht $row->$feld


sry, ich bin noch ziemlich neu auf dem gebiet!^^

Aber statt "feld" brauche ich an dieser Stelle eine Variable! (=> "$feld")
Allerdings wird diese Variable obwohl ich ihr den richtigen Wert zugewiesen hab, nicht angenommen! =(


„Irren ist menschlich!“, sprach der Igel und hüpfte von der Klobürste :D

franzy_1992 - 34
Halbprofi (offline)

Dabei seit 10.2007
130 Beiträge
Geschrieben am: 29.03.2008 um 00:04 Uhr
Zuletzt editiert am: 29.03.2008 um 00:05 Uhr

was soll denn die for-schleife da bringen?
ich versteh deinen code nicht

poste mal den aufbau der tabelle und sag, was der code tun soll und ich sag dir dann, wie man es umändern muss ;)

kommen fehlermeldungen?


EDIT: Nein, du brauchst keine variable

$row ist ein object... und auf eigenschaften von objekten greift man ohne das dollarzeichen zu
chris_008 - 35
Halbprofi (offline)

Dabei seit 07.2005
346 Beiträge

Geschrieben am: 29.03.2008 um 00:10 Uhr
Zuletzt editiert am: 29.03.2008 um 00:50 Uhr

Zitat von franzy_1992:

was soll denn die for-schleife da bringen?
ich versteh deinen code nicht

poste mal den aufbau der tabelle und sag, was der code tun soll und ich sag dir dann, wie man es umändern muss ;)

kommen fehlermeldungen?


EDIT: Nein, du brauchst keine variable

$row ist ein object... und auf eigenschaften von objekten greift man ohne das dollarzeichen zu


Die For-Schleife ist nicht von so wichtiger Bedeutung... (durch sie kann ich 250 nachrichten aus meiner datenbank abfragen)

Fehlermeldung steht bereits oben!

Hier einen Auszug aus meiner DB:

[verlinkte Grafik wurde nicht gefunden]
(Am Besten vergrößern ;-) )

„Irren ist menschlich!“, sprach der Igel und hüpfte von der Klobürste :D

chris_008 - 35
Halbprofi (offline)

Dabei seit 07.2005
346 Beiträge

Geschrieben am: 29.03.2008 um 00:12 Uhr
Zuletzt editiert am: 29.03.2008 um 00:13 Uhr

Zitat von franzy_1992:

was soll denn die for-schleife da bringen?
ich versteh deinen code nicht

poste mal den aufbau der tabelle und sag, was der code tun soll und ich sag dir dann, wie man es umändern muss ;)

kommen fehlermeldungen?


EDIT: Nein, du brauchst keine variable

$row ist ein object... und auf eigenschaften von objekten greift man ohne das dollarzeichen zu


Ich möchte aber mehrere Nachrichten abfragen und damit ich nicht jedes mal die ganze Prozedur nochmal schreiben muss, dachte ich, mach ich variablen und änder sie über eine for-schleife...

„Irren ist menschlich!“, sprach der Igel und hüpfte von der Klobürste :D

franzy_1992 - 34
Halbprofi (offline)

Dabei seit 10.2007
130 Beiträge
Geschrieben am: 29.03.2008 um 00:14 Uhr

nene ;-)

vergiss die for-schleife.

verwende ORDER BY und LIMIT, das ist viel effektiver
chris_008 - 35
Halbprofi (offline)

Dabei seit 07.2005
346 Beiträge

Geschrieben am: 29.03.2008 um 00:16 Uhr

Zitat von franzy_1992:

nene ;-)

vergiss die for-schleife.

verwende ORDER BY und LIMIT, das ist viel effektiver


Kannst du mir dazu vielleicht ein Beispiel geben???

„Irren ist menschlich!“, sprach der Igel und hüpfte von der Klobürste :D

franzy_1992 - 34
Halbprofi (offline)

Dabei seit 10.2007
130 Beiträge
Geschrieben am: 29.03.2008 um 00:16 Uhr

halt mal

jetzt versteh ich deine logik

sorry, aber das ist ein völlig falscher ansatz ;-)

Eine Datenbank ist dazu da, mehrere Zeilen zu haben.
Du kannst mit mysql_fetch_object die zeilen durchlaufen und dann mit
$row->spalte auf den inhalt der Spalte in der jeweiligen Zeile zugreifen
franzy_1992 - 34
Halbprofi (offline)

Dabei seit 10.2007
130 Beiträge
Geschrieben am: 29.03.2008 um 00:21 Uhr
Zuletzt editiert am: 29.03.2008 um 00:22 Uhr

mal ein gaaanz einfaches beispiel:

Du hast eine tabelle "tabelle1" mit 4 spalten: "spalte1", "spalte2", "spalte3", "spalte4"

die tabelle hat 10 zeilen mit irgend einem inhalt. du willst nur die ersten 5 zeilen auslesen:

$res = mysql_query("SELECT spalte1, spalte2, spalte3, spalte4 FROM tabelle1 LIMIT 0,5");
$i = 0;
while($row = mysql_fetch_object($res))
{
echo $i.". Durchlauf <br />";
echo "Spalte 1: ".$row->spalte1;
echo "<br />Spalte 2: ".$row->spalte2;
echo "<br />Spalte 3: ".$row->spalte3;
echo "<br />Spalte 4: ".$row->spalte4;
$i++;
}
chris_008 - 35
Halbprofi (offline)

Dabei seit 07.2005
346 Beiträge

Geschrieben am: 29.03.2008 um 00:57 Uhr

Also, das Problem besteht weiterhin, ... falls jemand einen Tipp parat hat, kann er mir den gerne geben! ;-)

„Irren ist menschlich!“, sprach der Igel und hüpfte von der Klobürste :D

TheBrainless - 38
Experte (offline)

Dabei seit 04.2005
1992 Beiträge

Geschrieben am: 29.03.2008 um 01:21 Uhr

Lies dir ma das über deinem Beitrag durch...

Du hast den Ansatz, dass du alle Einträge auf einmal bekommst und dann in ner For-Schleife durchgehst, kann das sein?

Bei MySQL verwendest du allerdings den Ansatz, dass du in jedem Durchlauf der While-Schleife nen neuen Datensatz zurückbekommst, den du mit dem $row->Spaltenname auseinandersplitten kannst...

Übrigens, n gutes Tutorial findeste hier oder hier.
Beide sehr gut verständlich und für Anfänger imo gut geeignet :)

Mörps mörps blubbs!

franzy_1992 - 34
Halbprofi (offline)

Dabei seit 10.2007
130 Beiträge
Geschrieben am: 29.03.2008 um 12:47 Uhr

Stimmt,
vor allem das Tut von schattenbaum ist perfekt. damit hab ich meine ersten schritte mit php gemacht
  [Antwort schreiben]

Forum / Bits und Bytes

(c) 1999 - 2026 team-ulm.de - all rights reserved - hosted by ibTEC Team-Ulm

- Presse - Blog - Historie - Partner - Nutzungsbedingungen - Datenschutzerklärung - Jugendschutz -