php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.06.2006, 05:43  
Neuer Benutzer
 
Registriert seit: 30.06.2006
Beiträge: 12
PermanetMarker
Standard Datensätze aus einer dynamisch erzeugten Tabelle einfügen?!

guten morgen erstmal!


die situation: ich möchte aus einer dynamisch erzeugten tabelle über ein formular alle datensätze dieser tabelle in eine datenbanktabelle übertragen.
das funktioniert auch wunder bar - für genau einen datensatz!
wie kann ich es erreichen (schleife oder sonst wie) dass ALLE datensätze in die datenbank übertragen werden?
ich habe es schon mit einer schleife probiert - aber ich komme einfach nicht weiter.
hier der quelltext - ohne schleife:


PHP-Code:
function GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch (
$theType) {
    case 
"text":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;    
    case 
"long":
    case 
"int":
      
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case 
"double":
      
$theValue = ($theValue != "") ? "'" doubleval($theValue) . "'" "NULL";
      break;
    case 
"date":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;
    case 
"defined":
      
$theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
      break;
  }
  return 
$theValue;
}

$editFormAction $_SERVER['PHP_SELF'];
if (isset(
$_SERVER['QUERY_STRING'])) {
  
$editFormAction .= "?" htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset(
$_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  
$insertSQL sprintf("INSERT INTO bestellungen (BENUTZERNAME, 
ARTNR, artikel_beschreibungk, artikel_groesse, artikel_anzahl, 
anmerkung, versandart, bestaetigung, alt_lief_ANREDE, alt_lief_VNAME,
 alt_lief_NNAME, alt_lief_FINAME, alt_lief_STR, alt_lief_PLZ, alt_lief_ORT)
 VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s,
 %s)"
,
                       
GetSQLValueString($_POST['BENUTZERNAME'], "text"),
                       
GetSQLValueString($_POST['ARTNR'], "int"),
                       
GetSQLValueString($_POST['beschreibung'], "text"),
                       
GetSQLValueString($_POST['groesse'], "text"),
                       
GetSQLValueString($_POST['anzahl'], "int"),
                       
GetSQLValueString($_POST['anmerkung'], "text"),
                       
GetSQLValueString($_POST['versandart'], "text"),
                       
GetSQLValueString($_POST['bestaetigung'], "text"),
                       
GetSQLValueString($_POST['radiobutton'], "text"),
                       
GetSQLValueString($_POST['altliefVNAME'], "text"),
                       
GetSQLValueString($_POST['altliefNNAME'], "text"),
                       
GetSQLValueString($_POST['altliefFINAME'], "text"),
                       
GetSQLValueString($_POST['altliefSTR'], "text"),
                       
GetSQLValueString($_POST['altliefPLZ'], "text"),
                       
GetSQLValueString($_POST['altliefORT'], "text"));

  
mysql_select_db($database_test01$test01);
  
$Result1 mysql_query($insertSQL$test01) or die(mysql_error());



  
mysql_query("DELETE FROM warenkorb WHERE BENUTZERNAME='$MM_Username'");


wäre super wenn euch was dazu einfällt!

Sebastian
PermanetMarker ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 30.06.2006, 08:23  
Erfahrener Benutzer
 
Registriert seit: 23.08.2007
Beiträge: 1.510
M3g4Star befindet sich auf einem aufstrebenden Ast
Standard Re: Datensätze aus einer dynamisch erzeugten Tabelle einfüge

Zitat:
Zitat von PermanetMarker
die situation: ich möchte aus einer dynamisch erzeugten tabelle über ein formular alle datensätze dieser tabelle in eine datenbanktabelle übertragen.
Servus.

Also zu deinem Problem .. Was meinst du mit DIESER Tabelle ?? Ich seh hier keine ...

Mehrere einträge soltest du nicht mit einer Schleife machen in der du mehrere Querys an deine DB schickst sondern vielmehr indem du dir deinen SQL String zusammenbaust .. udn das wie du schon erwähnt hast in einer Schleife !!!

WEIL: Du kanns tauch mehrere DS in einem Query mitschicken !!
M3g4Star ist offline  
Alt 30.06.2006, 08:40  
Neuer Benutzer
 
Registriert seit: 30.06.2006
Beiträge: 12
PermanetMarker
Standard

sorry,
hier die tabelle dazu:
PHP-Code:
<tr>
          <td class="Stil7"><input name="ARTNR" type="hidden" id="ARTNR" value="<?php echo $row_artikelfuerbestellung['ARTNR']; ?>" />
            <?php echo $row_artikelfuerbestellung['ARTNR']; ?></td>
          <td class="Stil7"><input name="beschreibung" type="hidden" id="beschreibung" value="<?php echo $row_artikelfuerbestellung['artikel_beschreibungk']; ?>" />
            <?php echo $row_artikelfuerbestellung['artikel_beschreibungk']; ?></td>
          <td class="Stil7"><input name="farbe" type="hidden" id="farbe" value="<?php echo $row_artikelfuerbestellung['artikel_farbe']; ?>" />
            <?php echo $row_artikelfuerbestellung['artikel_farbe']; ?></td>
          <td class="Stil7"><input name="groesse" type="hidden" id="groesse" value="<?php echo $row_artikelfuerbestellung['artikel_groesse']; ?>" />
            <?php echo $row_artikelfuerbestellung['artikel_groesse']; ?></td>
          <td class="Stil7"><input name="anzahl" type="hidden" id="anzahl" value="<?php echo $row_artikelfuerbestellung['artikel_anzahl']; ?>" />
            <?php echo $row_artikelfuerbestellung['artikel_anzahl']; ?></td>
          <td class="Stil7"><input name="mengeneinheit" type="hidden" id="mengeneinheit" value="<?php echo $row_artikelfuerbestellung['artikel_mengeneinheit']; ?>" />
            <?php echo $row_artikelfuerbestellung['artikel_mengeneinheit']; ?></td>
          <td class="Stil7"><div align="right"><?php echo $row_artikelfuerbestellung['artikel_preis_gesamt']; ?> EUR </div></td>
        </tr>
also komme ich um eine wohl schleifen nicht rum?
nur gut das ich das thema wenns so umfangreich ist absolut nicht kann...
PermanetMarker ist offline  
Alt 30.06.2006, 08:53  
Erfahrener Benutzer
 
Registriert seit: 23.08.2007
Beiträge: 1.510
M3g4Star befindet sich auf einem aufstrebenden Ast
Standard

Ok .. Du willst Diese Werte in eine DB eintragen ?!?!?

Dürfte doch kein Problem sein oder ??
INSERT Syntax hast verstanden ???
Kommt diese Zeile nur eimal vor oder gibt's diese mehrmals ???
Wenn Sie mehrmals vorkommt ist es BLÖDSINN zu versuchen alles einzutragen da ALLE Zeilen die gleichen Bezeichner haben und somit nur ein DS genommen wird. Du müsstest wenn diese Zeile mehrmals vorkommt auch andere Namen vergeben !!!


Wenn du diese EINE Zeile in eine DB eintragen willst reicht ein einfaches INSERT !
M3g4Star ist offline  
Alt 30.06.2006, 09:04  
Neuer Benutzer
 
Registriert seit: 30.06.2006
Beiträge: 12
PermanetMarker
Standard

hast verstanden??? wie bist du denn drauf? über die Syntax von INSERT bin ich schon hinaus!
gebrauchst du das forum um deine agressionen abzulassen?
falls das so ist geb ich dir mal einen tip - sport!

vielleicht können wir uns ja jetzt mal vernünstig unterhalten;
also - insert - kann ich!
ist aber etwas umständlich - wenn ich es richtig überblicke!
schließlich kann diese tabelle beliebig viele DS enthalten die übertragen werden müssen - und ich kann doch nicht für jeden wert eine eigene variable festlegen wenn ich nicht weiß wie viele DS aktuell zu übertragen sind - oder sehe ich da jetzt was falsch?
PermanetMarker ist offline  
Alt 30.06.2006, 09:16  
Erfahrener Benutzer
 
Registriert seit: 23.08.2007
Beiträge: 1.510
M3g4Star befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von PermanetMarker
hast verstanden??? wie bist du denn drauf? über die Syntax von INSERT bin ich schon hinaus!
gebrauchst du das forum um deine agressionen abzulassen?
falls das so ist geb ich dir mal einen tip - sport!

vielleicht können wir uns ja jetzt mal vernünstig unterhalten;
also - insert - kann ich!
ist aber etwas umständlich - wenn ich es richtig überblicke!
schließlich kann diese tabelle beliebig viele DS enthalten die übertragen werden müssen - und ich kann doch nicht für jeden wert eine eigene variable festlegen wenn ich nicht weiß wie viele DS aktuell zu übertragen sind - oder sehe ich da jetzt was falsch?


OK such dir jemand anderen zum helfen aber was soll das denn ?
Ich habe dir Fragen gestellt um herauszufinden worums dir geht und auf welchem Level du dich bewegst !?

Ok einen TIP noch ... Wenn du eine Tabelle hast die zusammengebaut wird musst du für jede Zeile die Formulardatennamen EXTRA benennen. Am besten mit einem zähler (Prä- oder Postfix). Je nach belieben.
Dann kannst du die Anzahl Auslesen oder mit übergeben. (Je nach belieben)


deine Variabeln würden dann z.B. so ausschaun:

PHP-Code:
echo $_POST['ARTNR'.$i]; // oder auch
echo $_GET['ARTNR'.$i]; 
das kannst mit ner Schleife durchlaufen und dir dein INSERT query zusammen bauen ...

Grüße und weiterhin viel Erfolg !
M3g4Star ist offline  
Alt 30.06.2006, 09:20  
Erfahrener Benutzer
 
Registriert seit: 03.04.2006
Beiträge: 222
&lt;Daniel&gt;
Standard

Ich denke du bist leicht aggressiv rübergekommen weil du soviele '!' und '?' (Ausrufe- und Fragezeichen) verwendest ^^
@PermanetMarker
Der meint das nicht aggressiv, bei ihm ist das normal, du verstehst ihn falsch ^^
Zum Topic habe ich leider nichts zu sagen :/

Gruß
&lt;Daniel&gt; ist offline  
Alt 30.06.2006, 09:29  
Neuer Benutzer
 
Registriert seit: 30.06.2006
Beiträge: 12
PermanetMarker
Standard

fragen - ok! aber gleich "???" das kann man auch leicht falsch verstehen - meinst du nicht? wenn ich es falsch verstanden habe tuts mir leid!

eine frage bevor ich da dran sitze und es ins leere läuft:

sehe ich das richtig dass wenn ich diese variablen so vergebe es folgerndermaßen aussehen würde in der tabelle:
$_POST['ARTNR'.$i] umgewandelt quasi

datensatz 1 $_POST['ARTNR'.$1]$_POST['beschreibung'.$1]$_POST['groesse'.$1]...
datensatz 2 $_POST['ARTNR'.$2]$_POST['beschreibung'.$2]$_POST['groesse'.$2]...
datensatz x $_POST['ARTNR'.$x]$_POST['beschreibung'.$x]$_POST['groesse'.$x]...

wobei das bedeuten würde dass eine variable beim durchlauf der schleife nach einander den entsprechenden wert annimmt?
und das funktioniert?
PermanetMarker ist offline  
Alt 30.06.2006, 09:42  
Erfahrener Benutzer
 
Registriert seit: 23.08.2007
Beiträge: 1.510
M3g4Star befindet sich auf einem aufstrebenden Ast
Standard



Ok ... Also du hast mich falshc verstanden und das ich Satzzeichen verwende heißt noch lang nicht das ich's in irgendeiner Weise bös mein.

Zu deiner Frage ..

NEIN .. So hast das nicht richtig verstanden.

In deiner Tabelle bekommt jede Zeile eine Zeilennummer und somit jedes Formularelement einen eingenen Namen.

Es gibt dann nicht mehr "name='ARTNR'" sondern nur noch:

"name='ARTNR1'"
"name='ARTNR2'"
"name='ARTNR3'"

Und genauso müsstest du das dann auf der anderen Seite auslesen.

und das würdest halt über den weg machen :

PHP-Code:
<?php
$_POST
['ARTNR'.$i];
?>
Wobei es sich bei $i um die Laufvariable der for-Schleife handeln würde. So könntest du dir dann mittels
PHP-Code:
<?php
 $query_value
.= "("$_POST['ARTNR'.$i].",".$_POST['beschreibung'.$i].",".$_POST['groesse'.$i].",... )," ;
?>
deine Values auffüllen.

BEACHTE .. das Komma am Ende musst du nach dem letzten DS löschen .. mach das evtl direkt nach der for-Schleife mittels substr()
M3g4Star ist offline  
Alt 30.06.2006, 09:55  
Neuer Benutzer
 
Registriert seit: 30.06.2006
Beiträge: 12
PermanetMarker
Standard

och nööö... das dauert doch wieder 2 tage bis das evtl läuft!
na ok! ich probiers mal - klingt ja erstmal ganz... logisch
wobei ich bei $query_value. den "." nicht verstehe und die " " " vor der bzw nach der klammer.

danke erstmal - ich poste dann mal den anderen quelltext ... so in einer woche
PermanetMarker ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Checkboxen dynamisch in Tabelle erzeugen nussbaum PHP Tipps 2007 4 21.01.2007 16:50
tabelle... dynamisch etc.. goelliboy HTML, Usability und Barrierefreiheit 1 25.07.2006 01:09
Zeilenanzahl einer tabelle mit WHERE aber ohne schleife? sovereign Datenbanken 13 17.04.2006 20:34
$_POST-Abfrage bei dynamisch erzeugten Komponenten SvenLittkowski PHP Tipps 2007 16 19.01.2006 08:54
[Erledigt] Problem mit dem Füllen einer Tabelle über Formular PHP Tipps 2006 18 10.01.2006 12:51
$_POST-Abfrage bei dynamisch erzeugten Komponenten SvenLittkowski PHP Tipps 2006 4 04.01.2006 22:07
Problem mit Anzeige einer Tabelle mit dem Firefox? HTML, Usability und Barrierefreiheit 8 28.11.2005 15:08
[Erledigt] Tabelle aktualisieren Datenbanken 3 23.11.2005 09:54
[Erledigt] Problem mit mySQL Datenbanken 7 27.09.2005 12:06
[Erledigt] mysql abfrage über 4 Tabelle - bis 3 geht, bei der 4. habert Datenbanken 2 08.09.2005 11:59
Spalten Dynamisch als Tabelle anzeigen lassen(Spalten ausl.) Cyberbob_at_tot PHP Tipps 2005-2 6 04.06.2005 22:55
Tabelle dynamisch ausgeben PHP Tipps 2005 5 28.03.2005 13:18
Tabelle in Tabelle ausrichten HTML, Usability und Barrierefreiheit 7 03.01.2005 14:32
Sortieren anhand einer zweiten Tabelle PHP Tipps 2004 6 20.09.2004 09:03
HILFE: Column count doesn't match value count at row 1 Datenbanken 17 12.06.2004 16:45

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
getsqlvaluestring, php dynamisch spalte in table einfügen, php formular zur erzeugung einer tabelle, datensatz an zweite tabelle einfügen, getsqlvaluestring text einfügen, permanetmarker weiß, http://www.php.de/php-tipps-2006/40967-datensaetze-aus-einer-dynamisch-erzeugten-tabelle-einfuegen.html

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:07 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.