ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
1847
1847
EMPFEHLEN
-
Hi!
Bitte macht mir ein Weihnachtsgeschenk und helft mir bitte bitte bitte bei folgendem Problemchen...
Ich möchte Artikelvarianten zu einem Hauptartikel anlegen. Ich kann aussuchen, wieviele Varianten angelegt werden sollen.
$_REQUEST[aid] ist die Artikelnummer, zu der die Varianten gehören sollen.
$_REQUESTregnum] ist die Anzahl der Felder, die generiert werden sollen.
Beim folgenden Beispiel möchte ich 2 Varianten hinzufügen. Die "addvariants_script.php" sieht so aus:PHP-Code:<form action="addvariants_script.php" method="post">
<?
if (isset($_REQUEST[regnum]))
{
for ($i=1; $i<=$_REQUEST[anzahl]; $i++)
{
?>
<input name="aid[]" type="hidden" value="<?=$_REQUEST[aid]?>">
<tr><td colspan="4" class="header">Variante <?=$i?></td></tr>
<tr><td valign="top">Var<?=$i?> DE:</td><td><input name="var_de[]" type="text" size="41" maxlength="50"></td>
<td valign="top">Var<?=$i?> EN:</td><td><input name="var_en[]" type="text" size="41" maxlength="50"></td></tr>
<tr><td valign="top">Var<?=$i?> Nr.:</td><td><input name="var_no[]" type="text" size="41" maxlength="50"></td>
<td valign="top">Var<?=$i?> Preis:</td><td><input name="var_price[]" type="text" size="41" maxlength="50"></td></tr>
<?
}
echo '<tr><td colspan="4"><br><br><input type="Submit" name="sendfiles" value="Varianten speichern"></td></tr>';
}
?>
</form>
Die Ausgabe sieht wie folgt aus:PHP-Code:include 'dbconnect.php';
foreach ($_POST[aid] AS $aid) {
$updatecats=mysql_query("INSERT IGNORE INTO variants SET var_de='$_POST[var_de]', var_en='$_POST[var_en]', var_no='$_POST[var_no]', var_price='$_POST[var_price]', AID='$aid'");
}
print_r($_POST);
In die Datenbank wird in jedes Feld "Array" geschrieben - außer im Feld AID steht "268"PHP-Code:Array ( [aid] => Array ( [0] => 268 [1] => 268 )
[var_de] => Array ( [0] => Variante 5 DE [1] => Variante 6 DE )
[var_en] => Array ( [0] => Variante 5 EN [1] => Variante 6 EN )
[var_no] => Array ( [0] => 555 [1] => 666 )
[var_price] => Array ( [0] => 39,90 [1] => 68,90 )
[sendfiles] => Varianten speichern )
Ich weiß, das ist eine dumme Frage, aber um ehrlich zu sein, hab ich mich vor diesen Arrays immer so gut wie möglich gedrückt - und jetzt bekomm ich die Rechnung dafür
Wär supertoll, wenn jemand so nett wäre und mir meinen Denkfehler bei dieser Sache erklären könnte...
Danke euch schonmal im voraus!
LG, TinaXGeändert von TinaX (16.12.04 um 13:57 Uhr)
-
Hi!
Das Problem ist das folgende: Du versuchst einen Array in eine Datenbank zu speichern. Ein MySQL-Query ist aber ein String - du kannst aber einen Array nicht als String darstellen, indem du sagst "echo $meinArray;" (oder eben einen Array in einen String einbindest).
Zitat von TinaX
Du musst dein Array also in einen String umwandeln. Ich mache das immer so, dass ich die einzelnen Elemente urlencode und dann mit einem Piping-Symbol zusammen-"klebe". Aus einem Array wird dann z. B. dieser String:
MamphilPHP-Code:$meinArray = array('ein Text mit Lücke', 155, 'xyz');
// wird zu
$meinString = 'ein+Text+mit+L%FCcke|155|xyz';
Lösungsvorschlag: Wenn es mit dem mysql_query(...); Probleme gibt, pack ein die(mysql_error()); dahinter und guck dir den MySQL-Fehler an!
Artikel & Tutorial: Wie realisiere ich eine Umkreissuche nach Postleitzahlen mit der kostenlosen OpenGeoDB in PHP?
-
Hi!
Also danke schonmal für deine Erklärung.
Leider hilft mir das im Augenblick nicht wirklich weiter...
Also ich bekomme ein Array übergeben, das weitere Array´s enthält.
Ich denke mal, das die Übergabe vom Formular stimmt.
Ich dachte eigentlich, daß ich dieses Überdrüber-Array in einer foreach-Schleife definieren kann und dann die "Unter-Arrays" über diese Variable ansprechen kann.
Also praktisch:
Ich weiß, daß das jetzt ein wenig dreist rüberkommt, aber könntest du deine Erläuterung auf mein Script umlegen? Das wär echt supernett - ich glaub ich seh den Wald vor lauter Bäumen nicht mehr...PHP-Code:foreach ($_POST[array] AS $array) {
mysql_query("insert into table set feld1=$array[var_de], feld2=$array[var_en]... usw");
}
Danke, TinaX
-
Oops, ich glaub, ich habs...
So funktionierts! Ist das richtig so?PHP-Code:$i=0;
foreach ($_POST[aid] AS $aid) {
$var_de=$_POST[var_de];
$var_en=$_POST[var_en];
$var_no=$_POST[var_no];
$var_price=$_POST[var_price];
mysql_query("INSERT INTO variants SET var_de='$var_de[$i]', var_en='$var_en[$i]', var_no='$var_no[$i]', var_price='$var_price[$i]', AID='$aid'");
$i++;
}
Danke, TinaX
Ähnliche Themen
-
Mehrdimensionales Array - zu - Eindimensionales Array (Mehrheit gewinnt)?
Von Blaafer im Forum PHPAntworten: 2Letzter Beitrag: 25.12.08, 07:07 -
mehrdimensionales array
Von Nadscha im Forum PHPAntworten: 12Letzter Beitrag: 17.07.07, 17:13 -
Mehrdimensionales Array zum einfachen Array imploden
Von Papenburger im Forum PHPAntworten: 5Letzter Beitrag: 30.04.07, 15:03 -
Mehrdimensionales Array ...
Von LadySunshine im Forum Visual Basic 6.0Antworten: 4Letzter Beitrag: 23.06.04, 11:28 -
mehrdimensionales array
Von kimbo im Forum PHPAntworten: 2Letzter Beitrag: 26.10.03, 09:55





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren