hi all,
standard-abfrage per mysql_fetch_array ist ja folgende struktur:
$abfrage = „SELECT * from $tabelle WHERE … Limit 1“;
$result = mysql_query($abfrage,$conn);
while ($row1 = mysql_fetch_array ($result)) …
jetzt bekomme ich über die while-schleife alle zurückgelieferten zeilen ins html-dokument…aber wie geht das bitte wenn ich NUR auf z. b. zeile 3 zugreifen will? ich will das aber nicht im sql-statement filtern mit Limit 2,1 sondern alle anderen zeilen müssen in $result bleiben da ich diese zeilen woanders auf der seite brauche… mit mysql_fetch_array ($result[2]) bekomm ich nur fehler…
danke für hilfe
meth
Anonym
23. November 2001 um 13:09
2
hi,
also ich probier dir mal zu helfen, ich werde jedoch den nicht fetch_array sonder fetch_row nehmen. bin mir zu dem nicht sicher ob ich dich richtig verstanden hab, aber ich probiers mal
/* Account informations */
$username="";
$password="";
$database="";
$host=„localhost“ ;
/* Database connect */
mysql_connect($host,$username,$password);
@mysql_select_db ($database) or die( „Unable to select database“);
$abfrage = „SELECT * from $tabelle WHERE … Limit 1“;
if ($result = mysql_query($abfrage,))
{
$i=1;
while ($row = mysql_fetch_row($result))
{
$ergebnis_$i[0] = $row[0];
$ergebnis_$i[1] = $row[2];
$ergebnis_$i[2] = $row[3];
i++;
}
}
// Ausgabe 3 Zeile
echo „$ergebnis_3[0], $ergebnis_3[1], $ergebnis_3[2]“;
// Ausgabe 1 Zeile
ecoh „$ergebnis_1[0], $ergebnis_1[1], $ergebnis_1[2]“;
hab die ganze sache nicht ausprobiert, aber ich denk so sollte es gehen. Ist das, dass was du gesucht hast ?
mfg
Christian
gute idee, habs jetzt folgendermaßen angepasst für meine bedürfnisse:
if ($result = mysql_query($abfrage,$conn))
{
$i=1;
while ($row = mysql_fetch_row($result))
{
$ergebnis_$i[0] = $row[0]; #name
$ergebnis_$i[1] = $row[1]; #bild
$ergebnis_$i[2] = $row[2]; #link
$ergebnis_$i[3] = $row[3]; #start
$ergebnis_$i[4] = $row[4]; #aufrufe
$ergebnis_$i[5] = $row[5]; #aufrufe1
$ergebnis_$i[6] = $row[6]; #klicks
$ergebnis_$i[7] = $row[7]; #maxviews
#$aufrufe = $aufrufe+1;
#$aufrufe1 = $aufrufe1+1;
$i++;
}
}
bekomm aber einen parse error für folgende zeile:
$ergebnis_$i[0] = $row[0]; #name
…
syntax scheint aber korrekt!
hi
weiss jetzt wo der fehler liegt:
$ergebnis_$i
es funzt nicht das $i mit zahlen zu füllen! habs mit $ergebnis_.$i versucht, dann bekomm ich aber folgendes#
Cannot use a scalar value as an array
wie könnte man denn die variable $i sauber an $ergebnis dranhängen? wenn ich es statisch vergebe $ergebnis_1… dann funzt es
hi chris,
nochmal kurz, der hängt das nicht dran:
$t = 0;
while ($row = mysql_fetch_row($result)) {
echo $t;
$ergebnis_$t[0] = $row[0]; #name
dieser part:
…ergebnis_$t[0]…
da wird das $t nicht drangehange, es gibt einen fehler mit dieser „Cannot use a scalar value as an array“ meldung…was tun?
Anonym
23. November 2001 um 15:06
6
hi,
ned so schnell ich bin schon am suchen, aber mir fällts grad nicht ein. ich such mal weiter. nur nicht das du meinst ich hab dich vergessen
cu
was für ein netter leidensgenosse!!! hast was gut bei mir man! brauchst du was für photoshop, javascript, flash? )))
Anonym
23. November 2001 um 15:18
8
nönö ist doch ehrensache
ausserdem konnt ich dir ja noch nicht helfen hab jetzt mal die frage im http://www.php4-forum.de gestellt, dort bekommt man im Normal fall recht schnell eine antwort
ich selber such mal weiter, man hat ja sonst nix zu tun
ist nur zu empfehlen
Anonym
23. November 2001 um 15:26
9
ok ich habs … so gehts
if ($result = mysql\_query($abfrage))
{
$i=1;
while ($row = mysql\_fetch\_row($result))
{
$ergebnis[$i][0] = $row[0];
$ergebnis[$i][1] = $row[2];
$ergebnis[$i][2] = $row[3];
$i++;
}
echo $ergebnis[1][1];
}
nennt sich 2 dimensionales Array
ich dödel hab das schon mal wo gebraucht und es ist mir erst jetzt eingefallen … *g* stand wohl ein bisschen auf der Leitung.
oha, was macht ihr da … schau dir mal mysql_result() an, damit kannst du direkt auf eine ergebniszeile springen…
www.php.net/mysql_result
genial, es funzt schonmal, da hätte ich aber noch eine kleine feine sache!
nachdem mein array nun sauber durchlaufen und gefüllt wurde, echoe ich es und es kommt auch sauber raus:
echo $ergebnis[0][1];
liefert mein ergebnis.
aber wenn ich es so echoe (was früher, im eindimensionalen Array funzte):
echo „test: $ergebnis[0][1]“;
dann bekomm ich als endergebnis nur: test: Array[1]
wenn ich es wieder so mache: (einige ergebnissrelevante if-abfragen später):
echo $ergebnis[0][1];
bekomme ich wieder mein ergebnis! kann es sein dass man 2dimensionale arrays wie du sagtest, nicht einfach innerhalb strings weiterverwenden kann?
(
Anonym
23. November 2001 um 15:41
12
och verdirb uns doch nicht den ganze spass … jetzt haben wir solange gebastelt
Anonym
23. November 2001 um 15:50
13
hi,
das problem kannst du wie Folgt lösen:
echo „Test „.$ergebnis[0][1].“ und weiter gehts mit HTML“;
heut is wirklich nicht gut ich vergesse immer die hälft wird wohl zeit fürs Weekend
cu
dann mach es doch einfach so:
echo "test: ".$ergebnis[0][1];
das klappt bestimmt.
da war ich wohl ein bisschen zu langsam, sorry!
hab ich ja klar, aber ich raffs nicht, wieso gehts weiter oben, und unten nicht???
Anonym
23. November 2001 um 16:03
17
hm
2 dimensionale Arrays dürfen nicht zwischen den „“ zeichen stehen.
also nicht wie du echo „test: $ergebnis[0][0] weiter gehts“
sondern eben echo "test: ".$ergebnis[0][0].„weiter gehts“;
das wolltest doch du wissen oder ?
nene is ja nett, so hab ichs ja, aber ich würd gern wissen, warum denn dass nicht so geht?
Anonym
23. November 2001 um 16:12
19
boa, bin i überfragt *g*.
ich vermute weil er annimmt das nach dem ersten [] das array fertig ist, aber warum und wiso, da bin ich voll überfragt.
jeppp, und WIESO dürfen das zweidimensionale Arrays nicht??? ist das dem php-kernel zuviel???