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 ::

Das Zend Framework

Das Zend Framework 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 > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 29.05.2005, 09:55:48
c.brandau c.brandau ist offline
Anfänger
 
Registriert seit: May 2005
Beiträge: 12
dynamische Strings einlesen und vertauscht in HTML-Tabelle ausgeben

:(
Hallo Forum,
ich hab hier ein Problem an dem ich schon tagelang sitze und nicht weiterkomme.
Ich hoffe mir ist noch zu helfen.

Problemschilderung:
Eine bestimmte Integeranzahl (Primarykeys) soll aus DB eingelesen werden.
Aufgelisten möchte ich diese in einer Tabelle die wie folgt aussieht:

integer 11 integer 8 integer 5
integer 12 integer 9 integer 6
integer 13 integer 10 integer 7 integer 4


Ich lese die PK's aus DB von hinten nach vorne ein
und nur 10 Stück sollen in einer Tabelle angezeigt werden.
Die darstellung nicht zeilenweise hintereinander sonder
wie oben in Dreierpacks nebeneinander.
Aber der letzte INT nicht an erster Stelle eines Dreierpacks in der HTML-TAB
sondern die Position mit dem letzten INT des Dreierpacks, in diesem Falle 11,
vertauscht.

Provisorisch habe ich die Tabellen darstellung mit
switch case hingekriegt, aber nicht befriedigend

<TABLE>
<TR>
<TD>
<TABLE>
<TR>
<TD>

<?php
$db=mysql_connect
mysql_select_db
$anfrage="SELECT * FROM tabelle";
$ergebnis=mysql_query($anfrage);
$anz=mysql_num_rows($ergebnis);
for ($a=$anz-1;$a>$anz-10;$a--)
mysql_data_seek($ergebnis, $a);
$zeile=mysql_fetch_row($ergebnis);

print("<a href='readfrm.php?_id=");
print($zeile[0]);
print("'>");
print($zeile[0]);
print(" - ");
print($zeile[5]);
print("</a>");

print("</TD>");


$b = 0+$a;
switch ($b) {


case "6":
print(" ");
print("</TR></TABLE>");
print("<TD><TABLE border=1><TR><TD>");



break;
case "3":
print(" ");
print("</TR></TABLE>");
print("<TD><TABLE border=1><TR><TD>");



break;

case "0":
print(" ");
print("</TR>");
print("</TABLE>");



break;

default:
print("");
print("</TR>");
print("<TR><TD>");

}

er soll ja OBJEKTIV 10 Stück nehmen die da sind und sich nicht nach $a richten.


Da er ja im For alles einliest und runterrattert dachte ich mir, dass man das
so sicherlich nicht ordnen kann. In Erwägung gezogen habe ich Arrays
...dass er mir die PK's Arrays zuweist, zwischenspeichert, diese dann sortiert
und richtig ausgibt nur

for ($a=$anz-1;$a>$anz-10;$a--)

$zwischen[$i] = $zeile[]

$i = $i + 1;

geht auch nicht.


Hat jemand Anstöße oder Hinweise wie dieses Problem zu bewältigen ist??
DANKE FÜR EUER HILFE!
Mit Zitat antworten
  #2  
Alt 29.05.2005, 13:13:58
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: dynamische Strings einlesen und vertauscht in HTML-Tabelle ausgeben

Am besten speicherst du die Daten zunächst in einem verschaltelten Array, wobei die Schlüssel, die jeweilige Zeilennummer angeben, in der der Eintrag stehen soll. Welche das ist, kannst du leicht mit dem Modulooperator bestimmen:
PHP-Code:
<?php
    $entries 
= array(
                    
=> array(
                            ),
                    
=> array(
                            ),
                    
=> array(
                            )
                );

    
$i 0;
    while(
$row mysql_fetch_assoc($result)) {
        
$line $i 1;
        
$entries[$line][] = $row['column'];
    }

    
//  für jede Zeile die Anzahl der Einträge ermitteln und in Array speichern
    
$num = array();
    
$max 0;
    foreach(
$entries as $line => $array) {
        
$num[$line] = count($array);

        
//  hat diese Zeile die meisten Einträge?
        
if(count($array) > $max)
            
$max count($array);    //  Anzahl der Einträge in $max speichern
    
}

    
//  für jede Zeile die Differenz der Anzahl zur maximalen Anzahl ermitteln
    
$diff = array();
    foreach(
$num as $line => $linenum) {
        
$diff[$line] = $max $num[$line];
    }

    
//  Einträge ausgeben
    
foreach($entries as $lineno => $line) {

        
//  Einträge absteigend sortieren
        
rsort($entries[$lineno];

        
//  eine neue Zeile aufmachen
        
print '<tr>';

        
//  alle Einträge dieser Zeile nacheinander ausgeben
        
foreach($line as $k => $entry) {
            print 
'<td>' $entry '</td>';
        }

        if(
$diff[$lineno] > 0) {
            
//  jetzt noch mit leeren Zellen auffüllen
            
print '<td colspan="' $diff[$lineno] . '">&nbsp;</td>';
        }

        
//  Zeile wieder schließen
        
print '</tr>';
    }
?>
Mit Zitat antworten
  #3  
Alt 29.05.2005, 21:42:33
c.brandau c.brandau ist offline
Anfänger
 
Registriert seit: May 2005
Beiträge: 12
AW: dynamische Strings einlesen und vertauscht in HTML-Tabelle ausgeben

Whoa!

Hallo Xabbuh,

Erstmal danke, dass du dir Zeit genommen hast ein Script für mich zu schreiben! Es hat mich als Anfänger überfordert... :-Q
ich hab es dann in meinen Code implementiert und
werte verändert und prints hier und da dazugetan um zu testen
was sich tut.
foreach und mysql_fetch_assoc(iated) waren mir nicht ganz klar, hab nachgekuckt..
Es bleiben aber trotzdem noch viele Fragen offen.

Meine Grundüberlegungen sind:
Code:
1. die letzten 12 datensätze aus DB von hinten nach vorne einlesen und
einen gewissen String aus dem Satz extrahieren $line[2] z.B.
2. Diese mit schleife in Arrays zwischenspeichern
3. Die mit den Strings gefüllten Arrays nach unten dargestelltem Schema sortieren
4. in dreier Blöcke teilen (oder dieser Punkt höchstwahrscheinlich auch schon vor dem 3.)
5. die blöcke mit Schleife in HTML Tabelle setzen.
Verständlicherweise habe ich nach Parallelen zu den einzelnen Punkten
in deînem Script gesucht.

PHP-Code:
  $i 0;
    while(
$row mysql_fetch_assoc($result)) {
        
$line $i 1;
        
$entries[$line][] = $row['column'];
    } 
mit --> [] <--- zählt er automatisch hoch, oder?
nur wofür ist dann $line und $i gut?

PHP-Code:
$entries = array(
                    
=> array(
                            ),
                    
=> array(
                            ),
                    
=> array(
                            )
                ); 
Hier muss man doch vordefinieren, oder?
Meine daten sind aber dynamisch.

ich hab folgendes probiert:

PHP-Code:
<?php

$db
=mysql_connect("localhost","root","");
mysql_select_db("dbGoon");
$anfrage="SELECT * FROM forum";
$ergebnis=mysql_query($anfrage);
    
    while(
$row mysql_fetch_assoc($ergebnis)) {
        
    
$entries[] = $row['titel'];
    print(
$entries."<br />");
    
    }

?>
Korrekterweise listet er mir "10" mal Array auf aber nicht den Inhalt jener...
und hier fehlt mir dann auch das chronologische Auslesen der Datensätze von hinten nach vorn und die begrenzte Anzahl..
und was wenn ich nicht nur den Titel sondern auch das Datum mit auslesen will? Muss ich dann eine neue schleife machen mit row datum?
nur wie verbinde ich das dann mit den arrays die den titel enthalten?
PHP-Code:
$db=mysql_connect("localhost","root","");
mysql_select_db("dbGoon");
$anfrage="SELECT * FROM forum";
$ergebnis=mysql_query($anfrage);
$anz=mysql_num_rows($ergebnis);
for (
$a=$anz-1;$a>-13;$a--) {

    while(
$row mysql_fetch_assoc($ergebnis$a)) {
        
    
$entries[] = $row['art_id'];
    print(
$entries."<br />");
    }

so klappt es auch nicht, wegen dem $a in fetch assoc



Zitat:
wobei die Schlüssel, die jeweilige Zeilennummer angeben,
Wenn ich den Modulooperator verändere macht er mir aber eine kollektive Versetzung.
und noch sehe ich den Effekt des Modulooperators in der Rechnung nicht..

Auch dass da plötzlich ein $k aufgetaucht ist hat mich irritiert.
Ach herrje :-(

Grüße
Christoph






Code:
$dsatz[1]        INT 15            <------
$dsatz[2]        INT 14                   |   vertauschen
$dsatz[3]        INT 13            <------
 
$dsatz[4]        INT 12            <------
$dsatz[5]        INT 11                   |   vertauschen
$dsatz[6]        INT 10            <------
 
$dsatz[7]        INT  9            <------
$dsatz[8]        INT  8                   |   vertauschen
$dsatz[9]        INT  7            <------
 
$dsatz[10]       INT  6            <------
$dsatz[11]       INT  5                   |   vertauschen
$dsatz[12]       INT  4            <------
aber anstelle von Integer kann auch bzw. wird dann später ein String
verwendet. INT ist bloß zu Testzwecken.
Es soll ja die letzten 12 Überschriften(THEMEN in einem Forum anzeigen)
nur ein grafischer Umstand verlangt, dass in einem Dreierblock letzte
und erste Überschrift vertauscht werden müssen.

Diese Vertauschung oder Sortierung bei Arrays...gibt es da einen spez. Befehl?
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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
Daten aus Textdatei auf einer HTML oder PHP Seite ausgeben Max_04 PHP Grundlagen 10 16.05.2005 13:53:35
Textdateien lesen und in Html ausgeben AlexAdmin PHP Grundlagen 7 26.10.2004 23:35:28
Formulardaten mit PHP auswerten und in eine HTML Tabelle eintragen lassen? thomas_taubert PHP Grundlagen 4 06.10.2004 15:24:19
html ausgeben rSh PHP für Fortgeschrittene und Experten 2 04.06.2004 11:14:10
SQL ABfrage in Tabelle ausgeben. Shape24 PHP für Fortgeschrittene und Experten 13 17.05.2003 11:33:30


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:10:44 Uhr.


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


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