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

Handbuch der Java-Programmierung

Handbuch der Java-Programmierung 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 25.06.2002, 17:46:04
Benutzerbild von Nonstop
Nonstop Nonstop ist offline
Junior Member
 
Registriert seit: May 2002
Ort: Großkuchen
Alter: 37
Beiträge: 177
Nonstop eine Nachricht über ICQ schicken
so ein shitt

Ich brauche Hilfe!

Bis jetzt konnte ich mich um functions Funktionen immer drücken und ich hab das problem das ich jetzt keine Ahnung hab wie sie funzen...

wer kann mir die innere logig einer function nahebringen?

THX im vorraus;::
__________________
Man muss doch nicht den Bach hinunter gehen ...
Runter schwimmen geht doch viel schneller
Mit Zitat antworten
  #2  
Alt 25.06.2002, 18:47:07
FeliX_22 FeliX_22 ist offline
Anfänger
 
Registriert seit: Jun 2002
Ort: Grünstadt
Alter: 43
Beiträge: 28
Funktionen

Heißt das, du hast in gar keiner Programmiersprache mit Funktionen gearbeitet?
Mit Zitat antworten
  #3  
Alt 25.06.2002, 18:57:17
Benutzerbild von Nonstop
Nonstop Nonstop ist offline
Junior Member
 
Registriert seit: May 2002
Ort: Großkuchen
Alter: 37
Beiträge: 177
Nonstop eine Nachricht über ICQ schicken
nein bis jetzt konnte ich mich geschikt drum rum schmuggeln
__________________
Man muss doch nicht den Bach hinunter gehen ...
Runter schwimmen geht doch viel schneller
Mit Zitat antworten
  #4  
Alt 25.06.2002, 19:40:50
FeliX_22 FeliX_22 ist offline
Anfänger
 
Registriert seit: Jun 2002
Ort: Grünstadt
Alter: 43
Beiträge: 28
Respekt, ich hatte das nicht geschafft ;)

Das ist eine so grundlegende Frage, dass ich dir schon fast raten möchte in irgendeinem Buch von irgendeiner Programmiersprache das Thema Funktionen durchzulesen. Es ist wirklich nicht schwer.

Funktionen kann man für verschiedene Zwecke gebrauchen. Die einfachste Art ist wohl, dass man den Code, der oft durchlaufen werden muss, nur ein Mal eingeben muss.

Eigentlich kann in einer Funktion in etwas das gleiche stehen wie ausserhalb. Es gibt auch rekursive Funktionen, doch die habe ich noch nie verstanden.

Na ja, is nicht grad ne tolle Hilfe, gibt bestimmt Leute hier, die sich damit besser auskennen, hoffe hilft dir trotzdem irgendwie weiter.

Was heisst innere Logik? Ist doch genauso, wie der Rest des Codes auch?

Also irgendwo im Programmcode wird ein Wert an eine function weitergegeben. Welche Werte das sein müssen, steht i. d. Regel hinter dem Funktionsnamen z. B.

eine_funktion(wert)

Dieser Wert wird dann innerhalb der Funktion weiterbearbeitet usw...

Also wenn ich hier Schwachsinn geschrieben habe, dann sagt mir bescheid.
Mit Zitat antworten
  #5  
Alt 25.06.2002, 19:46:41
Benutzerbild von Nonstop
Nonstop Nonstop ist offline
Junior Member
 
Registriert seit: May 2002
Ort: Großkuchen
Alter: 37
Beiträge: 177
Nonstop eine Nachricht über ICQ schicken
ich will das hier in ne funktion einpacken die von einer anderen seite aufgerufen werden soll

PHP-Code:

