Gegen Bilderklau - Das Original (https://www.gegen-bilderklau.net/index.php)
- Design, Website, Copyright (https://www.gegen-bilderklau.net/board.php?boardid=80)
--- Homepagehilfe (https://www.gegen-bilderklau.net/board.php?boardid=27)
---- Homepagehilfe - Archiv (https://www.gegen-bilderklau.net/board.php?boardid=139)
----- Abfrage mit subselect (https://www.gegen-bilderklau.net/thread.php?threadid=182897)
Geschrieben von Nanni am 01.01.2012 um 14:04:
Abfrage mit subselect
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
Geschrieben von Oli am 01.01.2012 um 14:23:
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
Geschrieben von Nanni am 01.01.2012 um 14:31:
Ah, das erklärt dass die ' blöd waren
Ohne hab ich es allerdings auch schon probiert und es tut sich genauso wenig :/
Geschrieben von Oli am 01.01.2012 um 14:41:
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)
Geschrieben von Nanni am 01.01.2012 um 15:18:
Ah, habs geschafft
Danke Oli (:
Forensoftware: Burning Board, entwickelt von WoltLab GmbH