# Datensatz einlesen aus Formular (kompliziert)

**URL:** https://www.pg-forum.de/t/datensatz-einlesen-aus-formular-kompliziert/5827
**Category:** Andere Datenbanken
**Created:** [25. April 2011 um 12:10 UTC](https://www.pg-forum.de/t/datensatz-einlesen-aus-formular-kompliziert/5827 "2011-04-25T12:10:49Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![newlie](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/n/c77e96/32.png) [@newlie](https://www.pg-forum.de/u/newlie)
#### Post date: [25. April 2011 um 12:10 UTC](https://www.pg-forum.de/t/datensatz-einlesen-aus-formular-kompliziert/5827/1 "2011-04-25T12:10:49Z")

</div>

Hallo ich habe folgendes Problem:

**VEREINFACHT**

1. Datenbank

Kunden ID | Kundenname | Kundenadresse

Kunden ID ist ein autowert

1. Datenbank

Kunden ID | Bestellung

Formular:

Kundenname | Kundenadresse | Bestellung

Also hierbei den Kunden in die DB1 einzulesen ist ja relativ leicht. Bloß wie komme ich an die Kunden ID anhand des Namens und der Adresse des Kundens und lese die mit der Bestellung in die DB2 ein?

Hier nochmal die CODES:

```nohighlight
<?php
$vorname=$_REQUEST["vorname"] ;
$ort=$_REQUEST["ort"] ;
$nachname=$_REQUEST["nachname"] ;
$telefon=$_REQUEST["telefon"] ;
$artikelnr=$_REQUEST["artikelnr"] ;
$plz=$_REQUEST["plz"] ;
$straße=$_REQUEST["straße"] ;
$hausnr=$_REQUEST["hausnr"] ;
$menge=$_REQUEST["menge"] ;
$datum = date("d.m.Y H:i");

$db = @new mysqli( 'localhost', 'root', '', 'pizza');
if (mysqli_connect_errno() == 0)
         {
         $sql = 'INSERT INTO kunden (`Vorname`, `Nachname`, `PLZ`,`Ort`,`Straße`,`Hausnummer`,`TelefonNr`)VALUES
         ("'.$vorname.'", "'.$nachname.'", "'.$plz.'", "'.$ort.'", "'.$straße.'", "'.$hausnr.'", "'.$telefon.'")';

    $db->query( $sql );

    if ($db->affected_rows==1)
    {
         echo 'Der neue Eintrage wurde hinzugefügt.';
    }else
        {
         echo 'Der Eintrag konnte nicht hinzugefügt werden.';
        }
   ;
}else{
         echo 'Die Datenbank konnte nicht erreicht werden. Folgender Fehler trat auf: '
         .mysqli_connect_errno(). ' : ' .mysqli_connect_error();
}

$db->close();
 

```

Danke im Vorraus

---

<div class="post-metadata">

### Author: ![ads](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/a/8e7dd6/32.png) [@ads](https://www.pg-forum.de/u/ads)
#### Post date: [25. April 2011 um 12:25 UTC](https://www.pg-forum.de/t/datensatz-einlesen-aus-formular-kompliziert/5827/2 "2011-04-25T12:25:50Z")

</div>

Aaaaalso: zuerst einmal geht es in diesem Forum nicht um MySQL.  
Hier geht es einzig und allein um PostgreSQL.

Wenn du zwei Datenbanken hast, brauchst du auch zwei Datenbankverbindungen.  
Vielleicht solltest du auch noch einen ev. auftretenden Fehler in deiner query() Methode abfangen.  
Und wenn ich sehe, wie dein Stück Code anfällig für SQL.Injections ist, wird mir schlecht.

---

<div class="post-metadata">

### Author: ![newlie](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/n/c77e96/32.png) [@newlie](https://www.pg-forum.de/u/newlie)
#### Post date: [25. April 2011 um 12:32 UTC](https://www.pg-forum.de/t/datensatz-einlesen-aus-formular-kompliziert/5827/3 "2011-04-25T12:32:29Z")

</div>

jagut dass die anfällig is hab ich mir schon gedacht, da die db auch noch kein pw hat… habe auch erst mit sql angefangen… aber die datenbank is auch nur als übung gedacht…  
also die 2. datenbankverbindung sieht bei mir wie folgt aus … jedoch ist die 1. variable im insert leer weil ich halt net weiß wie man an die Kunden\_ID rankommt

[php]  
$db = @new mysqli( ‘localhost’, ‘root’, ‘’, ‘pizza’);  
if (mysqli\_connect\_errno() == 0)  
{  
$sql = ‘INSERT INTO bestellung (`KundenNr`, `Bestellungsdatum`, `Artikelnummer`,`Menge`)VALUES("’…’" , “’.$datum.’”, “’.$artikelnr.’”, “’.$menge.’”)’;

$db-\>query( $sql );

if ($db-\>affected\_rows==1)  
{  
echo 'Der neue Eintrage wurde hinzugefügt. ';

}else  
{  
echo ‘Der Eintrag konnte nicht hinzugefügt werden.’;  
}  
;  
}else{  
echo 'Die Datenbank konnte nicht erreicht werden. Folgender Fehler trat auf: ’  
.mysqli\_connect\_errno(). ’ : ’ .mysqli\_connect\_error();  
}

$db-\>close();  
[/php]

---

<div class="post-metadata">

### Author: ![newlie](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/n/c77e96/32.png) [@newlie](https://www.pg-forum.de/u/newlie)
#### Post date: [25. April 2011 um 13:49 UTC](https://www.pg-forum.de/t/datensatz-einlesen-aus-formular-kompliziert/5827/4 "2011-04-25T13:49:53Z")

</div>

weiß denn keiner wie man sowas machn kann?

---

<div class="post-metadata">

### Author: ![ads](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/a/8e7dd6/32.png) [@ads](https://www.pg-forum.de/u/ads)
#### Post date: [25. April 2011 um 13:57 UTC](https://www.pg-forum.de/t/datensatz-einlesen-aus-formular-kompliziert/5827/5 "2011-04-25T13:57:03Z")

</div>

Nicht für MySQL.  
Und ehrlich gesagt ist hier auch kein PHP-Forum.

---

<div class="post-metadata">

### Author: ![akretschmer](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/a/a6a055/32.png) [@akretschmer](https://www.pg-forum.de/u/akretschmer)
#### Post date: [25. April 2011 um 14:10 UTC](https://www.pg-forum.de/t/datensatz-einlesen-aus-formular-kompliziert/5827/6 "2011-04-25T14:10:28Z")

</div>

> [@newlie](#):
>
> weiß denn keiner wie man sowas machn kann?

SQL-Injektion wehrt man nicht mit einem PW ab. Die in diesem Forum gültige Antwort auf Deine Frage ist entweder RETURNING oder lastval(). Und wenn Du eh erst anfängst, wäre es noch nicht zu spät, alles zu tun, damit Du hier in diesem Forum richtig bist.

Andreas

---

<div class="post-metadata">

### Author: ![newlie](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/n/c77e96/32.png) [@newlie](https://www.pg-forum.de/u/newlie)
#### Post date: [25. April 2011 um 14:33 UTC](https://www.pg-forum.de/t/datensatz-einlesen-aus-formular-kompliziert/5827/7 "2011-04-25T14:33:39Z")

</div>

alles klar danke…  
habe jetz aber eine lösung gefunden… 🙂  
is zwar bestimmt umständlich geht aber …

jedenfalls halbwegs:

```nohighlight
<?php
$vorname=$_REQUEST["vorname"] ;
$ort=$_REQUEST["ort"] ;
$nachname=$_REQUEST["nachname"] ;
$telefon=$_REQUEST["telefon"] ;
$artikelnr=$_REQUEST["artikelnr"] ;
$plz=$_REQUEST["plz"] ;
$straße=$_REQUEST["straße"] ;
$hausnr=$_REQUEST["hausnr"] ;
$menge=$_REQUEST["menge"] ;
$datum = date("d.m.Y H:i");

// KUNDEN HINZUFÜGEN //

$db = @new mysqli( 'localhost', 'root', '', 'pizza');
if (mysqli_connect_errno() == 0)
         {
         $sql = 'INSERT INTO kunden (`Vorname`, `Nachname`, `PLZ`,`Ort`,`Straße`,`Hausnummer`,`TelefonNr`)VALUES
         ("'.$vorname.'", "'.$nachname.'", "'.$plz.'", "'.$ort.'", "'.$straße.'", "'.$hausnr.'", "'.$telefon.'")';

    $db->query( $sql );

    if ($db->affected_rows==1)
    {
         echo 'Der neue Eintrage wurde hinzugefügt.';
    }else
        {
         echo 'Der Eintrag konnte nicht hinzugefügt werden.';
        }
   ;
}else{
         echo 'Die Datenbank konnte nicht erreicht werden. Folgender Fehler trat auf: '
         .mysqli_connect_errno(). ' : ' .mysqli_connect_error();
}

$db->close();

//ABFRAGE KUNDEN_ID//

$db = @new mysqli( 'localhost', 'root', '', 'pizza');
if (mysqli_connect_errno() == 0)
         {

         // Query vorbereiten und an die DB schicken
         $sql = 'SELECT `Kunden_Nr` FROM `Kunden` WHERE `Hausnummer`= '.$hausnr.' and `PLZ`='.$plz.'';
         $ergebnis = $db->query( $sql );
         // Anzahl gefunde Datensaetze ausgeben
         echo "<p>Sie besitzten " .$ergebnis->num_rows. " Artikel.</p>";
         // Ergebnisse ausgeben
         while ($zeile = $ergebnis->fetch_object())
         {
         $po=$zeile->Kunden_Nr ;
         }
         // Resourcen freigeben
         $ergebnis->close();
}else{
echo 'Die Datenbank konnte nicht erreicht werden. Folgender Fehler trat auf: '
.mysqli_connect_errno(). ' : ' .mysqli_connect_error();
}
$db->close();

// BESTELLUNG HINZUFÜGEN //

$db = @new mysqli( 'localhost', 'root', '', 'pizza');
if (mysqli_connect_errno() == 0)
         {
         $sql = 'INSERT INTO bestellung (`KundenNr`, `Bestellungsdatum`, `Artikelnummer`,`Menge`)VALUES("'.$po.'", "'.$datum.'", "'.$artikelnr.'", "'.$menge.'")';

    $db->query( $sql );

    if ($db->affected_rows==1)
    {
         echo 'Der neue Eintrage wurde hinzugefügt. ';

    }else
        {
         echo 'Der Eintrag konnte nicht hinzugefügt werden.';
        }
   ;
}else{
         echo 'Die Datenbank konnte nicht erreicht werden. Folgender Fehler trat auf: '
         .mysqli_connect_errno(). ' : ' .mysqli_connect_error();
}

$db->close();

?>

```

jetz hab ich nurnoch das problem dass ich immer die fehlermeldung:

**Notice** : Trying to get property of non-object in **\pfad** on line **107**

**Fatal error** : Call to a member function fetch\_array() on a non-object in **\pfad** on line **109**

also diese zeilen:

```nohighlight
echo "<p>Sie besitzten " .$ergebnis->num_rows. " Artikel.</p>";
         // Ergebnisse ausgeben
         while ($zeile = $ergebnis->fetch_object()) 

```

Aber der fehler tritt nur auf sobald die felder buchstaben enthalten bei zahlen gehts wunderbar

villeicht weiß einer ja was

---

<div class="post-metadata">

### Author: ![castorp](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/c/e99b99/32.png) [@castorp](https://www.pg-forum.de/u/castorp)
#### Post date: [25. April 2011 um 15:09 UTC](https://www.pg-forum.de/t/datensatz-einlesen-aus-formular-kompliziert/5827/8 "2011-04-25T15:09:37Z")

</div>

> [@newlie](#):
>
> villeicht weiß einer ja was

Wie gesagt: in diesem Forum geht’s weder um MySQL noch um PHP.

---

<div class="post-metadata">

### Author: ![system](https://www.pg-forum.de/uploads/default/original/1X/dc97a981dd26692d5fb52e8b8fc7c090d7b9559a.png) [@system](https://www.pg-forum.de/u/system)
#### Post date: [21. Februar 2021 um 07:12 UTC](https://www.pg-forum.de/t/datensatz-einlesen-aus-formular-kompliziert/5827/9 "2021-02-21T07:12:32Z")

</div>


