SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

TYPO3 Kochbuch

TYPO3 Kochbuch zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 10.12.2005, 13:38:12
mattfi mattfi ist offline
Anfänger
 
Registriert seit: Dec 2005
Beiträge: 44
SQL-Abfrage liest Werte nicht aus :(

Hallo,

meine SQL-Kenntnisse stammen im Wesentlichen aus http://www.sql-und-xml.de/sql-tutori...-mit-join.html .
Ich habe zwei Tabellen, eine heißt DEF, eine GEBIET.
Primärschlüssel von GEBIET ist ID_GEBIET. Dieser ist, mit gleichem Namen, Fremdschlüssel in der Tabelle DEF (1:1).
Auslesen möchte ich aus der Tabelle DEF die Spalte DEF, aber nur wo der entsprechende Primärschlüssel ID_DEF den Wert $id_val hat, sowie über den Fremdschlüssel ID_GEBIET die entsprechenden Werte GEBIET aus der Tabelle GEBIET. Das ist mein Code, er gibt mir aber für DEF.DEF und GEBIET.GEBIET keine Werte zurück:
PHP-Code:
                $sql_def "SELECT
                                DEF.ID_GEBIET,
                                DEF.DEF,
                                GEBIET.ID_GEBIET,
                                GEBIET.GEBIET
                           FROM
                                DEF AS DEF INNER JOIN GEBIET AS GEBIET
                           ON
                                DEF.ID_GEBIET = GEBIET.ID_GEBIET
                           WHERE
                                DEF.ID_DEF = 
$id_val"
Was mache ich falsch?
__________________
Liebe Grüße,

mattfi

__________________________
Matthias Fischer
http://www.nexus-solutions.de
Mit Zitat antworten
  #2  
Alt 10.12.2005, 18:10:42
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: SQL-Abfrage liest Werte nicht aus :(

Wie sieht der Inhalt/die Struktur der beiden Tabellen aus?
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #3  
Alt 10.12.2005, 18:53:43
Marilu Marilu ist offline
Member
 
Registriert seit: Apr 2003
Ort: 49.54, 8.35 - 3./9
Beiträge: 878
AW: SQL-Abfrage liest Werte nicht aus :(

Versuch mal meine verkürzte Version:

$sql_def = "
SELECT DEF.DEF, GEBIET.GEBIET
FROM DEF
LEFT JOIN GEBIET ON DEF.ID_GEBIET = GEBIET.ID_GEBIET
WHERE DEF.ID_DEF = '$id_val'";

Du kannst die Query im phpMyAdmin testen und dabei modifizieren, um Fehler zu finden. Wenn nichts ausgegeben wird, z. B. mal die WHERE-Klausel weglassen...

Ach ja, danach natürlich nicht
PHP-Code:
$result mysql_query($sql_def); 
vergessen.
Mit Zitat antworten
  #4  
Alt 10.12.2005, 21:39:08
mattfi mattfi ist offline
Anfänger
 
Registriert seit: Dec 2005
Beiträge: 44
AW: SQL-Abfrage liest Werte nicht aus :(

Die DE-Klausel ist das einzige, was zu funktionieren scheint.
Meine Datenbanktabellen sehen, vereinfacht, wie folgt aus:

Tabelle DEF
_________
ID_DEF Primärschlüssel
ID_GEBIET Fremdschlüssel
DEF
...

Tabelle GEBIET
__________
ID_GEBIET Primärschlüssel
GEBIET

ID_GEBIET kann in der Tabelle DEF n Mal vorkommen.
Anstatt den Zahlenwert will ich aber den String ausgeben, der in der Tabelle GEBIET abgelegt ist.
__________________
Liebe Grüße,

mattfi

__________________________
Matthias Fischer
http://www.nexus-solutions.de
Mit Zitat antworten
  #5  
Alt 11.12.2005, 17:53:43
mattfi mattfi ist offline
Anfänger
 
Registriert seit: Dec 2005
Beiträge: 44
AW: SQL-Abfrage liest Werte nicht aus :(

Also, nachdem ich feuervogels allgemeine Ratschläge nochmals beherzigt habe (ich hoffe, es ist mir gelungen), habe ich nun insegamt diesen Code:

PHP-Code:
            foreach($id_def as $id_val) {

                
$sql_def "SELECT
                                DEF.ID_GEBIET,
                                DEF.DEF,
                                DEF.ANM,
                                GEBIET.ID_GEBIET,
                                GEBIET.GEBIET
                            FROM
                                DEF As DEF INNER JOIN GEBIET As GEBIET
                            ON
                                DEF.ID_GEBIET = GEBIET.ID_GEBIET
                            WHERE
                                DEF.ID_DEF = '
$id_val'";

                
$result mysql_query($sql_def) OR die(mysql_error());
                
$row_def mysql_fetch_assoc($result);
                echo 
"<tr style=\"vertical-align:top;\">"
                     
."<td><strong>Fachgebiet:</strong></td>"
                     
."<td>".$row_def['GEBIET']."</td></tr> \n"
                     
."<tr style=\"vertical-align:top;\">"
                     
."<td><strong>Definition:</strong></td>"
                     
."<td>".$row_def['DEF']."</td></tr> \n"
                     
."...";"

            } 
Ich bekomme keine Fehlermeldung. Ohne den JOIN auf die Tabelle GEBIET hat die Abfrage auch einwandfrei funktioniert, nun gibt sie einfach keine Werte aus (erstellt aber die richtige Anzahl Tabellenzeilen; $id_var wird ja weiterhin korrekt ausgelesen, die WHERE-Klausel funktionert). Also, denke ich mal, habe ich den JOIN falsch konstruiert. Ich kann aber nix erkennen, was falsch sein sollte. Vielleicht könnt Ihr mir weiterhelfen.

@Marilu: LEFT JOIN statt INNER JOIN sorgt dafür, dass Werte aus der tabelle DEF wieder ausgegeben werden. Werte aus der Spalte GEBIET der Tabelle GEBIEt werden aber weiterhin keine ausgegeben.
__________________
Liebe Grüße,

mattfi

__________________________
Matthias Fischer
http://www.nexus-solutions.de

Geändert von mattfi (11.12.2005 um 18:42:46 Uhr)
Mit Zitat antworten
  #6  
Alt 11.12.2005, 19:32:00
mattfi mattfi ist offline
Anfänger
 
Registriert seit: Dec 2005
Beiträge: 44
AW: SQL-Abfrage liest Werte nicht aus :(

Wieder mal... Asche auf mein Haupt -- das mangelnde Auslesen von GEBIET.GEBIET lag daran, dass es für den Fremdschlüssel keinen Wert gab.

Trotzdem wäre ich ohne die Korrektur von INNER JOIN in LEFT JOIN nicht weiter gekommen. An dieser Stelle Danke für den Tipp.

Ich habe haber grundsätzliche Verständnisprobleme was die Attribute von JOIN anbelangt. Ich wäre dankbar, wenn jemand mal mengenschematisch darstellen könnte, was innen, außen sind, und was links und rechts nicht nur bewirken, sondern tatsächlich sind.
__________________
Liebe Grüße,

mattfi

__________________________
Matthias Fischer
http://www.nexus-solutions.de
Mit Zitat antworten
  #7  
Alt 11.12.2005, 19:57:21
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: SQL-Abfrage liest Werte nicht aus :(

Vielleicht hilft dir diese Seite da ein wenig weiter.
Mit Zitat antworten
  #8  
Alt 11.12.2005, 20:06:08
mattfi mattfi ist offline
Anfänger
 
Registriert seit: Dec 2005
Beiträge: 44
AW: SQL-Abfrage liest Werte nicht aus :(

Danke, xabbuh. Die Seite habe ich heute abend durchgelesen. Die Infos sind mir zu abstrakt. Mit Mengendarstellungen, etwa wie in http://tut.php-q.net/array.html#u8 , könnte ich vermutlich mehr anfangen.
Beispiel: Was heißt "innen"? Innen von was? Da muss es ein Mengenmodell geben, etwa aus konzentrischen Kreisen, und innen ist eine Menge, außen eine andere. Irgendwo hängen die Mengen mit den Tabellen zusammen. Wenn ich das nachvollziehen bzw. richtig zuordnen könnte, dann ergäbe sich -- jedenfalls für mich -- alles weitere aus den verwendeten Begriffen.

Eine schöne Woche wünscht
mattfi
__________________
Liebe Grüße,

mattfi

__________________________
Matthias Fischer
http://www.nexus-solutions.de

Geändert von mattfi (11.12.2005 um 20:06:33 Uhr)
Mit Zitat antworten
Antwort


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

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.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
mit php eine sql abfrage Illuminum PHP Grundlagen 3 14.05.2004 09:06:37
SQL Abfrage Datum dadileo PHP Grundlagen 4 22.04.2004 11:07:15
SQL Abfrage Fehler aber ich seh keinen FloRos MySQLi/PDO/(MySQL) 4 26.10.2003 14:27:24
SQL ABfrage in Tabelle ausgeben. Shape24 PHP für Fortgeschrittene und Experten 13 17.05.2003 10:33:30
Probleme mit SQL Abfrage yellyjones PHP für Fortgeschrittene und Experten 1 29.04.2003 13:41:13


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:01:42 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.


© 2001-2025 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt