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]](http://kampfkeks.bplaced.net/tuforum2.JPG)
(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
|
|