php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.04.2006, 08:55  
Gast
 
Beiträge: n/a
Standard MYSQL Abfrage // Sortierung geht nicht...

Moin junx *g*

Also hab folgendes Problem.
Seitdem ich mein Newsscript umgestellt hab und per headid zwischen Clan und Scene News unterteile sortiert er die News nur noch falsch rum...

ASC und DESC bringen in dem fall nix...

mein Code:

PHP-Code:
<?php 

    
/**
    * @author Andre Kalisch <webmaster@andrekalisch.de>
    * @copyright andrekalisch.de
    */
    
$navistyle "news";
    
$news_items "";
    if(
$_GET[headid]) {
    
$katid $_GET[headid];
    } else {
    
$katid "1";
    }

    
$gruppe $db->query_first('
        SELECT *
        FROM ' 
$db->prefix '_news_kats
        WHERE id = \'' 
$katid '\'
    '
);

    
$news_gruppe_query $db->query('
        SELECT *
        FROM ' 
$db->prefix '_news_kats
        WHERE headid = ' 
$gruppe->id '
    '
);
    
    
$ugruppen_count mysql_num_rows($news_gruppe_query);
    
    while(
$news_kat $db->fetch($news_gruppe_query)) {
    
$news_query $db->query('
        SELECT n.*, u.nickname
        FROM ' 
$db->prefix '_news n, ' $db->prefix '_user u
        WHERE u.id = n.autorid AND
              n.gruppe = ' 
$news_kat->id '
        ORDER BY n.datum ASC
        LIMIT 8
    '
);
    
    while(
$news $db->fetch($news_query)) {

    
$count_query $db->query('
        SELECT COUNT(*) as anzahl
        FROM ' 
$db->prefix '_kommentare
        WHERE toid = ' 
$news->id ' AND ort = \'news\'
    '
);

    while(
$count $db->fetch($count_query)) {
        
$tmp->add(array(
            
"news_kommentare" => ' ('.$count->anzahl.')'
        
));
    }

    
$news_kat_query $db->query('
        SELECT *
        FROM ' 
$db->prefix '_news_kats
        WHERE id = ' 
$news->gruppe '
    '
);

    while(
$news_group $db->fetch($news_kat_query)) {
        
$tmp->add(array(
            
"news_kat_img" => '[img]images/newskat/' $news_group->img '[/img]',
            
"news_group" => $news_group->name
        
));
    }

        
$tmp->add(array(
            
"news_id" => $news->id,
            
"news_topic" => $news->topic,
            
"news_autor" => '[url="?cmd=user_detail&userid=' $news->autorid '"]nickname . '">' . $news->nickname . '[/url]',
            "
news_text" => prase($news->text, $db, 1, 1, 1, 1, 0) . '

[url="
?cmd=news_kommentare&newsid=' . $news->id . '"][img]images/misc/more.jpg[/img][/url]',
            "
news_datum" => date("d.m.Y", $news->datum)
        ));
        if($news->text2 != "") {
            $tmp->add("
news_moretext", $news->moretext);
            $tmp->add("
news_text2", prase($news->text2, $db, 1, 1, 1, 1, 0));
            $news_text2 = $tmp->load("
news_item_text2");
        } else {
            $news_text2 = "";
        }
        $tmp->add("
news_more", $news_text2);
        $links = "";
        for($i=1;$i<6;$i++) {
            if($news->{"
url" . $i} != "" && $news->{"link" . $i} != "") {
                $links .= '  [b]|[/b]  [url=""]{"
url" . $i}, 0, 4) == "http" ? $news->{"url" . $i} : 'http://' . $news->{"url" . $i}).'\')" title="'.$news->{"link" . $i}.'">' . $news->{"link" . $i} . '[/url';
            }
        }
        if($links != "") {
            $tmp->add("news_links", "Related Links:" . $links);
        } else {
            $tmp->add("news_links", "");
        }
        $admin = "";
        if(checkright($user->news, $rechte['
news'])) {
            $tmp->add("admin", '
[url="index.php?cmd=admin_news_edit&newsid=' . $news->id . '"]News Bearbeiten[/url]/[url="index.php?cmd=admin_news_del&newsid=' . $news->id . '"]News Löschen[/url]');
        } else {
            $tmp->add("admin", "");
        }
        $news_items .= $tmp->load("news_item");
    }
}
    
    if(checkright($user->news, $rechte['
news'])) {
        $tmp->add("admin", '
[url="index.php?cmd=admin_news_add"][b]new news[/b][/url]);
    } else {
        
$tmp->add("admin""");
    }
    
    
$tmp->add("news_items"$news_items);
    
$tmp->add("content"$tmp->load("news"));

?>
ich weiss... der code ist etwas schlampig geschrieben... aber hauptsache es geht *g*

also wäre n1 von euch wenn mir jemand sagen könnte wodran das liegt
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 18.04.2006, 09:28  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 4.651
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard Re: MYSQL Abfrage // Sortierung geht nicht...

Bitte beachten: http://www.lugbz.org/documents/smart-questions_de.html

Dies umfasst die eigentliche Problemstellung zu beschreiben und nicht unwichtiges BlaBla. Zu deutsch: Wer sortiert was wie rum und wie erwartest du es? Wie sind Beispieldaten? Wie schaut die Datenbank aus bzw. welche Datentypen gibt es für die Spalten, die sortiert werden?

Zitat:
Zitat von The_Hara
ich weiss... der code ist etwas schlampig geschrieben... aber hauptsache es geht *g*
Für diese Aussage gehörst virtuell gesteinigt
mepeisen ist offline  
Alt 18.04.2006, 09:53  
Gast
 
Beiträge: n/a
Standard

naja ich weiss jetzt grad nicht so recht was du damit meinst... aber ok... ich versuchs mal...
Wenn ich die News auslesen lasse aus der mysql tabelle wird dieser 1x per headid (scene oder clan news) gefiltert...
sagen wir ich rufe auf: http://url.de/?cmd=news&headid=1 werden mir nur die Clan news angezeigt...

Nur das Problem beim Aufruf ist... es wird nicht nach datum sortiert... egal ob ich ASC oder DESC angebe...

und genau das ist mein Problem... ich kann jetzt nicht noch die 100 funktionen mitposten die im ganzen Quelltext verwendet werden... Weil ich dann gleich mein Script veröffentlichen könnte (was ich aber nie vor hatte)
 
Alt 18.04.2006, 10:08  
Erfahrener Benutzer
 
Registriert seit: 23.08.2007
Beiträge: 1.510
M3g4Star befindet sich auf einem aufstrebenden Ast
Standard

Wichtig wäre doch tatsächlich nur dein SQL Statement was du sortieren willst.

Dann wäre noch der aufbau deiner DB wichtig damit man dein SQL statement verfolgen kann.

Und dann kann man weiter sehen ...
M3g4Star ist offline  
Alt 18.04.2006, 10:14  
there's only one psycho
 
Benutzerbild von PsychoEagle
 
Registriert seit: 21.08.2007
Beiträge: 1.283
PHP-Kenntnisse:
Anfänger
PsychoEagle ist ein sehr geschätzer MenschPsychoEagle ist ein sehr geschätzer MenschPsychoEagle ist ein sehr geschätzer Mensch
PsychoEagle eine Nachricht über ICQ schicken PsychoEagle eine Nachricht über Skype™ schicken
Standard

übrigends ist

PHP-Code:
    if($_GET[headid]) {
    
$katid $_GET[headid];
    } else {
    
$katid "1";
    } 
nicht wirklich gut. Vor allem da die '' fehlen und wegen SQL-Injection

Ein Anfang wäre auf int Prüfung (is_int($_GET['headid'])). Ansonsten ist deine DB schneller leer als du sehen kannst
__________________
"Weaseling out of things is important to learn. It's what separates us from the animals ... except the weasel." (Homer J. Simpson)
PsychoEagle ist offline  
Alt 18.04.2006, 10:17  
Gast
 
Beiträge: n/a
Standard

die News will ich nach Datum sortieren... so das die Letzte News der jeweiligen headid ganz oben steht... also DESC...

Die Datenbank baut sich auf durch

- id (news id)
- gruppe (wird benötigt um die news gruppe für Bildchen usw zu definieren)
- headid (wird benötigt um die news zwischen Scene und Clan news zu trennen)
- topic (Überschrift)
- text (News Text)
- autorid (wer hats geschrieben)
- datum (Das datum der news)
 
Alt 18.04.2006, 10:22  
Erfahrener Benutzer
 
Registriert seit: 23.08.2007
Beiträge: 1.510
M3g4Star befindet sich auf einem aufstrebenden Ast
Standard

*hm* .. hast's noch nicht so richtig gecheckt was wir wollen oder ??

Also .. zunächst den wäre dein SQL-Statement wichtig was an deine DB geschickt wird ...

dann mach mal error_reportig(E_ALL); am anfang deiner seite ...
dann wirst vllt schon mal den einen oder anderen "kleinen" Fehler sehen ..

Wichtig ist doch um dir helfen zu können tatsächlich nur dein SQL Statement : sprich echo $sql; oder sowas ...



PHP-Code:
<?php
$sql
='SELECT n.*, u.nickname
        FROM ' 
$db->prefix '_news n, ' $db->prefix '_user u
        WHERE u.id = n.autorid AND
              n.gruppe = ' 
$news_kat->id '
        ORDER BY n.datum ASC
        LIMIT 8'
;

echo 
$sql;

   
$news_query $db->query($sql); 
?>
M3g4Star ist offline  
Alt 18.04.2006, 10:38  
Gast
 
Beiträge: n/a
Standard

naja so langsam hab ich glaub ich gechecked *g*
also bei error_reporting(E_ALL); kommen keine fehler die aufgrund der Abfrage ausgegeben werden

und das Statement:

Code:
SELECT n.*, u.nickname FROM amx_news n, amx_user u WHERE u.id = n.autorid AND n.gruppe = 3 ORDER BY n.datum ASC LIMIT 8
 
Alt 18.04.2006, 10:53  
Erfahrener Benutzer
 
Registriert seit: 23.08.2007
Beiträge: 1.510
M3g4Star befindet sich auf einem aufstrebenden Ast
Standard

Du sortierst also nach datum ... *hm* was beinhaltet denn dein Feld datum für ein Format ?

p.s.: das meinte ich mit Aufbau deiner Tabelle !!!
Code:
CREATE TABLE `tabelle` (
  `id` int(11) NOT NULL auto_increment,
  `feld1` varchar(20) NOT NULL default '',
  `feld2` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=588 ;
M3g4Star ist offline  
Alt 18.04.2006, 11:01  
there's only one psycho
 
Benutzerbild von PsychoEagle
 
Registriert seit: 21.08.2007
Beiträge: 1.283
PHP-Kenntnisse:
Anfänger
PsychoEagle ist ein sehr geschätzer MenschPsychoEagle ist ein sehr geschätzer MenschPsychoEagle ist ein sehr geschätzer Mensch
PsychoEagle eine Nachricht über ICQ schicken PsychoEagle eine Nachricht über Skype™ schicken
Standard

ich kenn mich nicht so mit SQL aus, aber müssen nicht bei Tabellennamen, die leerzeichen enthalten zwischen `` (oder war es ´´) stehen? (man sollte zumindestens leerzeichen vermieden)

und anscheinend holst du deine Daten aus mehreren Tabellen. Da ist glaub ich INNER Join notwendig, oder? Kann mich auch irren. SQL mach ich nicht sooo viel wie früher
__________________
"Weaseling out of things is important to learn. It's what separates us from the animals ... except the weasel." (Homer J. Simpson)
PsychoEagle ist offline  
 


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
MySQL Abfrage als PHP class d3rbastl3r PHP Tipps 2008 2 11.06.2008 15:41
Frage: richtige SQL Abfrage von einer MySQL Spalte die SET werte besitzt Seb PHP Tipps 2008 2 29.05.2008 11:36
MySQL Abfrage von Ver. 5 für Ver 3. des MySQL Servers FireFIghter Datenbanken 3 02.02.2007 17:18
MySQL Abfrage macht Seite langsam Datenbanken 11 19.10.2006 19:38
MySQL - Abfrage: Unterschiedliche Ergebnisse aus PHP/manuell horstenpeter Datenbanken 3 16.07.2006 13:22
mysql abfrage in Schleife havok PHP Tipps 2006 6 09.05.2006 08:39
Abfrage bei mySQL 4 ApfeL Datenbanken 5 24.03.2006 18:53
[Erledigt] MySQL Server startet nicht mehr richtig... Datenbanken 16 03.03.2006 19:40
mysql abfrage über 4 Tabelle - bis 3 geht, bei der 4. habert Datenbanken 2 08.09.2005 11:59
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
einfache mysql abfrage und mysql update haut nicht ganz hin djrace PHP Tipps 2005-2 6 12.08.2005 15:28
MySQL abfrage mit berechneter Sortierung Dragon26mFR Datenbanken 5 08.05.2005 14:01
[Erledigt] Mysql Abfrage Problem! PHP-Fortgeschrittene 5 27.11.2004 10:22
komplizierte mySQL Abfrage Datenbanken 6 25.06.2004 15:34
[Erledigt] mysql Abfrage Datenbanken 5 18.06.2004 14:16

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql abfrage news, mysql sortieren leerzeichen, sql \'order by\' sortiert int falsch, http://www.php.de/php-tipps-2006/39181-mysql-abfrage-sortierung-geht-nicht.html, mysql daten sortieren, \order by\ mysql \sortiert falsch\, mysql order by sortierung klappt nicht, mysql tabelle sortiert falsch abfrage sortieren, mysql fetch array nach datum sortieren funktioniert nicht, php sql sortiert falsch, count php reihenfolge funktioniert nicht, php sql abfrage ausgeben überschriften sortieren, mysql order by \sortiert nicht\, nachrichten werden nicht nach id sortiert mysql, php sql dbprefix, mysql datum von bis, tt_news abfrage nach date, mysql order sortiert nicht leerzeichen, mysql sortiert < geht nicht, mysql \order by\ geht nicht

Alle Zeitangaben in WEZ +1. Es ist jetzt 15:15 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.