Abfrage mit subselect |
Nanni

Mitglied
 

Dabei seit: 25.01.2007
Beiträge: 11.260
Herkunft: Wien Name: nennt mich Nanni
 |
|
Hey!
Also... das Problem ist, ich möchte mir automatisch die Kosten der Pferde bei uns ausrechnen lassen - der Preis variert je nach dem ob das Pferd in einer Box, im Offenstall,... steht. Bei meinen eigenen Pferden hab ich die Abfrage
php: |
1:
|
$box = mysql_query("SELECT ID FROM Allgemein WHERE Stall = 'Box' AND Besitzer = 'Nanni'"); |
|
Wie aber mache ich das für die Mitglieder? In der Pferdetabelle sind alle Pferde eingetragen, welche einmal am Kronenhof standen oder stehen, also auch welche die weder mir, noch Mitgliedern gehören. Google hat mir subselects ausgespuckt, weshalb ich jetzt so eine Abfrage habe:
php: |
1:
2:
|
$einst = mysql_query("SELECT ID FROM Allgemein WHERE Besitzer = '(SELECT Name FROM Mitglieder AND Name != 'Nanni')' AND Stall = 'Box'");
$einstanzahl = mysql_num_rows($einst); |
|
Als Fehlermeldung kommt:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/www/cwcity/hosting/k/r/kronenhof/htdocs/Mitglieder/ausrechnen.php on line 66
Vielleicht kann mir ja jemand sagen wie ich die Abfrage richtig schreibe, ich hab keine Ahnung wie ich es noch schreiben könnte :/
LG Nanni
__________________
|
|
01.01.2012 14:04 |
|
|
Oli
Server-Administrator
    
Dabei seit: 13.06.2010
Beiträge: 1.540
 |
|
RE: Abfrage mit subselect |
 |
Hi,
Zitat: |
Original von Nanni
php: |
1:
2:
|
$einst = mysql_query("SELECT ID FROM Allgemein WHERE Besitzer = '(SELECT Name FROM Mitglieder AND Name != 'Nanni')' AND Stall = 'Box'");
$einstanzahl = mysql_num_rows($einst); |
|
|
ohne die Anführungszeichen. Jetzt gerade versuchst du eine Zeile zu finden, bei der '(SELECT Name FROM Mitglieder AND Name != ' in Besitzer steht. Das müsste funktionieren, ist aber nicht das, was du möchtest.
Der Fehler tritt dagegen auf, weil du Anführungszeichen in Anführungszeichen hast und das SQL nicht ausgewertet werden kann.
WHERE Besitzer = '(SELECT Name FROM Mitglieder AND Name != 'Nanni')'
Zitat: |
Original von Nanni
Als Fehlermeldung kommt:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/www/cwcity/hosting/k/r/kronenhof/htdocs/Mitglieder/ausrechnen.php on line 66
|
Du solltest dir die Fehlermeldungen von MySQL anzeigen - da steht dann nämlich auch in etwa drin, was falsch ist. Beispiel:
php: |
1:
2:
3:
4:
5:
|
$result = mysql_query ( ... );
if ( !$result ) echo mysql_error(); // Query fehlgeschlagen, MySQL-Fehler ausgeben
else {
// was auch immer du tun wolltest, wenn der Query erfolgreich war
} |
|
Zitat: |
Original von Nanni
Vielleicht kann mir ja jemand sagen wie ich die Abfrage richtig schreibe, ich hab keine Ahnung wie ich es noch schreiben könnte :/ |
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
|
SELECT
ID
FROM
Allgemein
WHERE
Besitzer = (
SELECT
Name
FROM
Mitglieder
AND
Name != 'Nanni'
)
AND
Stall = 'Box' |
|
Erklärung steht oben. Du kannst das natürlich auch wieder in eine Zeile zusammenfassen, aber so liest es sich besser
.
LG
|
|
01.01.2012 14:23 |
|
|
Nanni

Mitglied
 

Dabei seit: 25.01.2007
Beiträge: 11.260
Herkunft: Wien Name: nennt mich Nanni
Themenstarter
 |
|
Ah, das erklärt dass die ' blöd waren
Ohne hab ich es allerdings auch schon probiert und es tut sich genauso wenig :/
__________________
|
|
01.01.2012 14:31 |
|
|
Oli
Server-Administrator
    
Dabei seit: 13.06.2010
Beiträge: 1.540
 |
|
Zitat: |
Original von Nanni
Ah, das erklärt dass die ' blöd waren
Ohne hab ich es allerdings auch schon probiert und es tut sich genauso wenig :/ |
Besitzer = (Subquery mit einem Ergebnis)
Besitzer IN (Subquery mit mehreren Ergebnissen)
|
|
01.01.2012 14:41 |
|
|
Nanni

Mitglied
 

Dabei seit: 25.01.2007
Beiträge: 11.260
Herkunft: Wien Name: nennt mich Nanni
Themenstarter
 |
|
Ah, habs geschafft
Danke Oli (:
__________________
|
|
01.01.2012 15:18 |
|
|
|
Impressum
|