php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 27.12.2004, 23:07  
Ypsillon
Gast
 
Beiträge: n/a
Standard Seit 5 Stunden versuch ichs SQL MONSTER!

Hi,

seit 5 Stunden versuche in den fehler in diesem SQL Monster zu finden:
Code:
select user.usernick, user.UserPlz, user.UserOrt,user.UserCapital, user.UserSex, user.UserGDatum, user.UserPhoto, user.UserAnzeigenText, user.UserRegistertimespamp, user.UserLastLogin, capital.capital, capital.land, relationship.relationship from `user` INNER JOIN capital ON (user.UserCapital = capital.ID) INNER JOIN relationship ON (user.UserRelationship = relationship.ID) WHERE UserSex ='2' AND (UserPartner = '1' OR UserPartner = '3') AND UserGDatum <= '1986-12-27' AND UserGDatum >='1974-12-27' AND `UserPlz` LIKE '71120' AND ( 6370 * (1.5707963267949 - ATAN((SIN( * 0.017453292519943) * Sin(breite * 0.017453292519943) + Cos( * 0.017453292519943) * Cos(breite * 0.017453292519943) * COS(( - laenge)*0.017453292519943)) / SQRT( 1 - POW( (SIN(*0.017453292519943) * Sin(breite * 0.017453292519943) + Cos( * 0.017453292519943) * Cos(breite * 0.017453292519943) * COS( ( - laenge) * 0.017453292519943)),2)))) ) AS km FROM geodb_locations HAVING km <= 1200 ORDER BY user.UserLastLogin DESC limit 0,10
Der fehler muss Beindungsteil liegen *grrrrrrrr*

Wer kann da helfen? *verzweifel*

Marc
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 27.12.2004, 23:10  
Ypsillon
Gast
 
Beiträge: n/a
Standard

Oder Anders:

Wie verbinde ich diesen Befehl:
Code:
select user.usernick, user.UserPlz, user.UserOrt,user.UserCapital, user.UserSex, user.UserGDatum, user.UserPhoto, user.UserAnzeigenText, user.UserRegistertimespamp, user.UserLastLogin, capital.capital, capital.land, relationship.relationship from `user` INNER JOIN capital ON (user.UserCapital = capital.ID) INNER JOIN relationship ON (user.UserRelationship = relationship.ID) WHERE UserSex ='2' AND (UserPartner = '1' OR UserPartner = '3') AND UserGDatum <= '1986-12-27' AND UserGDatum >='1974-12-27' AND `UserPlz` LIKE '71120' ORDER BY user.UserLastLogin DESC limit 0,10
mit diesem:
Code:
$abfrage = "
SELECT *,
(
$Erdradiuskm *
($pi2 - ATAN((SIN($BREITE * $pi180) * Sin(breite * $pi180) + Cos($BREITE
* $pi180) * Cos(breite * $pi180) * COS(($LAENGE - laenge)*$pi180)) /
SQRT( 1 - POW( (SIN($BREITE*$pi180) * Sin(breite * $pi180) + Cos($BREITE
* $pi180) * Cos(breite * $pi180) * COS( ($LAENGE - laenge) *
$pi180)),2))))
)
AS km,name
FROM geodb_locations
HAVING km <= $RADIUS
ORDER BY km
";


???
 
Alt 28.12.2004, 00:00  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Mal eine Gegenfrage, weil ich noch keine Lust hatte, mich in das ganze Ding reinzudenken: Wieso nutzt du MySQL für derart "komplexe" Berechnungen?

btw. Ohne Erläuterung geht das schlecht. Woher soll ich wissen, was du da eigentlich machen willst bzw. berechnen willst?
mepeisen ist offline  
Alt 28.12.2004, 00:05  
Ypsillon
Gast
 
Beiträge: n/a
Standard

Na weil ich nich jeden Wert aus der DB holen will um ihn zu vergleichen!

ein bisl vereinfacht
Code:
select user.usernick, user.UserPlz, user.UserOrt,user.UserCapital, user.UserSex, user.UserGDatum, user.UserPhoto, user.UserAnzeigenText, user.UserRegistertimespamp, user.UserLastLogin, capital.capital, capital.land, relationship.relationship from `user` INNER JOIN capital ON (user.UserCapital = capital.ID) INNER JOIN relationship ON (user.UserRelationship = relationship.ID) WHERE UserSex ='2' AND (UserPartner = '1' OR UserPartner = '3') AND UserGDatum <= '1986-12-28' AND UserGDatum >='1974-12-28' AND `UserPlz` LIKE '71120' AND (6370 * (1.5707963267949 - ATAN((SIN(48.7167 * 0.017453292519943) * Sin(UserOrtBreite * 0.017453292519943) + Cos(48.7167 * 0.017453292519943) * Cos(UserOrtBreite * 0.017453292519943) * COS((8.89333 - UserOrtLaenge)*0.017453292519943)) / SQRT( 1 - POW( (SIN(48.7167*0.017453292519943) * Sin(UserOrtBreite * 0.017453292519943) + Cos(48.7167 * 0.017453292519943) * Cos(UserOrtBreite * 0.017453292519943) * COS( (8.89333 - UserOrtLaenge) * 0.017453292519943)),2))))) AS km HAVING km <= 30 ORDER BY UserLastLogin DESC limit 0,10
läuft aber immer noch nicht!

Marc
 
Alt 28.12.2004, 00:10  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Dann wird deine Datenbank aber viel zu tun haben. Wenn sie eine Gewerkschaft hätte, würde sie zum Generalstreik ausrufen

Inwiefern läuft das nicht? Welchen SQL- Fehler hast du? Des weiteren ist die Hälfte deiner Where-Klausel konstant. Das kann man einmal vorberechnen und fertig berechnet in das SQL- Script einbauen.
mepeisen ist offline  
Alt 28.12.2004, 00:13  
Ypsillon
Gast
 
Beiträge: n/a
Standard

Ich kann das in dem Fall nicht programmatisch in PHP lösen, da ich sonst jede zeile aus der DB holen muss, und das ist definitv mehr arbeit für die DB und unsinnig.

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Programme\apachefriends\xampp\xampp\htdocs\proj ect\blocks\peoplesearchresults.php on line 155

Danke dir!

Marc
 
Alt 28.12.2004, 00:14  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Nett. Das sagt gar nichts. Poste mal die Script- zeilen, in denen du den Select abschickst und mysql_num_rows aufrufst und alles was dazwischenliegt.


SIN(48.7167 * 0.017453292519943) ist konstant.
Cos(48.7167 * 0.017453292519943) ist konstant
SIN(48.7167*0.017453292519943) ist wieder konstant
Cos(48.7167 * 0.017453292519943) ist wieder konstant.

und mit etwas Mathematik kriegst du die Formel dann sogar noch vereinfacht
mepeisen ist offline  
Alt 28.12.2004, 00:36  
Gast
 
Beiträge: n/a
Standard

gib den Befehl einfach mal im phpmyadmin SQLFeld ein, dann bekommst du eine bessere Fehlermeldung, mit der man wesentlich mehr anfangen kann.

Vermutlich wird sowas wie: u have an error near "AUSDRUCK" kommen, dann liegt der Fehler meist vor dem "AUSDRUCK"
 
Alt 28.12.2004, 00:57  
Ypsillon
Gast
 
Beiträge: n/a
Standard

Lösung:
Code:
select ( 6370 * (1.5707963267949 - ATAN((SIN(48.7167 * 0.017453292519943) * Sin(user.UserOrtBreite * 0.017453292519943) + Cos(48.7167 * 0.017453292519943) * Cos(user.UserOrtBreite * 0.017453292519943) * COS((8.89333 - user.UserOrtLaenge)*0.017453292519943)) / SQRT( 1 - POW( (SIN(48.7167*0.017453292519943) * Sin(user.UserOrtBreite * 0.017453292519943) + Cos(48.7167 * 0.017453292519943) * Cos(user.UserOrtBreite * 0.017453292519943) * COS( (8.89333 - user.UserOrtLaenge) * 0.017453292519943)),2)))) ) AS km, user.usernick, user.UserPlz, user.UserOrt,user.UserCapital, user.UserSex, user.UserGDatum, user.UserPhoto, user.UserAnzeigenText, user.UserRegistertimespamp, user.UserLastLogin, capital.capital, capital.land, relationship.relationship from `user` INNER JOIN capital ON (user.UserCapital = capital.ID) INNER JOIN relationship ON (user.UserRelationship = relationship.ID) WHERE (UserSex ='1' OR UserSex ='2') AND (UserPartner = '2' OR UserPartner = '3') AND UserGDatum <= '1990-12-28' AND UserGDatum >='1947-12-28' HAVING km <= 10 ORDER BY UserLastLogin DESC limit 0,10
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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 are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Tage, Stunden und Minuten berechnen christian1112 PHP Tipps 2008 10 02.03.2009 12:38
[Erledigt] Sekunden in Tage, Stunden, Minuten und Sekunden umrechnen PHP Tipps 2004 14 27.10.2008 23:50
ip bei counter nach 24 stunden löschen? litterauspirna PHP Tipps 2008 6 29.07.2008 19:34
Datum ( date ) 9 Stunden zurück? Kori PHP Tipps 2007 14 21.01.2007 16:50
wie alle 3 stunden ein script aufrunfen janni PHP Tipps 2007 1 25.12.2005 17:45
[Erledigt] Zeit innerhalb der letzten 24 Stunden PHP Tipps 2007 7 18.12.2005 15:52
Unix Timestamp von 12 Stunden fehlerhaft PHP Tipps 2007 3 12.12.2005 14:39
Notebooks mit min 10 Stunden Akkulaufzeit? Off-Topic Diskussionen 3 12.10.2005 20:39
gleichzeitig mehrere Einträge Sonja PHP Tipps 2005-2 13 14.08.2005 17:06
Stunden seit dem letztem Wert zählen,rest ausgeben[gelößt] PHP Tipps 2005-2 2 29.07.2005 11:14
Suche script und das jetzt schon seit 3 Stunden :-(( tm-net Beitragsarchiv 12 27.02.2005 23:11
sekunden in tage und stunden wandeln janni PHP Tipps 2005 3 15.01.2005 10:47
minuten und sekunden bzw stunden ^^ Skazi PHP Tipps 2004-2 5 06.11.2004 16:23
Counter zeigt nach ca. 2-3 Stunden fehler an PHP Tipps 2004 2 26.08.2004 20:08
Minuten als Stunden mit Bruch darstellen PHP Tipps 2004 1 04.06.2004 12:10

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
usererotik

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




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.