Archiv verlassen und diese Seite im Standarddesign anzeigen : INSERT INTO und arrays
Hoi Leude
Ich bin noch ein PHP Newbie und hab da ein kleines Prob.
Ich möchte gerne aus einem Array heraus einträge in meine mySQL Datenbank machen.
der Code sieht so aus
for($i = 0;$i<$length;$i++)
{
$eintrag = "INSERT INTO namen (geschlecht,name,vorname) VALUE ('$geschlecht',name[$i]','$vorname[$i]')";
$eintragen=mysql_query($eintrag);
}
aber leider trägt er nichts in die DB ein.
Danke im voraus
Matthias
15.07.2002, 13:48:11
Wie sieht denn dein Array aus? Und was ist den überhaupt der Fehler?
Aber es fehlt schon mal ein $
...$name[$i]...
HS-78
15.07.2002, 13:48:18
So richtig schlau werde ich aus Deinem Code nicht, aber ich nehme einfach mal an Du hast ein 2dim Array. Also $daten[$i]['vorname'] bzw. $daten[$i]['name'].
Dann kannst Du z.B. so vorgehen:
foreach( $daten as $part ) {
$eintrag = "INSERT INTO namen (geschlecht,name,vorname) VALUE ('$geschlecht','".$part['vorname']."','".$part['name']."')";
$eintragen=mysql_query($eintrag);
}
Ich hoffe mal ich habe Deine Frage richtig verstanden und das hilft Dir weiter.
CU,HS.
hi
vor name[$i] fehlt das $-zeichen, und vor diesem wiederum fehlt das Hochkomma ( ' ) und es heisst "values" und nicht "value"
und du kannst arrays nicht so einfügen, mach es so:
for(....)
{
$eintrag="insert into namen(geschlecht,name,vorname) values('$geschlecht','".$name[$i]."','".$vorname[$i]."')";
...
Danke Matt
Fehler gefunden es heißt
Values und nicht Value
aber noch ne Frage was bringt es die Variablen in dieser Form zu schreiben
' ".$var." '
und wie ist der BB oder HTML TAG in diesem Board für CODE
HS-78
15.07.2002, 14:01:58
Das Tag ist [ code] xxx [/code] ohne das Leerzeichen im erste Code natürlich.
das mit dem ".$var." brauchst du normalerweise nicht, das ist nur bei arrays nötig, weil php ja nicht weiss, ob es die klammern nach dem variablennamen ausgeben soll oder das ein index für das array ist. Im normalfall kommt bei PHP dann ein Fehler raus, deshalb macht man das ausserhalb der anfühungszeichen und hängt es an den string an (dafür der punkt)
Danke Matt ich glaub ich habs gescheckt
CYA
@Matt & Co.
".$var." nur dann, wenn es sich um ein mehrdimensionales Array handelt. Z.B. ".$array[$i][2]." Mit einem eindiemensionalen klappt es 1a innerhalb des Strings, also "$array2[$n]".
Der Schönheit und Lesbarkeit wegen sollte man sich eigentlich schon überlegen alle Variablen aus dem String 'auszuschließen'.
meiner erfahrung (mit zugegebenermaßen etwas in die jahre gekommenen versionen von php) klappt es nicht (wobei wenn man weiss, dass das nicht funktioniert, schaut man ja nicht mehr, ob es inzwischen schon geht), was lesbarkeit betrifft bin ich absolut nicht diener meinung:
print "<input type="".$inputtype."" value="".$defaultvalue."" name="".$defaultname."">";
bzw.
print '<input type="'.$inputtype.'" value="'.$defaultvalue.'" name='".$defaultname.'">';
im zweiten hab ich nen fehler versteckt...
übersichtlich nenne ich das nicht, und da man mit PHP sehr häufig html tags ausgibt, finde ich diese lösung auch nicht schön (auch wenn es anders korrekter wäre...)
verglichen damit:
print "<input type="$inputtype" value="$defaultvalue" name="$defaultname">";
CyberAge
15.07.2002, 17:09:00
und wenn man es sich ganz einfach machen will steigt man kurzzeitig aus dem php-modus aus und schreibt es so:
<?
.
.
?><input type="<?= $inputtype; ?>" value="<?= $defaultvalue; ?>" name="<?= $defaultname; ?>"><?php
.
.
?>
Das ist allerdings noch um einiges mehr schreibarbeit, warum macht man dann nicht einfach das hier?
print<<<end
<input type="$inputtype" value="$defaultvalue" name="$defaultname">
end;
@Matt (das vorletzte): Bei einem Editor mit Syntax-Highlightning macht es sich wirklich gut/besser. Aber das soll jeder selber entscheiden. Schluss damit.
@Matt (das letzte): Warum nicht so? Ich persönlich halte rein gar nichts von dieser String Definition. Zerstört meist die ganze (fast schon mühselige) Einrückung der umgebenden Zeilen. Ist auch ansichtssache. Also was soll's...
So far.
das stimmt allerdings, dass es die einrückung zerstört - kein argument dagegen, ist halt einfach das angenehmste zum schreiben und da ich sonst keine probleme mit einrückung habe (weil die bei mir schon automatisch ist) stört mich das auch nicht sonderlich, weil ich das eben komplett ohne einrückung schreibe und somit ist das auch wieder eine einrückung nur in die andere richtung.
und wenn du html code einfügen würdest, würdest du dich schließlich auch nicht um die PHP einrückung kümmern, oder?
vBulletin® v3.8.3, Copyright ©2000-2013, Jelsoft Enterprises Ltd.