php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 29.11.2007, 22:51  
Erfahrener Benutzer
 
Registriert seit: 21.10.2007
Beiträge: 125
prinzli
Standard beim letzten Datensatz anderes Icon ausgeben

Hallo zusammen..

In meiner Abfrage von Ober -und Unterkategorien möchte ich im letzten Datensatz der Unterkategorie ein anderes (End) Icon...

Nun müsste ich ja den letzten Datensatz ermitteln können und bei dem dieses "Endicon" ausgeben und bei den anderen Datensätzen das "normale" Icon ausgeben lassen, das heisst.. also vom ersten bis zum zweitletzten.

Die Unterkategorien sind mit ASC per Name geordnet.

Hier ein Bild zur Veranschaulichung.
http://www.buntes-allerlei.ch/hostin...b42b4f5bc65673

Wie mache ich das am besten..? Für Inputs wäre ich dankbar..!

Herzlichen Dank im voraus..
Gruss Prinzli
prinzli ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 29.11.2007, 22:56  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Tja das kommt darauf an, wie Du die Sachen ausgibst.

Ist auch kein klassisches mysql Problem. Kann man machen, aber...
nikosch ist offline   Mit Zitat antworten
Alt 29.11.2007, 23:00  
Erfahrener Benutzer
 
Registriert seit: 21.10.2007
Beiträge: 125
prinzli
Standard

.. ich stell mir vor... das Icon nach einer if-Schlaufe auszugeben... in dem Sinne.. wenn es der letzte Datensatz ist.. das Endicon ausgeben.. wenn nicht, das normale Icon ausgeben...


Doch wie mache ich diese Abfrage..?
prinzli ist offline   Mit Zitat antworten
Alt 29.11.2007, 23:02  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Soweit klar. Was willst Du nur immer mit Deiner if-Schlaufe? Schleife heißt das. Sind hier nicht aufm Segeltörn. Und da heißt es auch Bucht oder Auge...
nikosch ist offline   Mit Zitat antworten
Alt 29.11.2007, 23:09  
Erfahrener Benutzer
 
Registriert seit: 21.10.2007
Beiträge: 125
prinzli
Standard

..ok.. kapiert.. die Schleife schleift...

Zitat:
Ist auch kein klassisches mysql Problem. Kann man machen, aber...
..was heisst aber..?? etwas kompliziert..? ..oder wie darf ich Dein "aber" verstehen..?
prinzli ist offline   Mit Zitat antworten
Alt 29.11.2007, 23:12  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Je nachdem, wann der Datensatz ausgegeben wird (beim 'fetchen' oder in einer separaten Schleife aus einem komplett ausgelesenen Array) werden unterschiedliche Vorgehen nötig.
Also bist Du als erster mit ein paar Inputs dran. Und bevor Du überlegst: Ja, es darf auch Quellcode dabei sein.
nikosch ist offline   Mit Zitat antworten
Alt 29.11.2007, 23:20  
Erfahrener Benutzer
 
Registriert seit: 21.10.2007
Beiträge: 125
prinzli
Standard

..so lese ich die Kategorien aus:

PHP-Code:
<?php
// OBERKATEGORIE ABFRAGEN UND AUSGEBEN ---------------------------- \\

$o_kat_abfrage "SELECT 
                    o_kat 
                FROM 
                    o_kategorien 
                ORDER BY 
                    o_kat 
                ASC"
;
$o_kat_ausgabe mysql_query($o_kat_abfrage) or die("Fehler in Zeile " __LINE__ " in der Abfrage " $o_kat_abfrage ", Fehlermeldung: " mysql_error()); 
    
    while(
$o_kat_zeile mysql_fetch_array($o_kat_ausgabe))
    {
    require(
"templates/kat_ausgabe/temp_okat.php");
    
//echo "
";
    
// UNTERKATEGORIE ABFRAGEN UND IN OBERKATEGORIE AUSGEBEN \\

        if 
        (array_key_exists('okat', $_GET))
        {
         $okat = $_GET['okat'];
         
         $u_kat_abfrage = "
SELECT 
                        u_kat
o_kat 
                        FROM 
                            u_kategorien 
                        WHERE 
                            o_kat 
'$okat' ";
        $u_kat_ausgabe = mysql_query($u_kat_abfrage) or die("
Fehler in Zeile " . __LINE__ . " in der Abfrage " . $u_kat_abfrage . "Fehlermeldung" . mysql_error()); 
         
         $u_kat_zeile = mysql_fetch_array($u_kat_ausgabe);
         
         
             if ($o_kat_zeile['o_kat'] == $u_kat_zeile['o_kat'] )
                {
                 $u_kat_anzeigen = "
SELECT 
                            u_kat
o_kat 
                        FROM 
                            u_kategorien 
                        WHERE 
                            o_kat 
'$okat' 
                        
ORDER BY 
                            u_kat 
                        ASC
";
        $u_kat_ausgabe_anzeigen = mysql_query($u_kat_anzeigen) or die("
Fehler in Zeile " . __LINE__ . " in der Abfrage " . $u_kat_anzeigen . "Fehlermeldung" . mysql_error()); 
                          
            while ($u_kat_zeile_anzeigen = mysql_fetch_array($u_kat_ausgabe_anzeigen))
            {
            require("
templates/kat_ausgabe/temp_ukat.php");    
            }
            require_once("
templates/kat_ausgabe/temp_ukat_end.php");
            }
        }
    }
?>

Die Templates beinhalten "table-Struktur" mit der jeweiligen Ausgabe der Mysql-Abfragen in Form von:
PHP-Code:
echo '[url="index.php?okat='.$o_kat_zeile['o_kat'].'"]'.$o_kat_zeile['o_kat'].'[/url]'
Gruss Prinzli
prinzli ist offline   Mit Zitat antworten
Alt 29.11.2007, 23:36  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Na also.
Um es mal nett auszudrücken: Es ist ziemlich schlechter Stil, in einer Schleife SQL Statements abzusetzen. Besser wäre es, die Oberkategorien und die Unterkategorien in jeweils einer SQL Abfrage zu bestimmen. Letztere mit der dazugehörigen Oberkategorie. Beim Auslesen erstellst Du dann ein assoziatives Array, das je einer OK die UK Datensätze zuordnet.

Also ein Ergebnis der Art:

PHP-Code:
<?
var_dump 
($OKArray);
var_dump ($UKArray);
Code:
Array (
  0 => Punkt 1 ,
  1 => Punkt 2 , 
  2 => Punkt 3
  )

Array (
  'Punkt 1' =>  Array (
     'Punkt 1.1',
     'Punkt 1.2',
     'Punkt 1.3',
     'Punkt 1.4'
     ) ,
  'Punkt 2' => Array (
  ) ,
  'Punkt 3' =>  Array (
     'Punkt 3.1',
     'Punkt 3.2',
     )
  )
Unter Umständen natürlich komplexer, mit korrespondierenden Daten. Wenn Du einer Struktur einer ähnlichen Art hast, dann macht es Sinn, über den Rest nachzudenken.

By the way: Deine Codeformatierung ist absolut sinnfrei.
nikosch ist offline   Mit Zitat antworten
Alt 30.11.2007, 15:30  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Zu deinem Problem. Ansich siet die If-Abfrage so aus dass du mitzählen musst wie viele Zeilen du bereits ausgegeben hast und wenn du die letzte Zeile (Anzahl aller Zeilen) erreichst, gibst du eben des Endicon aus.

PHP-Code:
<?php

// hier alles mit der Abfrage hin ... und unter dem mysql_query(...)

$rows mysql_num_rows($o_kat_ausgabe);
$i 0;

while (...) {

    
// dein ganzes Zeugs bis zum Icon

    
i++;
    if (
$i == $rows) echo 'endicon';
    else 
'icon';
}
?>
Flor1an ist offline   Mit Zitat antworten
Alt 30.11.2007, 17:05  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.654
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von nikosch77
Soweit klar. Was willst Du nur immer mit Deiner if-Schlaufe? Schleife heißt das. Sind hier nicht aufm Segeltörn. Und da heißt es auch Bucht oder Auge...
... und das passiert dir!
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Antwort


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
verschachtelte Rubriken ausgeben / alle anzeigen prinzli PHP Tipps 2008 3 25.02.2008 22:37
auf nächsten Datensatz zugreifen cycap Datenbanken 5 18.12.2007 14:32
Datensatz zu max() simsalabim Datenbanken 8 02.10.2007 08:56
datensatz problem 24bits PHP Tipps 2006 1 30.08.2006 18:52
Datensatz mit höchsten Wert aus verknüpfter Tabelle ausgeben db Datenbanken 2 26.04.2006 11:48
einen variablen datensatz löschen PHP Tipps 2007 3 04.11.2005 12:41
nächsten datensatz bei klick auf button weiter... PHP Tipps 2005-2 1 14.08.2005 12:19
Ein Datensatz ausgeben PHP Tipps 2005 8 02.06.2005 21:52
Datensatz geändern? patr1k PHP Tipps 2005 12 14.02.2005 12:46
Leeren Datensatz editierbar machen Anuschka PHP Tipps 2004-2 1 27.12.2004 13:28
mehrere Benutzer arbeiten an einem Datensatz ajo_silent Datenbanken 6 20.11.2004 13:52
Icon ausgeben und mit der Datenbankverlinken Beatbox PHP Tipps 2004 2 11.09.2004 19:40
Datensatz abfragen und in Formularfeldern ausgeben Datenbanken 1 25.08.2004 09:24
[Erledigt] Icon HTML, Usability und Barrierefreiheit 9 10.07.2004 16:19
Einträge in Etappen ausgeben plus Navigation PHP Tipps 2004 1 19.06.2004 14:26

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php if letzter datensatz, icon erster datensatz, mysql_fetch_array letzter eintrag, letzter datensatz symbol, php mit if letzten datensatz ermitteln, if php letzter datensatz, php mysql select schleife \letzter eintrag\, php mysql_fetch if letzter datensatz, php if $i= letzter datensatz, symbol letzter datensatz, php if datensatz der letzte, php bei letzten datensatz anderes bild, mysql php if letzter datensatz, letzten datensatz ermitteln php, letzten eintrag zuerst ausgeben php, in php schleife letzten datensatz anders ausgeben, icon-datensatz, icon als lcon ausgeben, php letzten datensatz, php letzter datensatz in for schleife

Alle Zeitangaben in WEZ +2. Es ist jetzt 07:01 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.