Ergebnis 1 bis 8 von 8

Thema: Datensatz einlesen aus Formular (kompliziert)

  1. #1
    newlie ist offline Neuer Benutzer
    Registriert seit
    25.04.2011
    Beiträge
    4

    Frage Datensatz einlesen aus Formular (kompliziert)

    Hallo ich habe folgendes Problem:

    VEREINFACHT

    1. Datenbank

    Kunden ID | Kundenname | Kundenadresse

    Kunden ID ist ein autowert

    2. 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:

    PHP-Code:
    <?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

  2. #2
    ads
    ads ist gerade online Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.055

    Standard

    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.
    Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören

    Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

    PostgreSQL Service & Support

  3. #3
    newlie ist offline Neuer Benutzer
    Registriert seit
    25.04.2011
    Beiträge
    4

    Standard

    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-Code:
    $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(); 

  4. #4
    newlie ist offline Neuer Benutzer
    Registriert seit
    25.04.2011
    Beiträge
    4

    Standard

    weiß denn keiner wie man sowas machn kann?

  5. #5
    ads
    ads ist gerade online Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.055

    Standard

    Nicht für MySQL.
    Und ehrlich gesagt ist hier auch kein PHP-Forum.
    Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören

    Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

    PostgreSQL Service & Support

  6. #6
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.465

    Standard

    Zitat Zitat von newlie Beitrag anzeigen
    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
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  7. #7
    newlie ist offline Neuer Benutzer
    Registriert seit
    25.04.2011
    Beiträge
    4

    Standard

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

    jedenfalls halbwegs:
    PHP-Code:
    <?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:
    PHP-Code:
    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

  8. #8
    castorp ist offline Erfahrener Benutzer
    Registriert seit
    27.06.2009
    Beiträge
    524

    Standard

    Zitat Zitat von newlie Beitrag anzeigen
    villeicht weiß einer ja was
    Wie gesagt: in diesem Forum geht's weder um MySQL noch um PHP.
    A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'

Ähnliche Themen

  1. Variable Dateien in DB einlesen
    Von Sharky im Forum Programmierung
    Antworten: 4
    Letzter Beitrag: 30.12.2009, 17:01
  2. Abschnitts aus Dump einlesen
    Von karl_ha im Forum SQL
    Antworten: 4
    Letzter Beitrag: 18.11.2009, 09:22
  3. Problem XML-Dateien einlesen
    Von Binaural im Forum Allgemeines
    Antworten: 5
    Letzter Beitrag: 01.07.2008, 09:57
  4. Formular Vorlagen
    Von damike im Forum Allgemeines
    Antworten: 2
    Letzter Beitrag: 31.08.2007, 09:08
  5. PHP-Formular, DB, Sonderzeichen = FRAGEZEICHEN!
    Von PeeDee im Forum Programmierung
    Antworten: 1
    Letzter Beitrag: 29.11.2006, 09:46

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum