SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Webseiten professionell erstellen

Webseiten professionell erstellen zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)
Hilfe Community Kalender Heutige Beiträge Suchen

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 15.05.2008, 17:22:51
auhur auhur ist offline
Anfänger
 
Registriert seit: May 2008
Beiträge: 5
Reihenfolge stimmt nicht

Hallo,

ich nage nun schon zwei Tage an diesem Problem. Dafür habe ich mich mal registriert, ich hoffe hier kann mir jemand weiter helfen.

Grundsätzlich geht es um ein Script, welches Bildergalerien dem Besitzer in der Reihenfolge auflisten soll, in der diese zuletzt kommentiert wurden. Dabei werden sehr viele Tabellen abgerufen. Um es übersichtlich zu halten habe ich dazu mal ein kleines ähnliches Script mit dem selben Problem geschrieben.

Es gibt hier 2 Tabellen. Einmal 'Häuser' und einmal 'Bewohner'. Einzelnen Häuser-Einträgen sollen teilw. mehrere Bewohner-Einträge zugeordnet werden. Ich möchte nun, die Häuser inkl. ihrer Bewohner ausgeben. In der Reihenfolge, in der zuletzt jemand eingezogen ist. Also Rückwärts nach der bewohner.Id


Datenbank:
Code:
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Datenbank: `test`
--

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

--
-- Tabellenstruktur für Tabelle `bewohner`
--

CREATE TABLE IF NOT EXISTS `bewohner` (
  `id` int(11) NOT NULL auto_increment,
  `haus` int(11) NOT NULL,
  `name` varchar(100) NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `haus` (`haus`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=17 ;

--
-- Daten für Tabelle `bewohner`
--

INSERT INTO `bewohner` (`id`, `haus`, `name`) VALUES
(1, 1, 'peter'),
(2, 1, 'michaela'),
(3, 2, 'frank'),
(4, 7, 'torsten'),
(5, 7, 'nina'),
(6, 7, 'ralf'),
(7, 7, 'ingeborg'),
(8, 10, 'tim'),
(9, 10, 'Irmgard'),
(10, 3, 'Fridolin'),
(11, 6, 'Marianne'),
(12, 6, 'Paulus'),
(13, 10, 'Bernd'),
(14, 7, 'Adolf'),
(15, 2, 'Lutz'),
(16, 3, 'Gerhard');

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

--
-- Tabellenstruktur für Tabelle `haus`
--

CREATE TABLE IF NOT EXISTS `haus` (
  `id` int(11) NOT NULL,
  `verwalter` varchar(100) NOT NULL,
  UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Daten für Tabelle `haus`
--

INSERT INTO `haus` (`id`, `verwalter`) VALUES
(1, 'Mueller'),
(2, 'Mueller'),
(3, 'Kohl'),
(6, 'Mueller'),
(7, 'Mueller'),
(10, 'Mueller');
Script:

PHP-Code:
<?

if(!@is_numeric($_REQUEST['verwalter'])) {
    $_REQUEST['verwalter'] = "Mueller";
}


$query1 = mysql_query("SELECT
                            haus.id,
                            haus.verwalter,
                            bewohner.id AS bId
                        FROM
                            haus
                        JOIN
                            bewohner ON (bewohner.id=haus.id)
                        WHERE
                            haus.verwalter='$_REQUEST[verwalter]'
                        ORDER BY
                            bewohner.id DESC,
                            haus.id DESC
                        LIMIT 40
                        ") or die(mysql_error());
                    
while ($data=mysql_fetch_array($query1)) {

    print '<b>Haus: '.$data['id'].'</b> ('.$data['verwalter'].')<br>';
#    print 'Name: '.$data['name'].'('.$data['id'].')<br>';
#    print 'verwalter: '.$data['verwalter'].'<br>';
    print '<br>';
    
    $query2 = mysql_query("SELECT
                                bewohner.name,
                                bewohner.id
                            FROM
                                bewohner
                            WHERE
                                bewohner.haus = '$data[id]'
                            ORDER BY
                                bewohner.id DESC
                            ") or die(mysql_error());
                            
        while($data2=mysql_fetch_array($query2))    {
            print '<u>'.$data2['name'].' ('.$data2['id'].')</u><br>';
        }

    print '<br>-----------<br>';
}


error_reporting(E_ALL);                 
?>
Ich habe schon alles mögliche ausprobiert. ORDER BY, GROUP BY, DISTINCT (weil ab und zu die Häuser mehrfach ausgegeben werden)... EXISTS (macht nicht viel Sinn, da auch 'leere Häuser' berücksichtigt werden sollen)

Ich wäre echt glücklich, wenn das Problem gelöst wäre!



Generell: Anfangs wollte ich das mit einem einzigen Query lösen, mit dem ich mir dann ein Multi-Array füllen wollte, um dieses schön ausgeben zu können - Leider habe ich keine Möglichkeit gefunden. Ist dies generell möglich mit MySQL?
Mit Zitat antworten
  #2  
Alt 15.05.2008, 17:36:47
auhur auhur ist offline
Anfänger
 
Registriert seit: May 2008
Beiträge: 5
AW: Reihenfolge stimmt nicht

Falsche Ausgabe:
Haus 2 sollte an erster Stelle stehen, weil Lutz ID 15 hat


Haus: 10 (Mueller)

Bernd (13)
Irmgard (9)
tim (8)

-----------
Haus: 7 (Mueller)

Adolf (14)
ingeborg (7)
ralf (6)
nina (5)
torsten (4)

-----------
Haus: 6 (Mueller)

Paulus (12)
Marianne (11)

-----------
Haus: 2 (Mueller)

Lutz (15)
frank (3)

-----------
Haus: 1 (Mueller)

michaela (2)
peter (1)

-----------

Die Häuser sollen aufgelistet werden. Sortiert nach dem letzten Einzug eines neuen Mitbewohners ( bewohner.id )
Mit Zitat antworten
  #3  
Alt 03.06.2008, 17:37:38
auhur auhur ist offline
Anfänger
 
Registriert seit: May 2008
Beiträge: 5
AW: Reihenfolge stimmt nicht

Tja, schade das mir niemand helfen konnte. Vielleicht hat ja mal jemand ein ähnliches Problem. Ich habe es irgendwann gelöst mit:

SELECT DISTINCT
...
MAX(bewohner.id) AS max,
...
JOIN
bewohner ON (bewohner.id=haus.id)
...
GROUP BY
...
ORDER BY
max DESC

...
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Datenstruktur die zufällige Reihenfolge beinhaltet feuervogel PHP Entwicklung und Softwaredesign 21 26.09.2007 18:10:32
Reihenfolge VaN_tHe_MaN PHP Grundlagen 11 30.12.2006 14:37:57
Nummarische und Alphabetische Reihenfolge striker PHP Grundlagen 5 27.10.2006 00:19:51
SQL Datenbankergebnisse in umgekehrter Reihenfolge Zonk MySQLi/PDO/(MySQL) 2 19.11.2003 16:33:25
reihenfolge von datensätzen ändern ingo PHP für Fortgeschrittene und Experten 5 17.08.2003 14:24:58


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:11:20 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt