mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Di 16.04.2024 18:07 Benutzername: Passwort: Auto-Login

Thema: Problem mit PHP, Arrays und MySQL vom 19.03.2008


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Problem mit PHP, Arrays und MySQL
Seite: Zurück  1, 2, 3, 4  Weiter
Autor Nachricht
.MacSven
Threadersteller

Dabei seit: 20.03.2007
Ort: -
Alter: 37
Geschlecht: Männlich
Verfasst Fr 11.04.2008 10:09
Titel

Antworten mit Zitat Zum Seitenanfang

Also ich weiß echt nicht mehr weiter...
Mit folgendem Script werden die Daten der Mitreisenden mit der E-Mail übertragen:
Code:
// Daten der Mitreisenden
for($i=1;$i<=sizeof($mf_vorname);$i++) {
   if($mf_vorname[$i] == "") { break; }
   $DATA["Mitreisender".$i." Vorname"]=$mf_vorname[$i];
   $DATA["Mitreisender".$i." Nachname"]=$mf_nachname[$i];
   $DATA["Mitreisender".$i." Perso-Nr"]=$mf_personr[$i];
   $DATA["Mitreisender".$i." Geburtsdatum"]=$mf_geburtsdatum[$i];
   $DATA["Mitreisender".$i." Strasse_Nr"]=$mf_strasse[$i];
   $DATA["Mitreisender".$i." PLZ_Ort"]=$mf_plz[$i];
   $DATA["Mitreisender".$i." Telefon"]=$mf_telefon[$i];            
   $DATA["Mitreisender".$i." Mail"]=$mf_mail[$i];   
   $DATA["Mitreisender".$i." Reiseversicherung"]=$mf_reiseversicherung[$i];            
}


Und hier mein Script um das Ganze in die Datenbank einzutragen:
Code:
//Eintrag in Datenbank

$db = mysql_connect("xxxxxx", "xxxxxxxx", "xxxxxxx");
mysql_select_db("xxxxxxxxxx", $db);
$sql = "SELECT * FROM buchung_fun";
$result = mysql_query($sql);
$felder = mysql_num_fields($result);
$datensaetze = mysql_num_rows($result);

if (isset($_POST['Submit'])) {
$ip = $_SERVER['REMOTE_ADDR'];
$datum = strftime("%d.%m.%Y");
$time = strftime("%H:%M:%S");    
      
      $buchungen_fun = "INSERT INTO buchung_fun (ip, datum, time, anrede, vorname, name, geburtsdatum, strasse, plz, ort, land, mobil, telefon, fax, mail, http, pax, termin, reiseziel, info )
VALUES ('$ip', '$datum', '$time', '$_POST[geschlecht]', '$_POST[ha_vorname]', '$_POST[ha_nachname]', '$_POST[ha_geburtsdatum]', '$_POST[ha_strasse]', '$_POST[ha_plz]', '$_POST[ha_ort]', '$_POST[ha_land]', '$_POST[ha_mobil]', '$_POST[ha_vorwahl] $_POST[ha_telefon]', '$_POST[ha_fax]', '$_POST[ha_mail]', '$_POST[ha_www]', '$_POST[anz_personen]', '$_POST[termin]', '$_POST[reiseziel]', '$_POST[informationen]')";

for($i=1;$i<=sizeof($mf_vorname);$i++) {
if($mf_vorname[$i] != "") {
"INSERT INTO buchung_fun (ip, datum, time, vorname, name, geburtsdatum)
VALUES ('$ip', '$datum', '$time', '$_POST[mf_vorname][i]', '$_POST[mf_nachname][i]', '$_POST[mf_geburtsdatum][i]')";
}
}

  if (mysql_query($buchungen_fun)) { echo "Eintrag erfolgreich."; }
        else { echo "Eintrag fehlgeschlagen"; }   
     }

Der erste INSERT INTO Befehl funktioniert super, aber es werden einfach keine Mitereisenden eingetragen! Ich hab schon so viele Möglichkeiten ausprobiert... wer kann mir helfen?
  View user's profile Private Nachricht senden
caZpa
Account gelöscht


Ort: -

Verfasst Fr 11.04.2008 10:29
Titel

Antworten mit Zitat Zum Seitenanfang

Ich glaube Mysql kann keine $_POST Variablen verarbeiten
Versuch mal mit normalen Variablen.. $var=$_POST[... und dann INSERT
 
Anzeige
Anzeige
.MacSven
Threadersteller

Dabei seit: 20.03.2007
Ort: -
Alter: 37
Geschlecht: Männlich
Verfasst Fr 11.04.2008 10:45
Titel

Antworten mit Zitat Zum Seitenanfang

Muss ja eigentlich... wie gesagt, beim ersten INSERT INTO Befehl gehts, nur beim 2. nicht.
Ich habs aber trotzdem mal nach deinem Vorschlag getestet und es geht leider auch nicht. Ich bekomme aber auch keinen MySQL Fehler...
Ich glaube mitlerweile, dass es nur noch was mit der Abfrage zu tun hat, ob die Felder der Mitreisenden ausgefüllt sind. Das scheint MySQL nicht zu verstehen. Ich könnte mir vorstellen, dass es also an den ersten beiden Zeilen folgenden Codes liegt:
Code:
for($i=1;$i<=sizeof($mf_vorname);$i++) {
if($mf_vorname[$i] != "") {
"INSERT INTO buchung_fun (ip, datum, time, vorname, name, geburtsdatum)
VALUES ('$ip', '$datum', '$time', '$_POST[mf_vorname][i]', '$_POST[mf_nachname][i]', '$_POST[mf_geburtsdatum][i]')";
}
}
  View user's profile Private Nachricht senden
caZpa
Account gelöscht


Ort: -

Verfasst Fr 11.04.2008 10:48
Titel

Antworten mit Zitat Zum Seitenanfang

tippfehler oder müsste in das 2d array nicht $i rein?
 
.MacSven
Threadersteller

Dabei seit: 20.03.2007
Ort: -
Alter: 37
Geschlecht: Männlich
Verfasst Fr 11.04.2008 10:53
Titel

Antworten mit Zitat Zum Seitenanfang

Ich weiß nicht ob das an der Stelle da reingehört. Ich habs aber getest und geht auch nicht.
ich habs auch schon mit ['mf_vorname']['i'] versucht, auch das geht nicht... also da hab ich echt schon viele Varianten probiert.

Mir fällt da gerade noch was auf:
Code:
$_POST[mf_vorname][i]

wäre doch eine Abfrage eines multidimensionalen Arrays, richtig? Erzeuge ich denn mit
Code:
for($i=31;$i<=50;$i++) {
   print("<tr".$tr_style.">
                      <td align=\"right\">".$i.".</td>
                      <td><input class=\"input\" name=\"mf_vorname[".$i."]\" type=\"text\"  size=\"12\"/></td>

überhaupt ein solches Array? Ich glaube nämlich nicht! Vielleicht liegt auch da das Problem, dann kann ich ja viel rumprobieren....

Was meint ihr?


Zuletzt bearbeitet von .MacSven am Fr 11.04.2008 11:13, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
caZpa
Account gelöscht


Ort: -

Verfasst Fr 11.04.2008 11:50
Titel

Antworten mit Zitat Zum Seitenanfang

.MacSven hat geschrieben:
Ich weiß nicht ob das an der Stelle da reingehört. Ich habs aber getest und geht auch nicht.
ich habs auch schon mit ['mf_vorname']['i'] versucht, auch das geht nicht... also da hab ich echt schon viele Varianten probiert.

Mir fällt da gerade noch was auf:
Code:
$_POST[mf_vorname][i]

wäre doch eine Abfrage eines multidimensionalen Arrays, richtig?
also wenn dann
Code:
$_POST['mf_vorname'][$i]


.MacSven hat geschrieben:

Erzeuge ich denn mit
Code:
for($i=31;$i<=50;$i++) {
   print("<tr".$tr_style.">
                      <td align=\"right\">".$i.".</td>
                      <td><input class=\"input\" name=\"mf_vorname[".$i."]\" type=\"text\"  size=\"12\"/></td>

überhaupt ein solches Array? Ich glaube nämlich nicht! Vielleicht liegt auch da das Problem, dann kann ich ja viel rumprobieren....

Was meint ihr?

eigentlich schon richtig... lass dir doch die arrays ausgeben mit print_r() dann weißt du es


Zuletzt bearbeitet von am Fr 11.04.2008 12:21, insgesamt 1-mal bearbeitet
 
.MacSven
Threadersteller

Dabei seit: 20.03.2007
Ort: -
Alter: 37
Geschlecht: Männlich
Verfasst Fr 11.04.2008 15:32
Titel

Antworten mit Zitat Zum Seitenanfang

So, ich habe es geschafft! Ich bedanke mich bei allen für eure Hilfe und schließe das Thema nun hiermit ab!
Für diejenigen, die das selbe Problem auch mal haben sollten und diesen Thread durchsuchen, poste ich nun noch die Lösung fürs Problem:
Code:
$buchungen_fun = "INSERT INTO buchung_fun (ip, datum, time, anrede, vorname, name, geburtsdatum, strasse, plz, ort, land, mobil, telefon, fax, mail, http, pax, termin, reiseziel, info )
VALUES ('$ip', '$datum', '$time', '$_POST[geschlecht]', '$_POST[ha_vorname]', '$_POST[ha_nachname]', '$_POST[ha_geburtsdatum]', '$_POST[ha_strasse]', '$_POST[ha_plz]', '$_POST[ha_ort]', '$_POST[ha_land]', '$_POST[ha_mobil]', '$_POST[ha_vorwahl] $_POST[ha_telefon]', '$_POST[ha_fax]', '$_POST[ha_mail]', '$_POST[ha_www]', '$_POST[anz_personen]', '$_POST[termin]', '$_POST[reiseziel]', '$_POST[informationen]')";

for($i=1;$i<=sizeof($mf_vorname);$i++) {
if($mf_vorname[$i] == "") { break; }
$mf_buchungen_fun[$i] = "INSERT INTO buchung_fun (ip, datum, time, vorname, name, geburtsdatum )
VALUES ('$ip', '$datum', '$time', '$mf_vorname[$i]', '$mf_nachname[$i]', '$mf_geburtsdatum[$i]')"; 
}

  if (mysql_query($buchungen_fun)) { echo "Eintrag erfolgreich."; }
        else { echo "Eintrag fehlgeschlagen"; }   
        
for($i=1;$i<=sizeof($mf_vorname);$i++) {
  (mysql_query($mf_buchungen_fun[$i]));   
     }
     }
  View user's profile Private Nachricht senden
Pixelpole

Dabei seit: 25.10.2004
Ort: Trier
Alter: 37
Geschlecht: Männlich
Verfasst Fr 11.04.2008 15:33
Titel

Antworten mit Zitat Zum Seitenanfang

findest du den code nicht nen *tick* zu unübersichtlich *Huch*

du könntest dir beispielsweise den insert-string mit sowas zusammenbauen:

Code:

function createInsert($table, array $data) {
   $fields = array_keys($data);
   $values = array_values($data);
   
   return 'INSERT INTO `'.$table.'` (`'.implode('`,`',$fields).'`) VALUES ('.implode(',',$values).')';
}

$data = array();
$data['field_1'] = "'test'";
$data['field_2'] = 3;

$sql = createInsert('test_table',$data);

echo $sql;


Zuletzt bearbeitet von Pixelpole am Fr 11.04.2008 15:41, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
 
Ähnliche Themen Actionscript / PHP: Arrays in Arrays bei Übergabe mit Post?
Problem bei der Übermittlung vor Artikel-Arrays
[php]: problem mit arrays die zusammen sortiert werden solle
mysql-php Problem
mysql-problem
[php] mysql-problem?
Neues Thema eröffnen   Neue Antwort erstellen Seite: Zurück  1, 2, 3, 4  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.