Datenbank Satz sortieren

MySQL, PostgreSQL, SQLite
mg115301
Posts: 80
Joined: 2002-12-26 23:59

Datenbank Satz sortieren

Post by mg115301 » 2003-01-30 13:59

Hi!
Ich habe eine Seite mit Post Nuke erstellt.
Und habe das Sektions Script abgeändert, für meine Page.
Ein Problem habe ich. Die Sortierung ist nicht so, wie ich sie haben möchte.

http://john-sinclair.info/modules.php?o ... file=index

Kann mir einer mal erklären, wie ich das nach secid sortieren kann?
Ich bekomme das mit mysql gui nicht hin. UNd so viel Ahnung habe ich nicht.
Ich möchte nur bestimmte Sachen nach secid sortieren.

Ã?ber Hilfe wäre ich sehr Dankbar.

tora
Posts: 12
Joined: 2002-10-10 13:53

Re: Datenbank Satz sortieren

Post by tora » 2003-01-31 09:33

Kannst du mal dein Skript posten, weil die Sortierung sieht mehr sehr nach einer Ascii Sortierung aus. Ist die ID vom Typ Integer in der DB?

mg115301
Posts: 80
Joined: 2002-12-26 23:59

Re: Datenbank Satz sortieren

Post by mg115301 » 2003-01-31 16:58

Also das ganze script ist sehr lang und gross.
Wenn du mir deine Mailadresse gibst, schicke ich es dir per Mail.
Einige hatten mir gesagt, ich solle es nach pn_secid sortieren.
Das habe ich auch in dem mysql gui versucht. Aber ich glaube man muss das woanders angeben.
Hier habe ich mal die sql Datenbank gepostet. So sieht die aus.

Das Script kann ich per Mail schicken. Hier meine Adresse:

mike@guwak.de

# --------------------------------------------------------

#
# Tabellenstruktur für Tabelle `nuke_roman`
#

CREATE TABLE nuke_roman (
pn_secid int(11) NOT NULL auto_increment,
pn_secname varchar(40) NOT NULL default '',
pn_image varchar(50) NOT NULL default '',
PRIMARY KEY (pn_secid)
) TYPE=MyISAM;

#
# Daten für Tabelle `nuke_roman`
#

INSERT INTO nuke_roman VALUES (1, '1 - 100', 'transparent.gif');
INSERT INTO nuke_roman VALUES (2, '101 - 200', 'transparent.gif');

----------------------------------------------------------

# --------------------------------------------------------

#
# Tabellenstruktur für Tabelle `nuke_romancont`
#

CREATE TABLE nuke_romancont (
pn_artid int(11) NOT NULL auto_increment,
pn_secid int(11) NOT NULL default '0',
pn_title text NOT NULL,
pn_content text NOT NULL,
pn_counter int(11) NOT NULL default '0',
pn_language varchar(30) NOT NULL default '',
PRIMARY KEY (pn_artid)
) TYPE=MyISAM;

#
# Daten für Tabelle `nuke_romancont`
#

