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

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign 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
Hilfe Community Kalender Heutige Beiträge Suchen

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

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 05.06.2003, 09:24:57
cobracio cobracio ist offline
Anfänger
 
Registriert seit: May 2003
Ort: nähe Stuttgart
Beiträge: 16
Daten aus SQL auslesen und in 2 Spalten verteilen

Hallo, ich hab mal wieder ein kleines Problemchen :D.
Und zwar, ich lese aus SQL Daten aus und bekomm die auch sauber aufgelistet. Nur, hätte ich eben alle Einträge auf einer Seite, also nebeneinander und nicht wie jetzt, fortlaufend untereinander.
Hatt einer von euch ne idee, wie ich zb sagen kann, dass nach x Zeilen auf der rechten Seite (zB 2. Tabellen Spalte) weitermachen soll.
__________________
by
Lars alias Cobra.C!O
Mit Zitat antworten
  #2  
Alt 05.06.2003, 10:14:19
chris17 chris17 ist offline
Senior Member
 
Registriert seit: Apr 2003
Alter: 57
Beiträge: 1.236
Hi cobracio,

das kannste mit dem Modulo Operator % lösen...

z.B.:
PHP-Code:
<?php


    $anzahl_spalte 
3;
    
    
$num 10// Anzahl Datensätze

    
echo "<table border='1'>n";

    for(
$i 0$i $num$i++)
    {

        if(
$i $anzahl_spalte == 0)
        {
            echo 
"<tr>n";
        }
            
            echo 
"<td>Wert ".$i."</td>n";
        
        
        if( (
$i $anzahl_spalte == $anzahl_spalte 1) || ($i == $num 1) ) 
        {
            echo 
"</tr>n";
        }

    }

    echo 
"</table>";
?>

Geändert von chris17 (05.06.2003 um 10:40:10 Uhr)
Mit Zitat antworten
  #3  
Alt 05.06.2003, 11:31:58
cobracio cobracio ist offline
Anfänger
 
Registriert seit: May 2003
Ort: nähe Stuttgart
Beiträge: 16
irgendwie funzt des ned so richtig :D.
Hier mal der Code:
PHP-Code:
        echo '<table border="1" cellpadding="2">';
        echo 
'<tr><td width="20"><b>Name:</b></td>
                    <td width="20"><b>Vorname:</b></td>
                    <td width="20"><b>Anwesend:</b></td>
                    <td width="20"><b>Bemerkung:</b></td></tr>'
;

    
$anzahl_spalte 2;
    
$num 10// Anzahl Datensätze
    
for($i 0$i $num$i++)
    {
        if(
$i $anzahl_spalte == 0)
        {
            echo 
"<tr>n";
        }
while(
$row mysql_fetch_assoc($result))
    {         

    if(
$row['Anwesend'] == 'Ja') {
            echo 
'<td>'.$row['Name'].'</td>
                    <td>'
.$row['Vorname'].'</td>
                    <td align="center">'
.$row['Anwesend'].'</td>
                    <td>'
.$row['Bemerkung'].'</td>';
        }
        else
        {
            echo 
'<td><font color="#FFFFFF">'.$row['Name'].'</font></td>
                    <td><font color="#FFFFFF">'
.$row['Vorname'].'</font></td>
                    <td align="center"><font color="#FFFFFF">'
.$row['Anwesend'].'</font></td>
                    <td><font color="#FFFFFF">'
.$row['Bemerkung'].'</font></td>';
        }
        if( (
$i $anzahl_spalte == $anzahl_spalte 1) || ($i == $num 1) ) 
        {
            echo 
"</tr>n";
        }
    }
    }
  echo 
'</table>'
Wollte es hald so, dass erst links herunter geschrieben wird, und dann nach der hälfte der zeilen ($num_rows) es rechts weiter geht.
__________________
by
Lars alias Cobra.C!O

Geändert von cobracio (05.06.2003 um 11:40:49 Uhr)
Mit Zitat antworten
  #4  
Alt 05.06.2003, 12:59:16
chris17 chris17 ist offline
Senior Member
 
Registriert seit: Apr 2003
Alter: 57
Beiträge: 1.236
Ok,
dann sieht die Sache ein bissl anders aus.
Bei meinem Bsp. sollte mit der For-Schleife die Datensätze durgegangen werden, Du hast dann jetzt noch die While-Schleife reingepackt...
Wenn dann eher so, und da Du ja wirklich nur 2 Spalten haben willst kann man sich auch das mit der $anzahl_spalte schenken.
PHP-Code:


$i 
0;

echo 
'<table border="1" cellpadding="2">';
        echo 
'<tr><td width="20"><b>Name:</b></td>
                    <td width="20"><b>Vorname:</b></td>
                    <td width="20"><b>Anwesend:</b></td>
                    <td width="20"><b>Bemerkung:</b></td>
                    
                    
                    <td width="20"><b>Name:</b></td>
                    <td width="20"><b>Vorname:</b></td>
                    <td width="20"><b>Anwesend:</b></td>
                    <td width="20"><b>Bemerkung:</b></td>
                    
                    </tr>'
;

   
    while(
$row mysql_fetch_assoc($result))
    {
    
        if(
$i == 0)
        {
            echo 
"<tr>n";
        }
    
             

           if(
$row['Anwesend'] == 'Ja') {
    
            echo 
'<td>'.$row['Name'].'</td>
                    <td>'
.$row['Vorname'].'</td>
                    <td align="center">'
.$row['Anwesend'].'</td>
                    <td>'
.$row['Bemerkung'].'</td>';
        }
        else
        {
            echo 
'<td><font color="red">'.$row['Name'].'</font></td>
                    <td><font color="red">'
.$row['Vorname'].'</font></td>
                    <td align="center"><font color="red">'
.$row['Anwesend'].'</font></td>
                    <td><font color="red">'
.$row['Bemerkung'].'</font></td>';
        }
       
       
       
        if (
$i == 1)  
        {
            echo 
"</tr>n";
        }
        
        
$i++;
    
    }
  echo 
'</table>'
Das löst aber noch nicht das Problem, dass Du "zuerst" die Linke dann die Rechte Spalte ausgefüllt haben willst. Da wird es ein wenig kniffliger. Denk daran, dass die Seiten von "oben nach unten" aufgebaut werden...
Lösungsansatz: Daten in Array packen (..hatten wir doch schon mal :-) ) umsortieren, dann ausgeben...

Bsp.: array_vorher("1","2","3","4","5")

array_nachher("1","4","2","5","3")

War das verständlich?!? *leise zweifel* Geh am Besten das Ganze mal auf Papier durch...

Gruss chris17

P.S.: Immer nur fertigen Code abzuliefern, wird hier glaub ich nicht so gerne gesehen.

Geändert von chris17 (05.06.2003 um 13:06:52 Uhr)
Mit Zitat antworten
  #5  
Alt 05.06.2003, 13:28:15
cobracio cobracio ist offline
Anfänger
 
Registriert seit: May 2003
Ort: nähe Stuttgart
Beiträge: 16
Danke schon mal, ist echt gut soweit.
Nur was genau macht den diese Funktion?? Was wird hier abgefragt??
Zitat:
Original geschrieben von chris17
PHP-Code:
if ($i == 0
__________________
by
Lars alias Cobra.C!O
Mit Zitat antworten
  #6  
Alt 05.06.2003, 13:50:07
chris17 chris17 ist offline
Senior Member
 
Registriert seit: Apr 2003
Alter: 57
Beiträge: 1.236
Modulo liefert den Restwert einer Division
Bsp.: 10 % 6 = 4
d.h. die 6 "passt" einmal in die 10, und 4 bleibt übrig.
In Deinem Fall soll ja der <tr>-Tag alle 2 Datensätze geschrieben werden.
%2 wird auch gerne benutzt um gerade und ungerade Zahlen zu ermitteln.
PHP-Code:
<?php

    
echo (10 6)."<br>";

    for(
$i 0$i 10$i++)
    {
        echo 
$i." - ".($i 2)."<br>";
    }


?>
Mit Zitat antworten
  #7  
Alt 05.06.2003, 13:52:25
diver-network diver-network ist offline
Junior Member
 
Registriert seit: Apr 2003
Ort: TÜ
Beiträge: 337
Hi,

das %- Zeichen bedeutet Modulo. Dies ist, soweit ich weiß, ein mathematischer Ausdruck und bedeutet nichts anderes als den Rest, der bei der Division von zwei Zahlen übrig bleibt.

Z.B.: 4 : 2 = 2 Rest 0 ==> Modulo = 0
3 : 2 = 1 Rest 1 ==> Modulo = 1

Sinnvolle Verwendungen von Modulo sind also immer Überprüfungen, ob eine Zahl durch eine andere teilbar ist (Modulo = 0) oder nicht (Modulo > 0).

HTH,

Andy
__________________
Delphine, Wale, Orcas und mee(h)r:
tauchen in Alor/Indonesien
http://www.alor-dive.com
Mit Zitat antworten
  #8  
Alt 05.06.2003, 13:56:57
cobracio cobracio ist offline
Anfänger
 
Registriert seit: May 2003
Ort: nähe Stuttgart
Beiträge: 16
Aja, okay, schon wieder was gelernt :D.

Zu dem Problem, wo noch besteht.
Dein Lösungsansatz funktioniert so nicht. Um die Daten so zu bekommen wie ich will, müsste es praktisch so aussehen, ausgehend von 50 Datensätzen:
Zeile 1: 1 | 26
Zeile 2: 2 | 27
Zeile 3: 3 | 28
.
.

Dein Beispiel würde die Daten auch falsch liefern. Denk ich mal :D.
Hast du für obigen Ansatz nen kleinen Tipp, wie ich das angehen könnte??
__________________
by
Lars alias Cobra.C!O
Mit Zitat antworten
  #9  
Alt 05.06.2003, 14:09:05
chris17 chris17 ist offline
Senior Member
 
Registriert seit: Apr 2003
Alter: 57
Beiträge: 1.236
Probier doch mal aus :-)
PHP-Code:
<?php

    $array_vorher 
= array("1","2","3","4","5");

    echo 
"<table border='1'>";
        
    for(
$i 0$i count($array_vorher); $i++)
    {
    
            if(
$i == 0)
            {
                echo 
"<tr>n";
            }
            
                echo 
"<td>".$array_vorher[$i]."</td>n";

            if( (
$i == 1) || ($i == count($array_vorher)-1) ) // Damit beim letzten Durchlauf auch </tr> geschrieben wird
            
{
                echo 
"</tr>n";
            }

    }
    
    echo 
"</table>";
//--------------------------------------------------------------------------------    
    
$array_nachher = array("1","4","2","5","3");
    
    echo 
"<table border='1'>";

    for(
$i 0$i count($array_nachher); $i++)
    {
    
            if(
$i == 0)
            {
                echo 
"<tr>n";
            }

                echo 
"<td>".$array_nachher[$i]."</td>n";

            if( (
$i == 1) || ($i == count($array_nachher)-1) )
            {
                echo 
"</tr>n";
            }

    }
    
    echo 
"</table>";

?>

Geändert von chris17 (05.06.2003 um 14:17:33 Uhr)
Mit Zitat antworten
  #10  
Alt 05.06.2003, 14:16:51
cobracio cobracio ist offline
Anfänger
 
Registriert seit: May 2003
Ort: nähe Stuttgart
Beiträge: 16
Okay, hast ja gewonnen :D.
Nur wie kann ich jetzt die Daten so hindrehen??
Ich hab schon versucht, aber ich kann ja nur sagen, welche spalte (Name, Vorname, ...) er nehmen soll, dass er das so macht wie in deinem Beispiel hab ich noch ned hinbekommen.
__________________
by
Lars alias Cobra.C!O
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


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:29:21 Uhr.


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


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