| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

18-04-2011, 10:58
|
|
KP13
Registrierter Benutzer
|
|
Registriert seit: Apr 2011
Beiträge: 8
|
|
SQL Attribute von Tables auf weiterer Table verknüpfen
Hallo,
besuche gerade die Technikerschule und bin noch Neuling auf dem Gebiet von PHP und SQL. Wir haben zurzeit ein Projekt indem ich einen Webshop entwerfen soll. Der Kunde kann auf einet Html Seite seine Kundendaten eingeben und eine Produktvariante wählen.
Über die E-mailadresse soll ich prüfen ob der Kunde bereits in meiner Datenbank ist. Das haut bei mir soweit auch hin. Jetzt bräuchte ich einen Befehl wie ich auf einer table Auftrag die Bestellnummer mit der Kundennummer verknüpfen kann.
Meine Tables:
Kunde
Kundennummer(primary key)|Vorname|Nachname|Strasse|PLZ|ORT|Email
Produkt
Bestellnummer(primary key)|Komponente1|Komponente2|Komponente3
Auftrag
Auftragsnummer(primary key)|Bestellnummer|Kundennummer
Meine PHP Programmierung:
PHP-Code:
<?php
print "Vielen dank für Ihre Bestellung Herr "; print $_POST[nachname];
mysql_connect(localhost, root); mysql_select_db("webshop");
$auslesen=mysql_query("select Email from kunde"); $email=$_POST[email];
while($row=mysql_fetch_array($auslesen)) {
$anzahl=substr_count($row["Email"],$email); if ($anzahl == 1) { print "Sie sind bereits Kunde"; $vorhanden=1; $kunde=$row->getAttributeText('Kundennummer'); //Hier bräuchte ich einen Befehl mit dem ich über die E-mailadresse die //Kundennummer auslesen kann }
}
if ($vorhanden == 1) { $result1=mysql_query("insert into produkt (Komponente1, Komponente2, Komponente3) values ('$_POST[komponente1], Farbe $_POST[farbe1]', '$_POST[komponente2], Farbe $_POST[farbe2]', '$_POST[komponente3], Farbe $_POST[farbe3]');"); } else { $result=mysql_query("insert into kunde (Vorname, Nachname, Strasse, PLZ, Ort, Email) values ('$_POST[vorname]', '$_POST[nachname]', '$_POST[strasse]', '$_POST[plz]', '$_POST[ort]', '$_POST[email]');"); $result1=mysql_query("insert into produkt (Komponente1, Komponente2, Komponente3) values ('$_POST[komponente1], Farbe $_POST[farbe1]', '$_POST[komponente2], Farbe $_POST[farbe2]', '$_POST[komponente3], Farbe $_POST[farbe3]');"); }
$produkt=mysql_query("select Bestellnummer from produkt"); $auftrag=mysql_query("insert into auftrag (Kundennummer, Bestellnummer) values ('$kunde[Kundennummer]', '$produkt[Bestellnummer]');");
?>
Wäre super wenn mir da jemand weiterhelfen könnte.
Vielen Dank schonmal im vorraus
Geändert von KP13 (18-04-2011 um 11:02 Uhr)
|

18-04-2011, 10:59
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
Bitte brich vorher deinen Code. Kein Mensch scrollt gerne kilometerweit nach recht.
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

18-04-2011, 11:03
|
|
KP13
Registrierter Benutzer
|
|
Registriert seit: Apr 2011
Beiträge: 8
|
|
Sorry
|

18-04-2011, 11:06
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

18-04-2011, 11:16
|
|
KP13
Registrierter Benutzer
|
|
Registriert seit: Apr 2011
Beiträge: 8
|
|
Dankeschonmal aber das hört sich noch ein bisschen spanisch an für mich! Mein Problem ist das ich nicht weiß wie ich über die Emailadresse meines Kunden seine Kundennummer auslesen kann.
|

18-04-2011, 11:22
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
PHP-Code:
$auslesen=mysql_query("select Kundxennummer, Email from kunde ...");
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

18-04-2011, 11:30
|
|
KP13
Registrierter Benutzer
|
|
Registriert seit: Apr 2011
Beiträge: 8
|
|
Könnte ich es vielleicht so machen?
PHP-Code:
$auslesen=mysql_query("select Kundennummer from kunde where (Email='$_POST[email]')");
|

18-04-2011, 11:46
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
Was hat dein Versuch ergeben?
|

18-04-2011, 11:50
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
Code:
SELECT
k.Name,
b.Komponente1,
a.Auftragsnummer
FROM
Kunden k,
Bestellung b,
Auftrag a
WHERE a.Kundennummer = k.Kundennummer
AND a.Bestellnummer = b.Bestellnummer
AND k.Email = ...
Nur zur Anschaung und ungetestet.
Peter
PS: Ein Join wäre natürlich besser. Aber wenn du das obige Prinzip verstanden hast, kannst du dích damit ja noch Mal beschäftigen.
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

18-04-2011, 12:15
|
|
KP13
Registrierter Benutzer
|
|
Registriert seit: Apr 2011
Beiträge: 8
|
|
@TobiaZ
mit dem Befehl kann ich den Wert auslesen
PHP-Code:
$kunde=mysql_query("select Kundennummer from kunde where (Email='$_POST[email]')");
aber mit diesem Befehl wird er nicht in die table auftarg geschrieben:
PHP-Code:
$auftrag=mysql_query("insert into auftrag (Kundennummer) values ('$kunde[Kundennummer]');");
|

18-04-2011, 12:17
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
Sorry, aber dir fehlen wohl elementare Grundlagen. Anfangen solltest du mit einer vernünftigen Fehlersuche. Und bitte ganz durchlesen!
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

18-04-2011, 12:22
|
|
KP13
Registrierter Benutzer
|
|
Registriert seit: Apr 2011
Beiträge: 8
|
|
Da hast du wohl recht! Danke ich werds lesen!
|

18-04-2011, 12:54
|
|
KP13
Registrierter Benutzer
|
|
Registriert seit: Apr 2011
Beiträge: 8
|
|
Vielen Dank an alle! Habs hinbekommen
|

18-04-2011, 12:58
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
Dann sei bitte so freundlich und poste auch die Lösung. Falls ein andere Anfänger mal ein ähnliches Problem hat. Und wider Erwarten die SuFu benutzt.
Danke
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

18-04-2011, 18:26
|
|
KP13
Registrierter Benutzer
|
|
Registriert seit: Apr 2011
Beiträge: 8
|
|
Achso ja sorry!
Hier meine Lösung:
PHP-Code:
?php
print "Vielen dank für Ihre Bestellung Herr "; print $_POST[nachname];
mysql_connect(localhost, root); mysql_select_db("webshop");
$auslesen=mysql_query("select * from kunde"); $email=$_POST[email];
while($row=mysql_fetch_array($auslesen)) {
$anzahl=substr_count($row[6],$email); if ($anzahl == 1) { print "Sie sind bereits Kunde"; $vorhanden=1; $kunde=$row[0]; }
}
if ($vorhanden == 1) { $result1=mysql_query("insert into produkt (Komponente1, Komponente2, Komponente3) values ('$_POST[komponente1], Farbe $_POST[farbe1]', '$_POST[komponente2], Farbe $_POST[farbe2]', '$_POST[komponente3], Farbe $_POST[farbe3]');"); } else { $result=mysql_query("insert into kunde (Vorname, Nachname, Strasse, PLZ, Ort, Email) values ('$_POST[vorname]', '$_POST[nachname]', '$_POST[strasse]', '$_POST[plz]', '$_POST[ort]', '$_POST[email]');"); $result1=mysql_query("insert into produkt (Komponente1, Komponente2, Komponente3) values ('$_POST[komponente1], Farbe $_POST[farbe1]', '$_POST[komponente2], Farbe $_POST[farbe2]', '$_POST[komponente3], Farbe $_POST[farbe3]');");
$auslesen1=mysql_query("select max(Kundennummer) from kunde"); $row2=mysql_fetch_array($auslesen1); $kunde= $row2[0];
}
$produkt=mysql_query("select max(Bestellnummer) from produkt"); $row1=mysql_fetch_array($produkt); $nummer= $row1[0]; $auftrag=mysql_query("insert into auftrag (Kundennummer, Bestellnummer) values ('$kunde','$nummer');");
?>
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|