<?
function menu ($Prefix, $Suffix, $Site, $Sprache, $SelectedClass)
{

}
{
$conn_id = odbc_connect("ghm","","");
$sqlstring = "SELECT *
    FROM Sprachen
        INNER JOIN (Sites
        INNER JOIN ((Matchcodes
        INNER JOIN Menu_Struct ON Matchcodes.MatchID = Menu_Struct.MatchID)
        INNER JOIN Menu_Data ON (Menu_Data.SiteID = Menu_Struct.SiteID) AND (Menu_Struct.MenuID = Menu_Data.MenuID))
        ON (Sites.SiteID = Menu_Struct.SiteID) AND (Sites.SiteID = Matchcodes.SiteID))
        ON Sprachen.SpracheID = Menu_Data.SpracheID
    
    WHERE (Sprachen.SpracheMatch = '".$Sprache."')
    AND   ((Menu_Struct.Invisible IS NULL) OR (Menu_Struct.Invisible = 0))
    AND   (Sites.SiteMatch = '".$Site."')";
    
if ($TopLevMenu == -1)
{
$sqlstr = $sqlstring . 'AND (Menu_Struct.ParentItem IS NULL)';
}
else 
{
$sqlstr = $sqlstring . "    AND   (Menu_Struct.ParentItem IN (    SELECT Menu_Struct.MenuID
                                            FROM Sites INNER JOIN (Matchcodes INNER JOIN Menu_Struct 
                                            ON Matchcodes.MatchID = Menu_Struct.MatchID) 
                                            ON (Sites.SiteID = Menu_Struct.SiteID) AND (Sites.SiteID = Matchcodes.SiteID)
                                            WHERE (Matchcodes.Matchcode = '".$Page."') 
                                            AND   (Sites.SiteMatch = '".$Site."') )";
};

$sqlstring = $sqlstring . "ORDER BY Menu_Struct.MenuID";

$Tab = odbc_exec($conn_id, $sqlstring);

if (odbc_result($Tab, "SiteID")=='')
{
  $sqlstring = "SELECT *
        FROM Sprachen
            INNER JOIN (Sites
            INNER JOIN ((Matchcodes
            INNER JOIN Menu_Struct ON Matchcodes.MatchID = Menu_Struct.MatchID)
            INNER JOIN Menu_Data ON (Menu_Data.SiteID = Menu_Struct.SiteID) AND (Menu_Struct.MenuID = Menu_Data.MenuID))
            ON (Sites.SiteID = Menu_Struct.SiteID) AND (Sites.SiteID = Matchcodes.SiteID))
            ON Sprachen.SpracheID = Menu_Data.SpracheID
        
        WHERE (Sprachen.SpracheMatch = '".$Sprache."')
        AND   ((Menu_Struct.Invisible IS NULL) OR (Menu_Struct.Invisible = 0))
        AND   (Sites.SiteMatch = '".$Site."')";
        
        if ($TopLevMenu == -1)
        {
        $sqlstr = $sqlstring . 'AND (Menu_Struct.ParentItem IS NULL)';
        }
        else 
        {
        $sqlstr = $sqlstring . "    AND   (Menu_Struct.ParentItem IN (    SELECT Menu_Struct.ParentItem
                                                FROM Sites INNER JOIN (Matchcodes INNER JOIN Menu_Struct 
                                                ON Matchcodes.MatchID = Menu_Struct.MatchID) 
                                                ON (Sites.SiteID = Menu_Struct.SiteID) AND (Sites.SiteID = Matchcodes.SiteID)
                                                WHERE (Matchcodes.Matchcode = '".$Page."') 
                                                AND   (Sites.SiteMatch = '".$Site."') )";
        };
        $sqlstring = $sqlstring . "ORDER BY Menu_Struct.MenuID";
        $Tab = odbc_exec($conn_id, $sqlstring);
};

DO {
    $Matchcode = odbc_result($Tab,"Matchcode");
    $LinkText = odbc_result($Tab,"LinkText");
    echo '<a href="">'.$Matchcode.'</a>';
    }
while ( odbc_fetch_row($Tab) );

};
?>
so sieht es gerade aus und ich weis net genau wie ich das mach das soll ne navigation werden....

THX:

//@X
__________________
Man muss doch nicht den Bach hinunter gehen ...
Runter schwimmen geht doch viel schneller
Mit Zitat antworten
  #6  
Alt 26.06.2002, 13:49:16
Ben20
Guest
 
Beiträge: n/a
Füge das ganze in eine eigene Datei (Bsp.: menu.inc) schreibe dann

function NAMEDERFUNKTION(Variablenliste) {


//-- Quelltext der in die Funktion soll



}



Auf der Seite in der Du die Funktion aufrufen willst schreibst Du:

include "pfadzuderdatei/menu.inc";
NAMEDERFUNKTION(Variablen).


Natürlich mußt die Platzhalter durch die tatsächlichen Werte ersetzen.


Probiers mal aus und wenns Probleme gibt, poste es hier.
Mit Zitat antworten
  #7  
Alt 26.06.2002, 14:05:53
Benutzerbild von Nonstop
Nonstop Nonstop ist offline
Junior Member
 
Registriert seit: May 2002
Ort: Großkuchen
Alter: 37
Beiträge: 177
Nonstop eine Nachricht über ICQ schicken
Zitat:
Original geschrieben von Ben20
Füge das ganze in eine eigene Datei (Bsp.: menu.inc) schreibe dann

function NAMEDERFUNKTION(Variablenliste) {


//-- Quelltext der in die Funktion soll



}



Auf der Seite in der Du die Funktion aufrufen willst schreibst Du:

include "pfadzuderdatei/menu.inc";
NAMEDERFUNKTION(Variablen).


Natürlich mußt die Platzhalter durch die tatsächlichen Werte ersetzen.


Probiers mal aus und wenns Probleme gibt, poste es hier.
Das ist ja fast zu easy wo ist der ha-ha-haken?
__________________
Man muss doch nicht den Bach hinunter gehen ...
Runter schwimmen geht doch viel schneller
Mit Zitat antworten
  #8  
Alt 26.06.2002, 14:27:06
Benutzerbild von Nonstop
Nonstop Nonstop ist offline
Junior Member
 
Registriert seit: May 2002
Ort: Großkuchen
Alter: 37
Beiträge: 177
Nonstop eine Nachricht über ICQ schicken
Ok ich hab zwei seiten :

index.php und menu.php...

in der index steht jetzt:

PHP-Code:
<? 
if (isset($Page))
{
include ('menu.php');
menu($Prefix, $Suffix, $Site, $Sprache, $SelectedClass);
}
?>
und das menue:

PHP-Code:
<?
function menu ($Prefix, $Suffix, $Site, $Sprache, $SelectedClass)
{
$conn_id = odbc_connect("ghm","","");
$sqlstring = "SELECT *
    FROM Sprachen
        INNER JOIN (Sites
        INNER JOIN ((Matchcodes
        INNER JOIN Menu_Struct ON Matchcodes.MatchID = Menu_Struct.MatchID)
        INNER JOIN Menu_Data ON (Menu_Data.SiteID = Menu_Struct.SiteID) AND (Menu_Struct.MenuID = Menu_Data.MenuID))
        ON (Sites.SiteID = Menu_Struct.SiteID) AND (Sites.SiteID = Matchcodes.SiteID))
        ON Sprachen.SpracheID = Menu_Data.SpracheID
    
    WHERE (Sprachen.SpracheMatch = '".$Sprache."')
    AND   ((Menu_Struct.Invisible IS NULL) OR (Menu_Struct.Invisible = 0))
    AND   (Sites.SiteMatch = '".$Site."')";
    
if ($TopLevMenu == -1)
{
$sqlstr = $sqlstring . 'AND (Menu_Struct.ParentItem IS NULL)';
}
else 
{
$sqlstr = $sqlstring . "    AND   (Menu_Struct.ParentItem IN (    SELECT Menu_Struct.MenuID
                                            FROM Sites INNER JOIN (Matchcodes INNER JOIN Menu_Struct 
                                            ON Matchcodes.MatchID = Menu_Struct.MatchID) 
                                            ON (Sites.SiteID = Menu_Struct.SiteID) AND (Sites.SiteID = Matchcodes.SiteID)
                                            WHERE (Matchcodes.Matchcode = '".$Page."') 
                                            AND   (Sites.SiteMatch = '".$Site."') )";
}

$sqlstring = $sqlstring . "ORDER BY Menu_Struct.MenuID";

$Tab = odbc_exec($conn_id, $sqlstring);

if (odbc_result($Tab, "SiteID")=='')
{
  $sqlstring = "SELECT *
        FROM Sprachen
            INNER JOIN (Sites
            INNER JOIN ((Matchcodes
            INNER JOIN Menu_Struct ON Matchcodes.MatchID = Menu_Struct.MatchID)
            INNER JOIN Menu_Data ON (Menu_Data.SiteID = Menu_Struct.SiteID) AND (Menu_Struct.MenuID = Menu_Data.MenuID))
            ON (Sites.SiteID = Menu_Struct.SiteID) AND (Sites.SiteID = Matchcodes.SiteID))
            ON Sprachen.SpracheID = Menu_Data.SpracheID
        
        WHERE (Sprachen.SpracheMatch = '".$Sprache."')
        AND   ((Menu_Struct.Invisible IS NULL) OR (Menu_Struct.Invisible = 0))
        AND   (Sites.SiteMatch = '".$Site."')";
        }
        if ($TopLevMenu == -1)
        {
        $sqlstr = $sqlstring . 'AND (Menu_Struct.ParentItem IS NULL)';
        }
        else 
        {
        $sqlstr = $sqlstring . "    AND   (Menu_Struct.ParentItem IN (    SELECT Menu_Struct.ParentItem
                                                FROM Sites INNER JOIN (Matchcodes INNER JOIN Menu_Struct 
                                                ON Matchcodes.MatchID = Menu_Struct.MatchID) 
                                                ON (Sites.SiteID = Menu_Struct.SiteID) AND (Sites.SiteID = Matchcodes.SiteID)
                                                WHERE (Matchcodes.Matchcode = '".$Page."') 
                                                AND   (Sites.SiteMatch = '".$Site."') )";
        }
        $sqlstring = $sqlstring . "ORDER BY Menu_Struct.MenuID";
        $Tab = odbc_exec($conn_id, $sqlstring);
        DO {
        $Matchcode = odbc_result($Tab,"Matchcode");
        $LinkText = odbc_result($Tab,"LinkText");
        echo '<a href="?Site='.$Site.'&Sprache='.$Sprache.'&Page='.$Matchcode.'" target="_self">'.$LinkText.'</a>';
        echo '<br>';
        }
    while ( odbc_fetch_row($Tab) );
}

?>
darauf kommt dann das:


Warning: SQL error: [Microsoft][ODBC Microsoft Access Driver] Syntaxfehler (fehlender Operator) in Abfrageausdruck 'Menu_Struct.MenuIDORDER BY Menu_Struct.MenuID'., SQL state 37000 in SQLExecDirect in SIHV_CM_Menu.php on line 66

Warning: Supplied argument is not a valid ODBC result resource in SIHV_CM_Menu.php on line 68

Warning: Supplied argument is not a valid ODBC result resource in SIHV_CM_Menu.php on line 69


Warning: Supplied argument is not a valid ODBC result resource in SIHV_CM_Menu.php on line 73


Geändert von Nonstop (26.06.2002 um 14:30:08 Uhr)
Mit Zitat antworten
  #9  
Alt 26.06.2002, 15:47:26
Ben20
Guest
 
Beiträge: n/a
Die Funktion wird richtig aufgerufen, aber irgendwo ist ein Fehler in der Datenbankabfrage. Überprüf' mal ob Du in dem $sqlstring nirgendwo eine Klammer oder ein Komma oder sowas vergessen hast.
Mit Zitat antworten
  #10  
Alt 26.06.2002, 15:49:39
Benutzerbild von Nonstop
Nonstop Nonstop ist offline
Junior Member
 
Registriert seit: May 2002
Ort: Großkuchen
Alter: 37
Beiträge: 177
Nonstop eine Nachricht über ICQ schicken
Schon gefunden

Ich hab zwei beirrende Varis drin Sqlstr un Sqlstring. da liegt der fehler!

THX für deine hilfe
__________________
Man muss doch nicht den Bach hinunter gehen ...
Runter schwimmen geht doch viel schneller
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


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:00:53 Uhr.


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


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