PHP; Problem mit echo array in einer Schleife

Hallo, ich bin gerade dabei mich in PHP einzuarbeiten. Manche Dinge klappen, andere, vermeintlich einfach leider nicht, irgendwie finde ich für ein (in anderen Augen lächerliches Problem) den Fehler nicht.

Hier der Quelltext:

<?php $i=0;
$zaehler = array(); for ($i=0; $i\<12; $i++) { $zaehler[]= $i; $i++; echo $zaehler[$i]; } print\_r($zaehler); ?\> Das Ergebnis des Browser ist die Ausgabe von print\_r ($zaehler); Array ( [0] =\> 0 [1] =\> 2 [2] =\> 4 [3] =\> 6 [4] =\> 8 [5] =\> 10 ) Kleines Problem, nach einigem Herumprobieren hoffe ich, dass jemand Erbamen mit mir hat und den Fehler sieht. Danke. Klaus

was willst du den machen?

aktuell erstellst du ein array mit 6 Elementen und füllst diese mit dem aktuellen wert von I $i

echo $zaehler[$i]; kann nie was ausgeben, da du den index durch $i++ schon immer um 1 höher setzt.

Gruß

Philipp,
danke, nach Deiner Rückmeldung habe ich den Quelltext wie unten aufgeführt verändert und erhalte das von mir erwartete Ergebnis:
Danach kommt das von mir erwartete Ergebnis:
01234567891011Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 6 [7] => 7 [8] => 8 [9] => 9 [10] => 10 [11] => 11 )

Was will ich eigentlich damit: Also ich bastele gerade an einer Hausarbeit für mein Studium (Wirtschaftsing.), da ist die Aufgabe einen kleinen Onlineshop mit Oracle Datenbankanbindung zu enwerfen.

Ich möchte mir aus der Datenbank die Produkte ausgeben lassen und benötige für das Formular die Bestellung einen Wert (m. E. nach optimal die Produkt_id) Die Produkt_ID aus der Datenbank möchte ich in das Array schreiben und den Zähler benötige ich, um den Index für das Array mit der Produkt_id zu haben.

Mein Quelltext sieht im Augenblick so aus, angezeigt wird alles, nur das mit dem Formular funktioniert noch nicht und ich versuche eine Lösung zusammenzubasteln. Vielleicht hast Du einen Tipp? Gruß Klaus

echo „Objekt-Nr.BezeichnungPreisBeschreibungBild Auswahl“;
?>

<?php $i=0;
$produktid = array(); $zaehler = array(); for ($i=0; $wert=OCIFetchInto($stmt,$row);$i++) { $produktid[]=$row[0] $zaehler[]=$i echo "|$row[0] $row[1] $row[2]"; echo "€"; echo "$row[3]"; echo "Platz für das Bild"; echo ""; } echo ""; OCIFreeStatement($stmt); flush(); OCILogoff($conn); ?\> -------------------------------------- <?php $i=0;
$zaehler = array(); for ($i=0; $i\<12; $i++) { $zaehler[]= $i; echo $zaehler[$i]; } print\_r($zaehler); ?\>

Hallo Klaus,

die function OCIFetchInto ist veraltert. nutze stattdessen oci_fetch_array

http://de.php.net/manual/de/function.oci-fetch-array…

hab hier mal nen kleines beispiel zu deiner aufgabe gemacht…

alles aber ungetestet, hab gerade keine php + oracle version am laufen

Gruß

<?php echo '<form action="auftrag_anlegen.php" method="POST" enctype="text/plain">';
echo "

„;
while($row = oci_fetch_array ($stmt, OCI_BOTH)) {
echo „“;
echo „“.$row[‚PRODUKT_ID‘].“";
echo „“.$row[‚FELD1‘]."";
echo „“.$row[‚PREIS‘]."";
echo „€“;
echo „“.$row[‚FELD3‘]."";
echo „Platz für das Bild“;
echo „“;
}
echo „“;
OCIFreeStatement($stmt);
flush();
OCILogoff($conn);
?>


auftrag_anlegen.php:

<?php foreach($_POST['Warenkorb'] as $produkt) {
echo "Eingecheckte Produktids: " . $produkt." "; } ?\>

Hallo Phillip, danke für Deine Mühe, das mit dem " $row = oci_fetch_array ($stmt, OCI_BOTH " funktioniert beim Auslesen der Daten aus der Datenbank , jedoch ergibt der Code keine Ausgabe in auftrag_anlegen.php, das Array Warenkorb ist vermutlich leer.

$conn = OCILogon(‚proj_xx‘,‚xxxxx‘,‚xxxxx‘);

$sql_string = „select objektid,bezeichnung,preis,Beschreibung from objekte“;
$stmt = OCIParse($conn, $sql_string);
OCIExecute($stmt,OCI_DEFAULT);

echo „Objekt-Nr.BezeichnungPreisBeschreibungBild Auswahl“;
?>

<?php echo ''; while($row = oci\_fetch\_array ($stmt, OCI\_BOTH)) { echo ""; echo "".$row['OBJEKTID'].""; echo "".$row['Bezeichung'].""; echo "".$row['PREIS'].""; echo "€"; echo "".$row['Beschreibung'].""; echo "Platz für das Bild"; echo ""; } echo ""; OCIFreeStatement($stmt); flush(); OCILogoff($conn); ?\> Dann noch der Code von auftrag\_anlegen.php: <?php session_start();
require("header.php"); echo " Sie sind unter dem Namen ".$\_SESSION['vorname']." ".$\_SESSION['nachname']." mit der Berechtigung ".$\_SESSION['berechtigung']." angemeldet! "; echo $\_POST["Warenkorb"]; ?\>

im warenkorb werden nur die angezeigt die auch in der checkbox einen harken bekommen haben.

ein echo dürfte auch nicht klappen da dies ein Array zurückgibt.
zum test nutze print_r($_POST[‚Warenkorb‘]);

Hallo Phillip,

danke für den Tipp, der Haken ist, daß nach Haken setzen und Absenden des Formulars die Weiterleitung auf die Seite auftrag_anlegen.php funktioniert, aber trotz

print_r($_POST[‚Warenkorb‘]);

dort keine Anzeige auftaucht, vermutlich doch nichts in der Variable?

Noch eine kleine Verständnisfrage: Durch …name=‚Warenkorb[]‘… müsste die Variable Warenkorb doch eigentlich ein Array sein, so daß beim Setzen mehrerer Häkchen auch mehrere Werte übergeben werden?

Gruß, Klaus

nimm mal das enctype=„text/plain“ raus das verursacht bei mir probleme vielleicht liegt es daran…

Noch eine kleine Verständnisfrage: Durch …name=‚Warenkorb[]‘…
müsste die Variable Warenkorb doch eigentlich ein Array sein, so daß
beim Setzen mehrerer Häkchen auch mehrere Werte übergeben werden?

jop

Gruß

Ich habe eine Möglichkeit gefunden, die da lautet,

Sie sind unter der Kundennummer „.$_SESSION[‚nutzerid‘].“ „.$_SESSION[‚nachname‘].“ mit der Berechtigung „.$_SESSION[‚berechtigung‘].“ angemeldet!

";

require(„einloggen_datenbank.php“);

if (isset($_POST[‚Warenkorb‘]))
{
echo "

" .print\_r( $\_POST, true ). "

";
}

else
{
$sql_string = „select objektid,bezeichnung,preis,Beschreibung from objekte“;
$stmt = OCIParse($conn, $sql_string);
OCIExecute($stmt,OCI_DEFAULT);

echo „Objekt-Nr.BezeichnungPreisBeschreibungBild Auswahl“;
?>

<?php echo ''; while($row = oci\_fetch\_array ($stmt, OCI\_BOTH)) { echo ""; echo "".$row['OBJEKTID'].""; echo "".$row['bezeichnung'].""; echo "".$row['PREIS'].""; echo "€"; echo "".$row['Beschreibung'].""; echo "Platz für das Bild"; echo ""; } echo ""; OCIFreeStatement($stmt); flush(); OCILogoff($conn); ?\> <?php }
?\>