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

Websites optimieren für Google & Co.

Websites optimieren für Google & Co. 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)
Hilfe Community Kalender Heutige Beiträge Suchen

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 09.08.2007, 22:51:57
Morgan Morgan ist offline
Anfänger
 
Registriert seit: Aug 2007
Beiträge: 4
Unterabfrage und eine Tabelle

Guten,

Hab ein reines MySQL Verständnisproblem:
Unterabfrage funktioniert, wenn ich 2 Tabellen abfrage. Hab ich nur eine Tabelle, klappt das nicht mit Syntax Error.

Beispiel: table test:

id Name Hersteller
1 N1 H1
2 N2 H2
3 N3 H2
4 N4 H4

Finde alle Namen, die denselben Hersteller haben wie 'N2'. Also N2 und N3.

SELECT Name FROM test
WHERE Hersteller = (
SELECT Hersteller FROM test WHERE Name LIKE 'N2'
) ;

Fehler.

Hab einige wenige Muster für korrelierene querys mit echt nur einer Tabelle, bau ich die Syntax nach, kommt so was raus:

SELECT t1.Name
FROM test t1
WHERE t1.Hersteller = (
SELECT t2.Hersteller
FROM test t2
WHERE t2.Name like 'N2' ) ;

Liefert ebenfalls Syntax Error statt N2 N3.

Ist doch aber eine sehr einfache Aufgabe ?
Mit Zitat antworten
  #2  
Alt 09.08.2007, 23:02:06
Benutzerbild von Socrates
Socrates Socrates ist offline
Member
 
Registriert seit: Jul 2006
Ort: Göttingen/Deutschland
Alter: 35
Beiträge: 586
AW: Unterabfrage und eine Tabelle

Deine Syntax ist vollkommen falsch und außerdem viel zu umständlich. das ganze muss so aussehen und sollte dann auch funktionieren.
PHP-Code:
<?php
     SELECT Name FROM test WHERE Hersteller 
='H2';
?>
Wenn du das mit dem Namen verbinden willst. Musst du erst den hersteller von N2 abfragen und dann alle Hersteller dieses Typs suchen.
PHP-Code:
<?php
     SELECT Hersteller FROM test WHERE Name 
='N2';        /* gibt das Array Hersteller zurück */
     
SELECT Name FROM test WHERE Hersteller ='$array_Hersteller';        /* gibt das Array Name zurück */        
?>
Du solltest dich allerdings erst kurz mit MYSQL beschäftigen bevor du weiter machst.
MfG, Andy
__________________
BSc. Applied Computer Science
http://www.bornageek.com

Geändert von Socrates (09.08.2007 um 23:06:27 Uhr)
Mit Zitat antworten
  #3  
Alt 09.08.2007, 23:07:31
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: Unterabfrage und eine Tabelle

du vergleichst eine spalte mit einer menge aus ergebnistupeln, das kann nur schief gehen.

vielleicht eher so:

SELECT Name FROM test
WHERE Hersteller IN (
SELECT Hersteller FROM test WHERE Name = 'N2'
) ;

und das nächste mal bitte die fehlermeldungen mitposten...
Mit Zitat antworten
  #4  
Alt 09.08.2007, 23:44:18
Morgan Morgan ist offline
Anfänger
 
Registriert seit: Aug 2007
Beiträge: 4
AW: Unterabfrage und eine Tabelle

Zitat:
Zitat von Socrates Beitrag anzeigen
Du solltest dich allerdings erst kurz mit MYSQL beschäftigen bevor du weiter machst
MySQL kann kein PHP. Solltest du wissen, wenn du dich schon so lange mit MySQL beschäftigst. Hab mich übrigens mit SQL beschäftigt, als es dich noch nicht gab.

Zitat:
Zitat von feuervogel Beitrag anzeigen
du vergleichst eine spalte mit einer menge aus ergebnistupeln, das kann nur schief gehen.
Du tust dasselbe. Ist das Prinzip an der Unterabfrage. Muss man eben nur dafür sorgen, dass Anzahl der Spalten gleich Anzahl der Elemente der Menge.

Fehlermeldung ist dieselbe wie nach deiner Abfrage:

#1064 syntax error near 'SELECT Hersteller FROM test

auf MySQL 4 und 5.
Mit Zitat antworten
  #5  
Alt 10.08.2007, 01:22:16
Benutzerbild von Socrates
Socrates Socrates ist offline
Member
 
Registriert seit: Jul 2006
Ort: Göttingen/Deutschland
Alter: 35
Beiträge: 586
AW: Unterabfrage und eine Tabelle

Abend!
Zitat:
Zitat von Morgan Beitrag anzeigen
MySQL kann kein PHP. Solltest du wissen, wenn du dich schon so lange mit MySQL beschäftigst. Hab mich übrigens mit SQL beschäftigt, als es dich noch nicht gab.
Diesen Einwurf muss man jetzt aber nicht verstehen? Oder?
Beziehst du dich dabei auf die Variable, die ich in meinem Code verwendet habe. Oder auf die Aussage, dass die MySQL-Abfrage ein Array zurückgiebt? Lese dir zu MySQL und PHP mal lieber das durch, denn wenn du dich so lange damit beschäftigt hättest, würdest du bei dir auf dem Monitor bestimmt keine Fehlermeldung lesen! Der Beitrag zu MySQL wurde von dem Herrn feuervogel verfasst.
MfG, Andy
__________________
BSc. Applied Computer Science
http://www.bornageek.com

Geändert von Socrates (10.08.2007 um 01:37:10 Uhr)
Mit Zitat antworten
  #6  
Alt 11.08.2007, 13:03:42
Morgan Morgan ist offline
Anfänger
 
Registriert seit: Aug 2007
Beiträge: 4
AW: Unterabfrage und eine Tabelle

MySQL kann kein PHP. Du sollst also kein PHP benutzen.

Ist schon klar, dass das passiert. Du schreibst PHP. Immer, wenn du eine Abfrage nicht formulieren kannst. stellst du eine vorbereitende query, liest das Ergebnis in ein PHP Array, bastelst daran herum und stellst weitere Abfragen. Bis das Ergebnis zusammengefrickelt ist. Das ist hier nicht die Aufgabe.

Ist es zu kompliziert ? Einfacheres Beispiel:

TABLE ort:

id1 ort1
1 o1
2 o2
3 o3
4 o3
5 o5
Um den Einwand vom Feuevogel erst einmal nicht berücksichtigen zu müssen, erklären wir id1 zum Primärschlüssel.

Aufgabe: Liefere mit EINER query alle id1 von ort, die denselben Wert von `ort1` tragen wie id1=3.

Geändert von Morgan (11.08.2007 um 13:13:18 Uhr)
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

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
tabelle mehrfach abrufen weko32^1 MySQLi/PDO/(MySQL) 5 21.01.2007 14:14:02
Datensatz in Tabelle einlesen nate10er PHP Grundlagen 0 07.04.2006 15:29:24
Tabelle vor handen ja/nein Bosko MySQLi/PDO/(MySQL) 1 27.12.2005 17:46:36
Problem dynamische Tabelle aber wie? Pixelschubser PHP für Fortgeschrittene und Experten 1 08.10.2005 18:16:24
MySQL - tabelle in tabelle Gweilo PHP für Fortgeschrittene und Experten 4 09.11.2002 18:41:57


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:38:57 Uhr.


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


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