Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Nach Zahl ordnen [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Nach Zahl ordnen


 
Muesli
24-08-2003, 16:39 
 
Hallo,

hab ein Tabelle mit "Name" und "km"?
Möchte die Namen nach "km" orden lassen. Also erst die Namen mit 1200km, dann mit 1145 etc...
Wie geht das?

MIt desc/asc hat er es immer nur nach den ersten Zahlen gemacht: 1, 1232, 3, 3455, etc.

Es soll aber der Grösse nach gehen...


Philipp

 
kapitaeniglo
24-08-2003, 16:44 
 
dann aender mal das feld von "km" auf den typ int ...

weil das hoert sich an , als haetteest du es als char/varchar gespeichert


gruss
iglo


btw.:
solltest mal auf www.mysql.com vorbeischauen und dort nach den typen
(int, tinyint etc. ) schauen, um rauszufinden , womit du den wenigsten speicherbedarf hast ... weiss ja net wie gross deine zahlen werden ...

 
Muesli
24-08-2003, 16:48 
 
Danke, das wars!! :huep:

 
kapitaeniglo
24-08-2003, 16:49 
 
np ;)

so nen fehler ist mir auch mal am anfang mit mysql passiert ;)

gruss
iglo

 
Muesli
24-08-2003, 19:04 
 
Es klappt, aber er gibt immer nur Werte aus, die kleiner als tausend sind bzw. weniger als 4 Stellen haben.
Wenn ich Order by desc weglasse, ist alles da, komischerweise, mit desc nur alles unter tausend...:confused:

 
kapitaeniglo
24-08-2003, 19:54 
 
´hmmmm ... kannste mal deine dbstruktur posten ...

wenn du phpmyadmin hast, kannste die recht leicht exportieren ...

also bei mir klappt das mit DESC auch bei groesseren zahlen recht gut ;)

 
wahsaga
24-08-2003, 20:38 
 
Original geschrieben von Muesli
Es klappt, aber er gibt immer nur Werte aus, die kleiner als tausend sind bzw. weniger als 4 Stellen haben.
stehen denn in der tabelle nach dem konvertieren des spaltentyps noch alle werte drin?

hast du eventuell für den spaltentyp einen zu kleinen int-typ gewählt?
standen vorher punkte als tausender-trennzeichen in den zahlen?

 
Muesli
24-08-2003, 21:05 
 
Hi,

Struktur der DB:

CREATE TABLE wsvg_jug_statistik (
id int(11) NOT NULL auto_increment,
name text NOT NULL,
km int(11) DEFAULT '0' NOT NULL,
jahr varchar(5) NOT NULL,
PRIMARY KEY (id)
);

Anders konnte ich es nicht ausgeben lassen mit phpmyadmin


Die Abfrage:
$Query = "SELECT * FROM wsvg_jug_statistik WHERE jahr='$jahr' ORDER BY km DESC";


Die Variable Jahr wird mit dem Aufruf der Seite übergeben:

index.php4?content=statistik.php4&aktion=show&jahr=2003


Dazu muss ich noch sagen, dass die Abfrage in der Funktion show steht.

 
Muesli
24-08-2003, 21:08 
 
Original geschrieben von wahsaga
stehen denn in der tabelle nach dem konvertieren des spaltentyps noch alle werte drin?

hast du eventuell für den spaltentyp einen zu kleinen int-typ gewählt?
standen vorher punkte als tausender-trennzeichen in den zahlen?

ja, werte waren noch da, hab int gewählt, das müsste ja reichen, trennzeichen waren keine da.

Sowas ist mir noch nie passiert :dontknow:

 
kapitaeniglo
25-08-2003, 00:20 
 
keine ahnung was bei dir net klappt ...

hab eben deine tabellenstruktur bei mir eingefuegt ... 5 testdatensaetze geschreiben (zu mehr hatte ich grad keine lust)
und in phpmyadmin eben nen statemant erstellt ...


SELECT *
FROM `wsvg_jug_statistik`
WHERE jahr = 2003
ORDER BY km DESC;



und er hat die richtig sortiert

also ich kann dir da auch nciht weiterhelfen ... sorry

gruss
iglo

 
Muesli
25-08-2003, 14:00 
 
Hi,

also, ich hab jetzt den Wert, der grösser ist als Tausend rausgeholt und dabei gemerkt, dass es garnicht an der Grösse der Zahl liegt.
Ich habe insgesamt 19 Einträge für das Jahr 2001 in der DB.
Den Tausender Wert hab ich gegen 550 ersetzt, und siehe da, er zeigt den Namen an, aber dafür fehlt ein anderer.
Er zeigt also immer nur 18 statt 19 an, egal welche Zahl der Name hat.

Ich habe weder einen LIMIT Befehl o.ä. in meiner Abfrage.

Ich versuch heute Abend mal, MySQL neuzuinstallieren und melde mich dann nochmal...

Philipp :dontknow:

 
mrhappiness
25-08-2003, 14:06 
 
wenn du die abfrage in phpmyadmin mac hst, wieviel einträge bekommst du dann?
18 oder 19?

wie sieht dein php-skript aus?

 
Muesli
25-08-2003, 20:49 
 
In phpmyadmin sehe ich alle 19 Einträge.

Script:

function show()
{
include("config.inc.php4");

//Auslesen der Datenbank.

$Query = "SELECT * FROM wsvg_jug_statistik WHERE jahr='2001' ORDER BY km DESC";
if (!($ergebnis = mysql_query ($Query, $verbindung))) {
echo("Die Abfrage ist fehlgeschlagen!<P>");
echo("Ihre Abfrage $Query war nicht erfolgreich!<P>");
exit();
}

//Ausgabe der Daten.

while ($zeile = mysql_fetch_object ($ergebnis)) {


echo("<table width=100% border=0 cellspacing=0 cellpadding=0 align=center>
<tr>
<td> <br>
<table width=95% border=0 cellspacing=0 cellpadding=0 align=center>
<tr>
<td> <font size=1 face=Verdana, Arial, Helvetica, sans-serif color=#000000><b><font size=2 color=#006600>S</font><font color=#006600>tatistik</font></b></font>
<hr align=center width=100% size=1 noshade>
<table width=100% border0 cellspacing=2 cellpadding=2>
<tr>
<td width=40% ><b><font face=Verdana, Arial, Helvetica, sans-serif size=2 color=#006600>Name</font></b></td>
<td width=61% ><b><font face=Verdana, Arial, Helvetica, sans-serif size=2 color=#006600>Kilometer</font></b></td>
</tr>");

while ($zeile = mysql_fetch_object ($ergebnis)) {

echo("<tr>
<td width=40% ><font face=Verdana, Arial, Helvetica, sans-serif arial,=arial, helvetica,=helvetica, sans-serif=sans-serif size=2 color=#006600>$zeile->name</font></td>
<td width=61% ><font face=Verdana, Arial, Helvetica, sans-serif arial,=arial, helvetica,=helvetica, sans-serif=sans-serif size=2 color=#006600>$zeile->km</font></td>
</tr>");
}
echo("</table>
<br>
<table width=100% border=0 cellspacing=0 cellpadding=0 align=center>
<tr>
<td>
<div align=center><font color=#006600 face=Verdana, Arial, Helvetica, sans-serif size=2>-
<a class=main href=?content=statistik.php4&aktion=auswahl>zur&uuml;ck</a> -</font></div>
</td>
</tr>
</table>
</td>
</tr>
</table>

<p>&nbsp;</p></td>
</tr>
</table>");
}

//Bestehende Verbindung beenden.
mysql_free_result($ergebnis);
mysql_close($verbindung);
}

 
mrhappiness
25-08-2003, 20:53 
 
wozu zweimal while ($zeile = mysql_fetch_object ($ergebnis)) ?

mach das erste raus

 
Muesli
25-08-2003, 21:01 
 
Asche auf mein Haupt, ich hab das gestern Abend schon raus gemacht, aber anscheinend nicht gespeichert. :kotz:

Funktioniert jetzt, danke!!!!!!!!

Philipp

- -

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