auch checkbox

Bernd Schmidt

Grünschnabel
Hallo

Zur definition:
Ich habe drei Äpfel zu Auswahl:
<input type="checkbox" name="aepfel[]" value="rot">Rot</input><br>
<input type="checkbox" name="aepfel[]"value="gelb">Gelb</input><br>
<input type="checkbox" name="aepfel[]" value="gruen">Gruen</input><br>

<form method="post" action="gemueseladen.php">

So, gemueseladen.php soll jetzt den einen roten angecheckten und den anderen gelben angecheckten in eine Datenbank reinlegen und diese zwei Aepfel sollen dann von hunger.php wieder da rausgeholt werden...

Meine Frage ich habe 3! Dateien 1. HTML als Formular 2. php zur weiterverarbeitung und 3. php zum ergebniss auswerten. Wie funktioniert das nun mit die Arrays

Würde mich sehr freuen wenn mir jemand die benötigten 3? befehle zur Ausführung dieser, für mich schwierigen Aufgabe, geben könnte
 
also,

schritt 1, der user sendet die daten ab.

dein php-script (gemuese...) hat diese daten nun
in dem Globalen Array $_POST (bzw $_REQUEST <- ist quasi $_POST und $_GET zusammen).

d.h. $_POST['aepfel'] ist ein Array mit den gecheckten values rot und gelb.

soweit so gut.

nun muss dieses script das ganze erstmal in die datenbank stecken.

$dbh=mysql_connect ("SQL-SERVER-URL", "USERNAME", "PW");
if (!$dbh) // wenn db verbindung fehlschlägt
{
echo mysql_error();
exit;
}
else
{
$db_select = mysql_select_db("DATENBANKNAME"); //Datenbank auswählen
if (!$db_select)
{
return mysql_error();
}
}


die verbindung zur db steht nun.
dann gehts weiter, einfach per SQL die daten reinstecken,
z.B. mit INSERT usw.
dies soll ja nun für jeden gecheckten wert geschehen, also alle werte die im $_POST['aepfel'] drinstehen.

// array durchlaufen bis "ENDE" ---> wenn der Ausruck in den ( ) FALSE ergibt
while( list(,$value) = each( $_POST['aepfel'] ) )
{
// Daten in DB schreiben
mysql_query( "INSERT INTO \"TABELLE\" (\"FELDNAME\") VALUES ( ".$value.")";
}

so des wärs. ob der eintrag geklappt hat kannst du mit einer Abfragen auf den Rückgabewert des ganzen machen, z.b.
$ok = mysql_query(...);
if( ! $ok )
echo mysql_error();

so soviel zu dem.

zum auslesen aus dem anderen script wieder eine verbindung zur Datenbank aufbauen.

dann daten auslesen, z.b. mit

// Statementhandle erzeugen
$sth = mysql_query( "SELECT * FROM GEMUESEIRGENDWAS");

//Statementhandle auf richtigkeit überprüfen und ggf Fehler ausgeben
if( ! is_resource( $sth ) )
{
echo mysql_error;
}
else
{
//kein ABfragefehler, Datensätze durchlaufen und ausgeben oder was auch immer
while( $row = mysql_fetch_assoc( $sth ) )
{
//$row ist hier ein "Assotiatives" Array, also statt numerisch indexiert benamt
//Der Name jedes Arrayfeldes entspricht hierbei dem jeweiligen Spaltenname der Tabelle ( z.B. $row['gem_farbe']...)
echo $row['gemuese_farbe']."<br>";
}
}


hoffe das hat dir soweit weitergeholfen.
 
Zuletzt bearbeitet:
Hallo Ben Ben

vielen Dank für Deine ausführliche Antwort

Das Auslesen ist ok aber mit dem in die Datenbank schreiben!?
Bei mir sieht die sache so aus:

$db=mysql_connect("bla","bla","bla")
or die ("<b>Zur Zeit kein Connect zum Datenbankserver!</b>");
mysql_select_db("bla")
or die ("<b>Datenbank konnte nicht angesprochen werden</b>");
$anfrage="INSERT INTO blabla VALUES ('";
$anfrage.=$aepfel;
$anfrage.="', '";
$anfrage.=$......;
$anfrage.="', '";
$anfrage.=$.......;
$anfrage.="', '";
$ok = mysql_query($anfrage);
if( ! $ok )
echo mysql_error(Fehler);
mysql_close($db);

In der Datenbank hab ich dann auch !ein! Feld Aepfel, wo ich meine, das dann dort alle angecheckten Aepfel inkl. value-bezeichnung hineingesteckt werden!
Ist dem so, oder bin ich aufm Holzweg In der Datenbank landet nämlich nichts!
Danke für Deine Hilfe...
 
Zurück