Antwort
 
Themen-Optionen Thema durchsuchen
Alt 13.01.2006, 11:34 Nach oben    #1
\m/ let's rock \m/
 
Benutzerbild von la-finest
 
Registriert seit: 11.11.2005
Beiträge: 114
Standard InnerJoin funktioniet nicht korrekt

HeyHo,

Ich hab verschiedene DB Tabellen aus denen ich diverse Werte brauche.
Das ganze hab ich via InnerJoin realisiert.
Wenn ich den InnerJoin in phpMyAdmin teste funktioniert er einwandfrei, also er selekiert das was man möchte

Aber in meinem Script passiert irgendiwe nichts, zudem hab ich noch keine optimal lösung die selektierten daten weiterzuleiten.

Hier ist mein Script:

PHP-Code:
session_start();
/*
error_reporting(E_ALL);
    echo "<pre>\n";
    var_dump($_POST);
    echo "</pre>\n";
*/   
if(isset($_POST['suchen']))
{
 
// Einbinden der Konfigurationsdatei
        
include_once ('../Config/config.inc.php');
        
// Erstellen der Verbindung zur MySQL-Datenbank
        
$db mysql_connect($_config['host'], $_config['user'], $_config['password'])
        or die(
'<pre>'mysql_error().'</pre>' );
        
mysql_select_db($_config['database']);

   if (!empty(
$_REQUEST['checkBestell']))
   {
    
$sql "SELECT bestellposition.Kundennr, 
          kunde.Vorname, 
          kunde.Nachname, 
          bestellposition.Bestellnr, 
          bestellung.Artikelnr, 
          artikel.Hersteller, 
          artikel.Groesse, 
          artikel.Typ, 
          artikel.Stueckpreis, 
          artikel.Dienstleistung, 
          artikel.Bezeichnung, 
          bestellposition.Bestelldatum
       FROM  bestellposition, 
                kunde, 
                bestellung, 
                artikel
      WHERE kunde.Kundennr = bestellposition.Kundennr 
      AND bestellposition.Bestelldatum = "
.$_POST['bestelldatum']."
      AND bestellposition.Bestellnr = bestellung.Bestellnr 
      AND bestellung.Artikelnr = artikel.Artikelnr"
;
      
$result mysql_query($sql)
           OR die(
mysql_error()."  ".mysql_errno());
   }
   else
   {
    echo
"Fehler beim Selektieren!";
   }

  
$i 0;
  
  while(
$row mysql_fetch_row($result))
  {
  
$i++;
  
$_SESSION['datensatz'][$i]['kundennr'] = $row[0];
  
$_SESSION['datensatz'][$i]['vorname'] = $row[1];
  
$_SESSION['datensatz'][$i]['nachname'] = $row[2];
  
$_SESSION['datensatz'][$i]['bestellnr'] = $row[3];
  
$_SESSION['datensatz'][$i]['artikelnr'] = $row[0];
  
$_SESSION['datensatz'][$i]['hersteller'] = $row[5];
  
$_SESSION['datensatz'][$i]['groesse'] = $row[6];
  
$_SESSION['datensatz'][$i]['typ'] = $row[7];
  
$_SESSION['datensatz'][$i]['stueckpreis'] = $row[8];
  
$_SESSION['datensatz'][$i]['dienstleistung'] = $row[9];
  
$_SESSION['datensatz'][$i]['bezeichnung'] = $row[10];
  
$_SESSION['datensatz'][$i]['bestelldatum'] = $row[11];
  }
  
header("Location: bestellung_anzeigen.php");
  exit();
}
else
{
 echo
"Fehler!";

wäre toll wenn ihr mal drüber schauen könntet

viele grüße,

la-finest
__________________
"Irgendwann, möglicherweise auch nie, werde ich dich bitten mir eine kleine Gefälligkeit zu erweisen. Aber solange ich das nicht tue, soll die Gerechtigkeit mein Geschenk an Dich sein." - Don Vito Corleone, aus "Der Pate"
la-finest ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.01.2006, 12:17 Nach oben    #2
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.653
Standard

Wo ist dort bitte ein Inner Join bei dir? Du rufst einfach mehrere Tabellen hintereinander auf. Das hat nichts mit Inner Join zu tun.
Ebenfalls brauchen wir schon deinen Datenbankentwurf, wenns geht mit Darstellung der Beziehungen zwischen den Tabellen, dann kann dir auch geholfen werden.

edit:
$_SESSION['datensatz'][$i]['artikelnr'] = $row[0]; soll bestimmt nicht 0 sondern 4 sein oder?
__________________
I did it my way - Senseless-Blog
Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009
WarrenFaith ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.01.2006, 13:10 Nach oben    #3
\m/ let's rock \m/
 
Benutzerbild von la-finest
 
Registriert seit: 11.11.2005
Beiträge: 114
Standard

ok, momentan hab ich das Relationale DB Modell nicht da. Ich werde es aber posten sobald ich es habe! Frühstens Montag. Vielen Dank für deine Hilfe!
__________________
"Irgendwann, möglicherweise auch nie, werde ich dich bitten mir eine kleine Gefälligkeit zu erweisen. Aber solange ich das nicht tue, soll die Gerechtigkeit mein Geschenk an Dich sein." - Don Vito Corleone, aus "Der Pate"
la-finest ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.01.2006, 14:48 Nach oben    #4
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.516
Standard

Der Beitrag wurde verschoben, wegen...
... Postings im falschen Forum. Bitte beim nächsten Mal darauf achten..

verschoben
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 26.01.2006, 19:54 Nach oben    #5
\m/ let's rock \m/
 
Benutzerbild von la-finest
 
Registriert seit: 11.11.2005
Beiträge: 114
Standard

sorry hat ein wenig gedaurt, aber hier ist mein Datenbankmodellierung:

Artikel(Artikelnr., Hersteller, Groesse, Typ, Stueckpreis, Dienstleistung, Beziechnung, Bestand)
Bankdaten(Kundennr., Kontonr, BLZ, Bank)
Bestellposition(Bestellposnr., Kundenr., Bestellnr., Bestelldatum)
Bestellung(Bestellnr., Artikelnr., Menge)
Kunde(Kundennr., ...)
Rechnung(Rechnungsnr.,Kundenr., Bestellposnr., Rechnungsdatum)
Rechnungsposition(Rechposnr., Artikelnr., Rechnungsnr., Posnr., Menge)

was mir desweiteren aufgefallen ist, dass das Programm irgendwie nicht in die while Schleife reinspringt!

Hoffe ihr könnt mir jetzt evtl. helfen.

Viele Grüße,

la-finest
__________________
"Irgendwann, möglicherweise auch nie, werde ich dich bitten mir eine kleine Gefälligkeit zu erweisen. Aber solange ich das nicht tue, soll die Gerechtigkeit mein Geschenk an Dich sein." - Don Vito Corleone, aus "Der Pate"
la-finest ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 26.01.2006, 19:59 Nach oben    #6
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.516
Standard

Schau Dir mal an, was es mit den Sichtbarkeitsbereichen von Variablen auf sich hat.

Grüße Ben.
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 27.01.2006, 08:49 Nach oben    #7
\m/ let's rock \m/
 
Benutzerbild von la-finest
 
Registriert seit: 11.11.2005
Beiträge: 114
Standard

ok, hab ich gemacht, aber nun frag ich mich warum die variabeln dann nicht sichtbar in der While Schleife sind? Warum sollten die plötzlich nicht mehr global sein??

Zitat:
// Die meisten vordefinierten Variablen sind nicht "super" und
// benötigen 'global', um im lokalen Bereich von Funktionen zur
// Verfügung zu stehen.
global $HTTP_POST_VARS;

echo $HTTP_POST_VARS['name'];

// Superglobale stehen in jedem Bereich zur Verfügung und
// benötigen kein 'global'. Superglobale stehen seit PHP 4.1.0
// zur Verfügung.
echo $_POST['name'];
Ja ich programmiere mit Version 5.1 sprich da müssten sie doch global sein?
__________________
"Irgendwann, möglicherweise auch nie, werde ich dich bitten mir eine kleine Gefälligkeit zu erweisen. Aber solange ich das nicht tue, soll die Gerechtigkeit mein Geschenk an Dich sein." - Don Vito Corleone, aus "Der Pate"
la-finest ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 27.01.2006, 08:54 Nach oben    #8
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.516
Standard

Hehe,
es geht aber nicht um $_POST, sondern um die Variable $result.
Die füllst Du im if-Zweig und verwendest diese dann außerhalb .. allerdings merke ich gerade, dass in dem Fall, dass $result in der Bedingung der while-Schleife gar nicht instanziiert ist, die Ausgabe des else-Zweigs angezeigt werden würde.

Hm.
Mach mal direkt vor der while-Schleife ein
PHP-Code:
echo '<pre>';
var_dump($result);
echo 
'</pre>'
Grüße Ben.
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 27.01.2006, 09:59 Nach oben    #9
Benutzer
 
Registriert seit: 17.08.2005
Beiträge: 87
Standard

PHP-Code:
<?php
error_reporting
(E_ALL); ini_set('display_errors'true);
session_start();

// hier kannst Du schon alles abtesten und ersparst Dir damit den if/else Urwald
isset($_POST['suchen']) or die('Fehler. Keine Suchanfrage übermittelt.');
!empty(
$_REQUEST['checkBestell']) or die('Fehler. Suchanfrage unvollständig.');
isset(
$_POST['bestelldatum']) or die('Fehler. Suchanfrage unvollständig.');


// Einbinden der Konfigurationsdatei
// und da sie für den Rest des Skript notwendig zu sein scheint, kein include sondern require
require_once '../Config/config.inc.php';
// Erstellen der Verbindung zur MySQL-Datenbank
$db mysql_connect($_config['host'], $_config['user'], $_config['password']) or die('<pre>'mysql_error().'</pre>' );
// die Auswahl der Datenbank kann genauso schiefgehen.
mysql_select_db($_config['database'], $db) or die('<pre>'mysql_error().'</pre>' );

// sql injection verhindern
// da es in der Abfrage ohne Anführungszeichen angegeben ist, gehe ich von einer Zahl (z.B. Unixtimestamp) aus
// ansonsten mysql_real_escape_string verwenden
$bestelldatum = (int)$_POST['bestelldatum'];

// Wenn den Felder hier schon exakt der gewünschte Name gegeben wird
// (oder das Skript die originalen Feldnamen verwenden würde...) ...
$sql 'SELECT
                bestellposition.Kundennr as kundennr, 
                kunde.Vorname as vorname, 
                kunde.Nachname as nachname, 
                bestellposition.Bestellnr as bestellnr, 
                bestellung.Artikelnr as artikelnr, 
                artikel.Hersteller as hersteller, 
                artikel.Groesse as groesse, 
                artikel.Typ as typ, 
                artikel.Stueckpreis as stueckpreis, 
                artikel.Dienstleistung as dienstleistung, 
                artikel.Bezeichnung as bezeichnung, 
                bestellposition.Bestelldatum as bestelldatum
            FROM  bestellposition, 
                kunde, 
                bestellung, 
                artikel
            WHERE
                kunde.Kundennr = bestellposition.Kundennr 
                AND bestellposition.Bestelldatum = '
.$bestelldatum.'
                AND bestellposition.Bestellnr = bestellung.Bestellnr 
                AND bestellung.Artikelnr = artikel.Artikelnr
        '
;
        
$result mysql_query($sql) or die('<pre>'mysql_error().'</pre>' );
$_SESSION['datensatz'] = array();

// ... braucht hier immer nur Datensatz für Datensatz an das Feld angehängt werden
while($row mysql_fetch_row($result))
    
$_SESSION['datensatz'][] = $row;

// header("Location: bestellung_anzeigen.php");
echo '<legend><fieldset>Ergebnis</legend><pre>'print_r($_SESSION['datensatz']); echo '</pre></fieldset>';
?>
VolkerK ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.02.2006, 14:30 Nach oben    #10
\m/ let's rock \m/
 
Benutzerbild von la-finest
 
Registriert seit: 11.11.2005
Beiträge: 114
Standard

Jetzt funktionierts! *jubeljubelfreufreu*

Vielen dank an alle, die geholfen haben. thx

Viele Grüße,
la-finest
__________________
"Irgendwann, möglicherweise auch nie, werde ich dich bitten mir eine kleine Gefälligkeit zu erweisen. Aber solange ich das nicht tue, soll die Gerechtigkeit mein Geschenk an Dich sein." - Don Vito Corleone, aus "Der Pate"
la-finest ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

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 sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[FF Extension]HTML Validator arbeitet nicht korrekt? WarrenFaith Tools, Server, Betriebssysteme 21 25.03.2007 19:20
Threads semantisch korrekt, aber auch übersichtlich auflisten Ben HTML, XML und CSS 13 09.10.2006 19:48
Wie kann ich eine Methode korrekt einbinden? dr. rom4o Allgemeine Java-Programmierung 7 12.01.2006 14:33
firefox und opera zeigt es korrekt an, inet-explorer nicht Timo HTML, XML und CSS 5 02.11.2005 23:52
Applet korrekt einbinden bicpi Allgemeine Java-Programmierung 1 15.01.2005 06:13


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:46 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45