partizan
11-07-2006, 11:08
Hallo zusammen!
ich möchte aus einem multidimensionalen Array die Einträge 50 bis 100 ausgeben. Dazu muss ich sagen, dass dies meine ersten Gehversuche mit multidimensionalen Arrays sind.
Frage 1 ist ganz einfach: Warum klappt das hier nicht?
for ($i=50; $i<=100; $i++)
{
echo"$array["eintrags_id"][$i]<br>";
}
Frage 2: Was muss ich schreiben, damit's funktioniert?
Schonmal vorab herzlichen Dank!
echo $array['eintrags_id'][$i].'<br>';
zum beispiel
gruß
peter
Glaubst du wirklich, ohne die Struktur deines Arrays zu kennen, könnte dazu jemand was sagen ...?
partizan
11-07-2006, 11:29
ist halt'n bißerle schwierig, so eine Frage zu stellen, ohne vorab Romane schreiben zu müssen (die sich dann niemand durchliest).
OK, also versuch ich's mal:
ich nehme eine DaBa-Afrage vor. Für "suchwort" erhalte ich 1.000 Treffer.
Diese schreibe ich in der Art...
$zaehl=0;
$sql="SELECT * FROM moebel WHERE moebelstueck='$suchwort'";
$res=mysql_query($sql,$conn);
while ($row=mysql_fetch_array($res, MYSQL_ASSOC))
{
$array["eintrags_id"][$zaehl]="$row[id]";
$array["laenge"][$zaehl]="$row[laenge]";
$zaehl++;
}
...in ein Array. Danach sortiere ich das Array, um die längsten Möbelstücke als erstes ausgeben zu können:
array_multisort($array["laenge"], SORT_NUMERIC, SORT_DESC, $array["eintrags_id"]);
Num sollen die gefundenen und sortierten Treffer wieder ausgegeben werden, und zwar ganz gezielt die Treffer 50 bis 100:
for ($i=50; $i<=100; $i++)
{
$sql="SELECT id, moebelstueck, laenge FROM moebel WHERE id='$array["eintrags_id"][$i]'";
$res=mysql_query($sql,$conn);
while ($row=mysql_fetch_array($res, MYSQL_ASSOC))
{
echo"$row[moebelstueck] ist $row[laenge]cm lang.
}
}
besser so?
partizan
11-07-2006, 11:39
Hat sich erledigt!
ich Trottel hab ne Klammer in der zweiten while-Abfrage übersehen! Sorry, tut mir leid - das Problem, welches ich hier aufwerfe stellt sich somit gar nicht! Ich bitte vielmals um Entschuldigung
mäander_
11-07-2006, 12:03
Original geschrieben von partizan
Frage 1 ist ganz einfach: Warum klappt das hier nicht?
for ($i=50; $i<=100; $i++)
{
echo"$array["eintrags_id"][$i]<br>";
}
Es gibt noch eine einfache Antwort.
(1) sind "..." als array-indizes zwar nicht falsch, aber nicht üblich.
(2) hast du im speziellen ".." innerhalb eines "..." strings, das gibt Syntaxfehler (als Auslegung von `'"klappt nicht'"`)
(3) von einer fehlenden klammer sehe ich im Beispiel nichts.
(4) Ich habe noch folgendes gesehen:
$array["eintrags_id"][$zaehl]="$row[id]";
besser wäre hier
$array['eintrags_id'][$zaehl]=$row[id];
oder (je nach Situation)
$array[$eintrags_id][$zaehl]=$row[id];