INSERT INTO nuke_romancont VALUES (1, 1, '1. Im Nachtclub der Vampire', '<b>Erschienen: 17.01.1978</b>rn<br>rn<b>Autor: Helmut Rellergerd</b>rn<br>rn<br>rnDrei Vampir-Schwestern wollen in ihrer Horror-Bar »Shocking Palace« in Soho Blutfeste feiern. Sie machen zwei Männer zu Vampiren, werden jedoch von der jungen Deutschen Marina Held beobachtet. Sie alarmiert John, den sie auf ihrem Flug von Deutschland kennengelernt hat. John rettet Marina, die von den Vampirinnen aufgespürt wird, und hebt das Vampirnest aus. Er tötet zwei von ihnen mit Eichenbolzen aus der Druckluftpistole und eine durch fließendes Wasser aus einem Schlauch.rn<br>rn<br>rn<center><img src="images/romane/1_auflage/1.jpg">rn</center>', 14, '');
INSERT INTO nuke_romancont VALUES (2, 1, '2. Die Totenkopf-Insel', '<b>Erschienen: 31.01.1978</b>rn<br>rn<b>Autor:

jtb
Posts: 599
Joined: 2002-08-18 16:41
Location: Darmstadt

Re: Datenbank Satz sortieren

Post by jtb » 2003-01-31 22:48

du musst ein order by im entsprechendem SQL-Statement in der index.php des Modules roman machen.. suche mal nach select in der Datei und poste die entsprechenden Stellen

mg115301
Posts: 80
Joined: 2002-12-26 23:59

Re: Datenbank Satz sortieren

Post by mg115301 » 2003-02-01 00:17

Leider habe ich dort mehrere mit select gefunden.
Hier sind sie:



$column = &$pntable['roman_column'];
$result = $dbconn->Execute("SELECT $column[secid], $column[secname], $column[image]
FROM $pntable[roman] ORDER BY $column[secname]");

$sitename = pnConfigGetVar('sitename');

----------

include ('header.php');
OpenTable();

$column = &$pntable['roman_column'];
$result = $dbconn->Execute("SELECT $column[secname]
FROM $pntable[roman]
WHERE $column[secid]=".pnVarPrepForStore($secid)."");
list($secname) = $result->fields;
$result->Close();

-----------

$column = &$pntable['romancont_column'];
$result = $dbconn->Execute("SELECT $column[artid], $column[secid], $column[title],
$column[content], $column[counter]
FROM $pntable[romancont]
WHERE $column[secid]=".pnVarPrepForStore($secid)." $querylang");
$column = &$pntable['roman_column'];
$result2 = $dbconn->Execute("SELECT $column[image]
FROM $pntable[roman]
WHERE $column[secid]=".pnVarPrepForStore($secid)."");
list($image) = $result2->fields;

---------

$column = &$pntable['romancont_column'];
$result = $dbconn->Execute("SELECT $column[artid], $column[secid], $column[title],
$column[content], $column[counter]
FROM $pntable[romancont]
WHERE $column[artid]=".pnVarPrepForStore($artid)."");
list($artid, $secid, $title, $content, $counter) = $result->fields;

$column = &$pntable['roman_column'];
$result2 = $dbconn->Execute("SELECT $column[secid], $column[secname]
FROM $pntable[roman] WHERE $column[secid]=".pnVarPrepForStore($secid)."");
list($secid, $secname) = $result2->fields;
$words = sizeof(explode(" ", $content));
echo "<center>";
OpenTable();

----------

$column = &$pntable['romancont_column'];
$result=$dbconn->Execute("SELECT $column[title], $column[content] , $column[secid]
FROM $pntable[romancont]
WHERE $column[artid]=".pnVarPrepForStore($artid)."");
list($title, $content, $secid) = $result->fields;
$column = &$pntable['roman_column'];
$result2 = $dbconn->Execute("SELECT $column[secname]
FROM $pntable[roman]
WHERE $column[secid]=".pnVarPrepForStore($secid)."");
list($secname) = $result2->fields;
if (!pnSecAuthAction(0, 'Roman::Article', "$title:$secname:$artid", ACCESS_READ)) {
echo _SECTIONSARTICLENOAUTH;
CloseTable();
include 'footer.php';
return;

-----------

jtb
Posts: 599
Joined: 2002-08-18 16:41
Location: Darmstadt

Re: Datenbank Satz sortieren

Post by jtb » 2003-02-01 09:49

gut, da du den Code nicht kennst, gibt es zwei schnelle Möglichkeiten die zu veränderende Stelle herauszufinden:
  • du baust einzeln nacheinander jeweils einen Fehler in das SQL-Statement ein und schaust nach, ob die zu veränderende Stelle noch funktioniert. Falls nicht, hast du das SQL-Statement gefunden, falls doch, mache die Ã?nderung rückgängig und gehe zum nächsten Statement..
  • Falls die Ã?berschrift "Hier sind alle Romane aufgelistet bei john-sinclair.info." nicht über jeder Seite steht, suche nach dem Text in der Datei oder der Ersetzung durch die lang-File (beginnt mit _). Darunter sollte dann das SQL-Statement zu finden sein..
Ansonsten guck die Funktionsweise von *Nuke an.. Default ist AFAIK der Aufruf der Funktion index() in der Datei, wenn keine Parameter übergeben worden sind..

mg115301
Posts: 80
Joined: 2002-12-26 23:59

Re: Datenbank Satz sortieren

Post by mg115301 » 2003-02-01 23:39

Merci!
Ich habe jetzt die Nummern anders vergeben. So geht es auch.
habe immer eine 0 am Anfang stehen. Das passt so auch gut und ich muss am Script nichts ändern.

Danke noch mal für die Hilfe.