Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Ausgabe eines Arrays per for-Schleife [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Ausgabe eines Arrays per for-Schleife


 
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!

 
Kropff
11-07-2006, 11:12 
 
echo $array['eintrags_id'][$i].'<br>';
zum beispiel

gruß
peter

 
wahsaga
11-07-2006, 11:12 
 
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];

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:05 Uhr.