php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.01.2012, 19:25  
Benutzer
 
Registriert seit: 06.12.2011
Beiträge: 34
PHP-Kenntnisse:
Anfänger
StefanM_ befindet sich auf einem aufstrebenden Ast
Standard Daten sortieren

Hallo,

Ich kämpfe gerade mit folgendem Problem:

Ich habe eine Datenbank in der habe ich zahlen abgespeichert:
Beispiel:
id = 1 wert = 50
id = 2 wert = 20
id = 3 wert = 30
id = 4 wert = 40

Nun habe ich einen Ausgangswert - zB 15 und suche Werte in der max. 15 vom Ausgangswert entfernt sind.

PHP-Code:
$max_entfernung="15";
$ausgangswert="15"
$abfrage=mysql_query("SELECT id, wert FROM tabelle");
while (
$erg=mysql_fetch_array($abfrage))
{
    
$entfernung=$ausgangswert-$abfrage["wert"];
    if (
$entfernung<=$max_entfernung)
    {
       echo 
$abfrage["id"] . " in " $entfernung;
    }

Wie kann ich die Ausgabe von id und entfernung nach der entfernung sortieren?

Das Beispiel ist stark vereinfacht und könnte natürlich direkt in der Abfrage nach dem Wert sortiert werden. Im konkreten Beispiel ist das allerdings nicht möglich, das sich da der Wert erst aus unterschiedlichen Einträgen der Tabellenzeile errechnet.
StefanM_ ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 18.01.2012, 19:27  
meikel
Gast
 
Beiträge: n/a
Standard

Code:
... order by id, entfernung
  Mit Zitat antworten
Alt 18.01.2012, 19:33  
Benutzer
 
Registriert seit: 06.12.2011
Beiträge: 34
PHP-Kenntnisse:
Anfänger
StefanM_ befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

Wo soll dieses Order by gesetzt werden?
StefanM_ ist offline   Mit Zitat antworten
Alt 18.01.2012, 19:35  
Erfahrener Benutzer
 
Registriert seit: 10.11.2011
Beiträge: 268
PHP-Kenntnisse:
Fortgeschritten
Solu ist zur Zeit noch ein unbeschriebenes Blatt
Standard

In der Query
PHP-Code:
SELECT idwert FROM tabelle ORDER BY identfernung 
Solu ist offline   Mit Zitat antworten
Alt 18.01.2012, 19:36  
Benutzer
 
Registriert seit: 06.12.2011
Beiträge: 34
PHP-Kenntnisse:
Anfänger
StefanM_ befindet sich auf einem aufstrebenden Ast
Standard

Die Entfernung berechne ich erst im Code kann ich diesen Wert in der Abfrage verwenden?
StefanM_ ist offline   Mit Zitat antworten
Alt 18.01.2012, 20:01  
Benutzer
 
Registriert seit: 06.12.2011
Beiträge: 34
PHP-Kenntnisse:
Anfänger
StefanM_ befindet sich auf einem aufstrebenden Ast
Standard

Vl noch zur Info:

Mein Ansatz wäre es gewesen, die Daten in ein Array zu schreiben und dort zu sortieren - da war ich auch schon recht nahe an der Lösung denke ich:

PHP-Code:
$entf = array($abfrage["id"] => $entfernung);
asort($entf);
foreach (
$entf as $key => $val) {
    echo 
"$key = $val\n";

Dieses Array wollte ich in der While Schleife befüllen und dann nach der Entfernung sortieren.
Anschließend eine neue Abfrage mit den sortierten IDs
StefanM_ ist offline   Mit Zitat antworten
Alt 18.01.2012, 20:10  
Erfahrener Benutzer
 
Registriert seit: 10.11.2011
Beiträge: 268
PHP-Kenntnisse:
Fortgeschritten
Solu ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Dieses Array wollte ich in der While Schleife befüllen und dann nach der Entfernung sortieren.
Anschließend eine neue Abfrage mit den sortierten IDs
Ist ja auch möglich aber alles andere als performant. Warum das "umwelzen", wenn es schon durch die richtige Query bewerkstelligt werden kann.
Solu ist offline   Mit Zitat antworten
Alt 18.01.2012, 20:13  
Benutzer
 
Registriert seit: 06.12.2011
Beiträge: 34
PHP-Kenntnisse:
Anfänger
StefanM_ befindet sich auf einem aufstrebenden Ast
Standard

Hi,

Ich schein es nicht wirklich zu verstehen.

Eingangs im Code Beispiel gibt es eine Abfrage. In dieser soll das ORDER BY id, entfernung gesetzt werden?

Klingt mir zwar unwahrscheinlich, versucht hab ichs...
Ergebnis:
Unbekanntes Tabellenfeld 'entfernung' in order clause
StefanM_ ist offline   Mit Zitat antworten
Alt 18.01.2012, 20:22  
Erfahrener Benutzer
 
Registriert seit: 07.12.2009
Beiträge: 843
PHP-Kenntnisse:
Fortgeschritten
chorn befindet sich auf einem aufstrebenden Ast
Standard

Code:
WHERE $ausganswert - wert <= $maxentfernung
Wobei du $ausganswert und $maxentfernung im Query ersetzt, "wert" zieht sich MySQL dann automatisch aus der Spalte. Rechnet MySQL alles automatisch, du musst ihm halt nur sagen, was er rechnen soll und womit.
chorn ist offline   Mit Zitat antworten
Alt 18.01.2012, 20:27  
Benutzer
 
Registriert seit: 06.12.2011
Beiträge: 34
PHP-Kenntnisse:
Anfänger
StefanM_ befindet sich auf einem aufstrebenden Ast
Standard

Das ist leider nicht möglich.
Im konkreten Beispiel sieht es so aus, in meiner Tabelle habe ich GPS Koordinaten (lat/lng) in 2 DB Feldern. Ich errechne jetzt die Entfernung vom Ausgangsort ($ausgangswert) zu den Datenbankeinträgen. Wenn die Entfernung kleiner der $maxentfernung ist, dann soll der Eintrag ausgegeben werden. Das funktioniert auch. Jetzt will ich die Ausgabe allerdings noch sortieren.
StefanM_ ist offline   Mit Zitat antworten
Antwort


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
Daten aus 2 Tabellen ausgeben und sortieren moprhoyz Datenbanken 1 06.03.2011 22:29
Tabelle soll nach X Einträgen neue Zeile anfangen raws18 PHP Einsteiger 6 10.02.2011 17:19
[Erledigt] Textdatenbank zeilenweise alphabetisch sortieren - Drop Down Menü alphabet UdoDirk PHP Tipps 2010 1 24.07.2010 10:45
Registrierte User sollen ihre Daten ändern können 54ch4 PHP Tipps 2009 17 14.03.2009 14:29
Scriptsuche Suche Script zum einpflegen von daten... derTorsten1909 Scriptbörse 17 10.01.2009 18:22
sortieren nach datum, daten vor 1.1.1970 moose Datenbanken 2 21.07.2008 10:50
Daten beliebig sortieren Das Devil Datenbanken 7 29.03.2008 17:58
Daten aus XML sortieren GSJLink HTML, Usability und Barrierefreiheit 13 09.12.2007 18:24
Mehrere Arrays unterschiedlicher Größe kombinieren querfisch PHP Tipps 2007 9 31.03.2007 21:34
MYSQL daten bei der ausgabe sortieren DrWeb Datenbanken 2 29.07.2006 10:09
Daten eintragen und auslesen Rettungsdackel Datenbanken 0 14.09.2005 16:29
Daten aus File sortieren Simon9990 PHP Tipps 2005-2 12 26.07.2005 09:06
Daten in Datenbank ändern PHP Tipps 2005 3 27.01.2005 14:40
sortieren und ordnen von daten aus DB?! PHP Tipps 2004 2 05.11.2004 08:58
array_push nur in begrenzter Anzahl ausführen ? PHP Tipps 2004 2 07.09.2004 09:05

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php daten sortieren

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:59 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