PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   Wer kann mir das mal erklären? (https://www.php-resource.de/forum/php-developer-forum/10337-wer-kann-mir-das-mal-erklaeren.html)

Wotan 16-08-2002 15:59

Wer kann mir das mal erklären?
 
PHP-Code:

        for ($m=0$m<$level-1$m++)
            {
            echo (
$letztes[$m] ? $space_gif $i_gif);
            }
        if (
$m<$level) echo ($letztes[$m] ? $l_gif $t_gif);
               {
               echo (
$msg["hatantwort"] ? $m_gif : ($level || $count $c_gif $n_gif));
               } 


Wotan 16-08-2002 21:40

Da es sich hierbei um keinen Code-Schnippsel von mir handelt, wäre ich ganz froh wenn mir jemand diesen erklären könnte.

Benny-one 16-08-2002 22:25

wenn du mich fragst ist das: for ($m=0; $m<$level-1; $m++)
{
echo ($letztes[$m] ? $space_gif : $i_gif);
}
if ($m<$level) echo ($letztes[$m] ? $l_gif : $t_gif);
{
echo ($msg["hatantwort"] ? $m_gif : ($level || $count ? $c_gif : $n_gif));
}

ein auszug von nem forum oder gbook. weil das ding nei for schleife hat und bei bestimmten "Dingen" sich ändert. Aber wenn du mich fragst, ist das der letzte Script den der Typ gemacht hat :D

fusiba 16-08-2002 22:27

Ich denke mal, du weißt was die ganzen, teilweise verschachtelten, "dreifachen konditionalen Operatoren" vom Prinzip her machen!?
Falls nicht: http://www.php.net/manual/de/language.expressions.php

Um jetzt genau zu sagen, was der Code-Schnippsel genau macht, müsste man wissen, was die ganzen Variablen ($letztes, $msg, level,...) für eine Funktion/Bedeutung haben.

Gruß
Jan

Benny-one 16-08-2002 22:28

ehrlich gesagr, ich weiss es nicht, aber das ist mir egal ich hab meine Funktion mit 200 Zeilen und 30 If Anweisungen, das reicht mir!

Wotan 16-08-2002 22:34

Das ist Teil einer Anzeige für eine Baumstruktur. Nur leider werden mir die falschen gif dargestellt und ich komme nicht darauf wo der Fehler liegt. Wie gesagt weil der Schnippsel nicht von mir ist und ich kein blassen Dunst habe wo ich suchen muss.

fusiba 16-08-2002 22:49

steht die echo-Anweisung wirklich so "alleine" im Programm

PHP-Code:

if ($m<$level) echo ($letztes[$m] ? $l_gif $t_gif);
{
  echo (
$msg["hatantwort"] ? $m_gif : ($level || $count $c_gif $n_gif));



So hat die if-Abfrage überhaupt keine Auswirkung auf das echo, und das echo wird immer ausgeführt. Warum dann die geschweiften Klammern!?

Aber das weißt du wahrscheinlich auch nicht, ist ja nicht von dir ;)

fusiba 16-08-2002 22:58

Weiß nicht, ob dir das hilft, aber der Code-Schnippsel sollte genau das gleiche machen. Vielleicht ist er aber etwas verständlicher.

PHP-Code:

for ($m=0$m<$level-1$m++)
{
    if (
$letztes[$m])
    {
        echo 
$space_gif;
    }
    else
    {
        echo 
$i_gif;
    }
}

if (
$m<$level)
{
    if (
$letztes[$m])
    {
        echo (
$l_gif);
    }
    else
    {
        echo (
$t_gif);
    }
}

if (
$msg["hatantwort"])
{
    echo 
$m_gif;
}
else
{
    if (
$level || $count)
    {
        echo 
$c_gif;
    }
    else
    {
        echo 
$n_gif;
    }



Wotan 16-08-2002 23:00

So hab ich es bekommen.
wir haben dannach aber noch eine anderung gemacht und die sieht so aus. Bringt aber das selbe Bild in der Baumstruktur aus.
PHP-Code:

if (!$level)
    echo (
$msg["hatantwort"] ? $m_gif $n_gif);
    else
    {
    for (
$m=0$m<$level-1$m++)
    echo (
$letztes[$m] ? $space_gif $i_gif);
    echo (!
$letztes[$m] ? $t_gif $l_gif);
    echo (
$msg["hatantwort"] ? $m_gif $c_gif);
    } 


fusiba 16-08-2002 23:21

Ist das so gewollt, dass nur bei $level=0, 2,3,4.... etwas ausgegeben werden soll und nicht bei $level=1 ?

Und das hier...

PHP-Code:

echo ($letztes[$m] ? $space_gif $i_gif);
echo (!
$letztes[$m] ? $t_gif $l_gif); 

...macht das gleiche wie

PHP-Code:

echo ($letztes[$m] ? $space_gif.$l_gif $i_gif.$t_gif); 

Mehr kann ich dir zu den Schnippsel leider auch nicht "helfen".

Wotan 16-08-2002 23:32

Liste der Anhänge anzeigen (Anzahl: 1)
schau dir mal hier das Script an
PHP-Code:

<?php
function output_threaded ($pid$parent$level)
    {
    global 
$table;
    global 
$t_gif,$l_gif,$p_gif,$m_gif,$c_gif,$i_gif,$n_gif,$space_gif;
    static 
$letztes = array();

    
$sql_id mysql_query ("SELECT a.*, count(b.id) AS hatantwort FROM $table AS a LEFT JOIN $table AS b ON b.post_parent=a.id WHERE a.post_thread='$pid' AND a.post_parent='$parent' GROUP BY a.id ORDER BY a.post_date")or die(mysql_error());
    
$n mysql_num_rows($sql_id);
    for (
$count=0$msg mysql_fetch_assoc($sql_id); $count++)
        {
        echo 
"<tr bgcolor=\"#dfdfdf\">
        <td>"
;

/*        if (!$level)
            echo ($msg["hatantwort"] ? $m_gif : $n_gif);
        else
            {
            for ($m=0; $m<$level-1; $m++)
            echo ($letztes[$m] ? $space_gif : $i_gif);
            echo (!$letztes[$m] ? $t_gif : $l_gif);
            echo ($msg["hatantwort"] ? $m_gif : $c_gif);
            }
*/

/*
// Kurzform
        for ($m=0; $m<$level-1; $m++)
            {
            echo ($letztes[$m] ? $space_gif : $i_gif);
            }
        if ($m<$level) echo ($letztes[$m] ? $l_gif : $t_gif);
               {
               echo ($msg["hatantwort"] ? $m_gif : ($level || $count ? $c_gif : $n_gif));
               }
*/

// Langform
        
for ($m=0$m<$level-1$m++)
            {
            if (
$letztes[$m])
                {
                echo 
$space_gif;
                }
            else
                {
                echo 
$i_gif;
                }
            }

        if (
$m<$level)
            {
            if (
$letztes[$m])
                {
                echo (
$l_gif);
                }
            else
                {
                echo (
$t_gif);
                }
            }

        if (
$msg["hatantwort"])
            {
            echo 
$m_gif;
            }
        else
            {
            if (
$level || $count)
                {
                echo 
$c_gif;
                }
            else
                {
                echo 
$n_gif;
                }
            }


        echo 
"<font> <a href=\"show.php?id=".$msg[id]."\">".$msg["post_subject"]."</font></a></td>
        <td><font>"
.$msg["post_userid"]."</font></td>
        <td><font>"
.$msg["post_date"]."</font></td>
        </tr>\n"
;
        
output_threaded ($pid$msg[id], $level+1);
        }
    }
output_threaded($post_id00);
?>

Das ist die ganze Funktion für die Baumstruktur.

Wenn du es Testen willst mit dieser Datenbankstruktur.
Code:

id        thread        parent        gif
1        1        0        M
7        1        1        TM
10        1        1        TC
18        1        7        ILC <=geändert
19        1        1        LM <=geändert
26        1        19        SLC

Die Bilder sind im Anhang.

fusiba 16-08-2002 23:54

hm, wozu ist denn eigentlich $letztes gut??

Die Variable wird am Anfang nur einmal initalisiert

static $letztes = array();

und dann nie mit Werten gefüllt.

Und welche genaue Funktion hat die Spalte "gif" in der Datenbankstruktur?

Wotan 17-08-2002 00:05

Zitat:

Original geschrieben von fusiba
hm, wozu ist denn eigentlich $letztes gut??

Die Variable wird am Anfang nur einmal initalisiert

static $letztes = array();

Gute Frage
Zitat:

Original geschrieben von fusiba

und dann nie mit Werten gefüllt.

Und welche genaue Funktion hat die Spalte "gif" in der Datenbankstruktur?

Gif soll dir darstellen welches gif wo hin soll. Gehört eigentlich nicht in die Datenbank.
EDIT:

Dort hat sich ein Feherl eingeschlichen, ich änder das mal. in dem Posting.


fusiba 17-08-2002 00:32

so, ich habe dein skript jetzt erstmal bei mir zum laufen bekommen, läuft aber noch nicht richtig denke ich ;)

Ich bekomme bei der Ausgabe folgende Icons als Ergebnis

ICON ID
M 1
TM 7
ITC 18
TC 10
TM 19
ITC 26

Hast du das soweit auch?
Und richtig wäre es wenn's jetzt so ist wie in der GIF-Spalte!?

Wotan 17-08-2002 00:36

genau das gleich wie bei mir. So wie es unter der Spalte gif steht soll es eigentlich werden.


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

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG