Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 02:53

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



PHP Inner Join Problem

Discussion on PHP Inner Join Problem within the Web Development forum part of the Coders Den category.

Closed Thread
 
Old   #1


 
DasPrinzip.'s Avatar
 
elite*gold: 727
Join Date: Feb 2012
Posts: 1,206
Received Thanks: 303
PHP Inner Join Problem

Hallo,

und zwar habe ich folgendes Problem.
Ich habe 3 Tabellen, welche in Verbindung stehen.

Kunde, Auftrag, Adresse

Bei der Tabelle Kunde ist die Kundennummer der Primärschlüssel. Bei Auftrag gibt es dazu einen Fremdschlüssel. Jetzt möchte ich z.B. das jemand seine Kundennummer eingibt und seine Aufträge anzeigt. Dazu hab ich folgenden Code:

PHP Code:
if (isset ($_POST['submit'])){
        
        
mysql_connect("*""*","*") or die ("Keine Verbindung moeglich");
        
mysql_select_db("*"/* Datenbank verändern */ or die ("Die Datenbank existiert nicht.");
        
#header("Content-Type: text/html; charset=utf-8");
        
mysql_query("SET NAMES 'utf8'");    
        
        
$kdnr $_POST['kdnr'];
        
        
$sql "SELECT * FROM cp_kunde JOIN cp_atg ON atg_kdnr = $kdnr";
 
        
$db_erg mysql_query$sql );
        if ( ! 
$db_erg )
        {
          die(
'Ungültige Abfrage: ' mysql_error());
        }
        
        echo 
'<table cellpadding="4" cellspacing="0" border="1">';
        echo 
'<tr>
            <td><strong>Kundennummer</strong></td>
            <td><strong>Vorname</strong></td>
            <td><strong>Nachname</strong></td>
            <td><strong>Titel</strong></td>
            <td><strong>Beschreibung</strong></td>
            </tr>'
;
        while (
$zeile mysql_fetch_array$db_ergMYSQL_ASSOC))
        {
          echo 
"<tr>";
          echo 
"<td>"$zeile['kdnr'] . "</td>";
          echo 
"<td>"$zeile['vorname'] . "</td>";
          echo 
"<td>"$zeile['nachname'] . "</td>";
          echo 
"<td>"$zeile['atg_title'] . "</td>";
          echo 
"<td>"$zeile['atg_desc'] . "</td>";
          echo 
"</tr>";
        }
        echo 
"</table>";
        
mysql_free_result$db_erg );
    } 
Nun ich das Problem, dass wenn ich eine Kundennummer eingebe, alle Kunden ausgegeben werden und dahinter ein Auftrag mit der eingegebenen Kundennummer?
Was ist der Fehler?
DasPrinzip. is offline  
Old 06/09/2015, 11:07   #2
dotCom
 
Devsome's Avatar
 
elite*gold: 9842
The Black Market: 107/0/0
Join Date: Mar 2009
Posts: 16,844
Received Thanks: 4,675
Warum ein InnerJoin wenn ihr ein 'select where select' gehen sollte.

Weiß grad nicht ob das so gehen würde, aber so in der Art
Code:
$sql = "SELECT * FROM cp_kunde WHERE (SELECT * FROM cp_atg WHERE atg_kdnr = $kdnr)";
Devsome is offline  
Thanks
1 User
Old 06/09/2015, 11:10   #3

 
adistoe's Avatar
 
elite*gold: 63
Join Date: Oct 2012
Posts: 1,181
Received Thanks: 139
PHP Code:
$sql "SELECT * FROM cp_kunde AS ck JOIN cp_atg AS ca ON ck.atg_kdnr = ca.atg_kdnr WHERE atg_kdnr = $kdnr"
Du musst sagen, wo du die Tabellen verbindest und welche Spalten du ausgeben möchtest.

ck.atg_kdnr müsste in deinem Falle der Primärschlüssel von cp_kunde sein.
ca.atg_kdnr hingegen ist der Fremdschlüssel von cp_atg.

Gegebenfalls Name des Schlüssels hinter ck. bzw. ca. anpassen.

#edit:
@Devsome:
Richtig wäre:
PHP Code:
$sql "SELECT * FROM cp_kunde WHERE spaltenname = (SELECT * FROM cp_atg WHERE atg_kdnr = $kdnr)"
Sonst hast du keine richtige WHERE Bedingung.
Bei deinem Statement würde Bsp. "WHERE 1" rauskommen.
adistoe is offline  
Thanks
1 User
Old 06/09/2015, 11:16   #4
dotCom
 
Devsome's Avatar
 
