ID wird nicht richtig sortiert

phico

Grünschnabel
Hallo, ich hab mir ein kleines Newsscript geschrieben.
Ich habe es aber so gemacht, das die Id nicht automatisch generiert wird, sondern, das ich vorher eine abfrage mach, welches die höchste id sucht, und dann einen höher setzt.
Das klappte bei testen auch wunderbar. Nur jetzt habe ich mal paar mehr News einegtragen.
Leider habe ich nun bemerkt, das die Ids nicht richtig sortiert werden.
Sie werden nicht so wie es normal ist
(8,9,10,11,12) sonder so ---> 1,10,2,20,3 <---- sortiert.
Weiß jemand, wie ich das ändern kann
 
Hi!

Ich habe die Frage nicht ganz verstanden. Stehen die IDs bei dir in einer DB oder in einem Array? Oder habe ich etwas übersehen ?!

Mfg, Hauke
 
Das ist der Fall, weil der Datentyp des Feldes der ID in der Datenbank nicht numerisch (Integer, Long etc.) ist. Einfach einen numerischen Datentyp zuweisen und schon sollte alles in Ordnung sein.
 
Hey danke, es !
Das war ja einfach.
Hab schon ziemlich lange danach Foren durchsucht und niergens was gefunden^^
 
Ok, das klappt ja nun, aber jetzt hab ich noch ein Problem.
Und zwar, will ich eine Datei umbenenne, diese ist aber nicht im gleichen Ordner wie die Datei die das script enhält


PHP:
$dir="newseintraege";    
$file="/".$dir."/".$seite1;
$file2="/".$dir."/".$seite2;
rename($file,$file2);

Da kommt jedoch der Fehler::
SecureSSI: Das Script (xxxx)) hat versucht ausserhalb von ihrem Userverzeichniss auf die Datei /newseintraege/20050325-Hallo_Leute-2.php zuzugreifen.
Dies ist nicht erlaubt!

Warning: rename(): Sicherheitsverletzung: in XXXXX on line 89

in Line 89 steht
PHP:
rename($file,$file2);

Hat jemand ne Idee, was ich falsch gemacht haben könnte?
 
hi,

mit den Befehl
Code:
$file="/".$dir."/".$seite1;
greifst du auf das Wuzel/Root-Verzeichnis zu, weil du ein "/" am anfang stehen hast.

Weil du aber, wie ich annehme, nur ein Webspace hast, darfst du nur auf deinem Verzeichnis zugreifen. versuch mal, das "/" am anfang wegzumachen.
 
Hey, danke. Es funktioniert und ich war der Meinung, das ich es sogar ausprobiert hatte.
Aber da muss ich mich wohl geirrt haben
 
Nun hab ich leider noch ein kleines Problem.
Und zwar will ich ja .php Datein erstellen. Diese werden automatisch noch dem Titel der Seite benannt.
Nur wenn jetzt der Titel
"Endlich Urlaub" heißt, will ich, das die Zeichen entfehrnt werden. Dies soll nich nur beim ausrufungszeichen sein, sondern bei alles sonderzeichen, sodass es nur noch buchstaben und zahlen gibt.

Wie kann ich das hinbekommen?
 
gugg dir mal die die preg_replace() Funktion an...
im ersten Kommentar unten steht folgende Funktion:
PHP:
<? php

function makeUrlFriendly($input) {
   // Replace spaces with underscores
   $output = preg_replace("/\s/e" , "_" , $input);
  
   // Remove non-word characters
   $output = preg_replace("/\W/e" , "" , $output);
  
   return $output;
}

// Example useage:
echo makeUrlFriendly("I'm some really long title !");  // Gives: Im_some_really_long_title_1
echo makeUrlFriendly("Weird chars too: ??? &amp;");  // Gives: Weird_chars_too__amp

?>
Vielleicht hilft dir das schon weiter... :)
 
Das werd ich gleich mal testen, aber es sied sehr gut aus^^.
Hatte nur str_replace(" ","_",$titel); gefunden. Was ist da der Unterschied zu preg_replace("/\W/e" , "" , $output);. Hätte ich in str_replace(" ","_",$titel) auch "/\W/e" reinschreiben können, und es hätte die Sonderzeichen raus gemacht?
 
Zurück