elite*gold: 9842
The Black Market: 107/0/0
Join Date: Mar 2009
Posts: 16,844
Received Thanks: 4,675
Quote:
Originally Posted by adistoe View Post
PHP Code:
$sql "SELECT * FROM cp_kunde AS ck JOIN cp_atg AS ca ON ck.atg_kdnr = ca.atg_kdnr WHERE atg_kdnr = $kdnr"
Du musst sagen, wo du die Tabellen verbindest und welche Spalten du ausgeben möchtest.

ck.atg_kdnr müsste in deinem Falle der Primärschlüssel von cp_kunde sein.
ca.atg_kdnr hingegen ist der Fremdschlüssel von cp_atg.

Gegebenfalls Name des Schlüssels hinter ck. bzw. ca. anpassen.

#edit:
@Devsome:
Richtig wäre:
PHP Code:
$sql "SELECT * FROM cp_kunde WHERE spaltenname = (SELECT * FROM cp_atg WHERE atg_kdnr = $kdnr)"
Sonst hast du keine richtige WHERE Bedingung.
Bei deinem Statement würde Bsp. "WHERE 1" rauskommen.
Man könnte sofern es mehr Einträge geben sollte dann ein IN anstatt = nehmen.
Aber ich wusste das ich was vergessen habe :c
Devsome is offline  
Thanks
2 Users
Old 06/09/2015, 11:44   #5


 
DasPrinzip.'s Avatar
 
elite*gold: 727
Join Date: Feb 2012
Posts: 1,206
Received Thanks: 303
Quote:
Originally Posted by adistoe View Post
PHP Code:
$sql "SELECT * FROM cp_kunde AS ck JOIN cp_atg AS ca ON ck.atg_kdnr = ca.atg_kdnr WHERE atg_kdnr = $kdnr"
Du musst sagen, wo du die Tabellen verbindest und welche Spalten du ausgeben möchtest.

ck.atg_kdnr müsste in deinem Falle der Primärschlüssel von cp_kunde sein.
ca.atg_kdnr hingegen ist der Fremdschlüssel von cp_atg.

Gegebenfalls Name des Schlüssels hinter ck. bzw. ca. anpassen.

#edit:
@Devsome:
Richtig wäre:
PHP Code:
$sql "SELECT * FROM cp_kunde WHERE spaltenname = (SELECT * FROM cp_atg WHERE atg_kdnr = $kdnr)"
Sonst hast du keine richtige WHERE Bedingung.
Bei deinem Statement würde Bsp. "WHERE 1" rauskommen.
Danke, das haben wir genau so in der Schule gelernt, aber hab das total vergessen...
DasPrinzip. is offline  
Old 06/09/2015, 18:18   #6

 
snow's Avatar
 
elite*gold: 724
Join Date: Mar 2011
Posts: 10,479
Received Thanks: 3,318
#closed (on request)
snow is offline  
Closed Thread


Similar Threads Similar Threads
[Problem]d.join
04/21/2013 - Metin2 Private Server - 0 Replies
Hi when i use d.join on new map i can not move syserr whem i use /warp everything works fine
Join Problem
08/04/2012 - DayZ - 1 Replies
Hey, Mein Bruder ist aktuell bei mir und wir versuchen jetzt seit etwa ner halben Stunde in DayZ auf einen Server zu joinen. Der der als erstes Connected kommt rein, der andere wird automatisch vom Server gekickt (ja, wir haben verschiedene Server getestet). Wir haben auch beide das Spiel in Steam gekauft. eventuell weiß ja jemand, woran das liegt. Gruß, menan
MW 3 Join Problem
02/13/2012 - Call of Duty - 3 Replies
Hallo, Seit gestern habe ich mw3 ich habe es über steam Heruntergeladen dann wollte ich gestern den online mode testen aber nun kommt das Problem Ich suche eine lobby er findet auch nach einer zeit ein paar spieler aber dann hauts mich entweder in der lobby noch raus oder nach 2-3 min im spiel mit der Beründung "Der Call of Duty Modern Warfare Server ist zurzeit nicht verfügbar bitte versuchen sie es später erneut komigerweise geht das aber beim einem kollegen hat jmd ein paar ideen was ich...
Join Problem!!!
03/02/2011 - Diablo 2 - 5 Replies
Also, Ich habe folgendes Problem: Immer wenn ich im Closed Battle.Net einem Spiel joine bleibe ich beim To mit Diablo hängen :confused: Alle Ports für Diablo offen,Eigentlich rnie Probleme gehabt Und bin total frustriert :confused::confused::confused::confused:
Server join problem
11/03/2005 - WoW Private Server - 3 Replies
Also ich habe alles geacght ud es hat auch gelapt ream list wird angezeigt aber komme net aufm realm drauf !



All times are GMT +1. The time now is 02:54.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.