tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
22
ZUGRIFFE
1174
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von evoleena
    evoleena evoleena ist offline Mitglied Brokat
    Registriert seit
    Feb 2004
    Beiträge
    315
    hallo ihrs!

    hab mich jetzt daran gemacht, da meine Scripte langsam zu unübersichtlich werden, und ich manche abfragen mehrmals schreibe, einen Datei für die Funktionen anzulegen.

    1.Problem
    Muss ich in meiner funktionen.php meine Connection und mysql_functions includen?
    Wenn ich das mache, und auf die Datei zugreife, wo ich meine funktionen.php benutze, bekomme ich fatal error, wo irgendwas in der Mysql functions falsch ist.
    Wenn ich nichts in funktionen.php include gehts! Woran liegt das?

    2.Problem
    wenn ich eine Abfrage in meine Funktionen.php schreibe
    z.B.
    PHP-Code:
    function gast_auswaehlen($db,$gastid)
    {
        
    $query_gast "SELECT * FROM gast WHERE Gast_ID='".$gastid."'";
        
    $gast mysql_db_query($db,$query_gast);

    Muss ich dann die einzelnen Elemente die ich dann aus der Datenbank auslesen möchte wie z.B. den Namen des Gastes und so! da mit hinbauen?
    z.B. so
    PHP-Code:
    name $gast['name']; 
     

  2. #2
    Registriert seit
    Jun 2004
    Ort
    Stuttgart (BW)
    Beiträge
    1.746
    Zu 1.: Wahrscheinlich includest Du die Connection und mysql_functions sowohl in der funktionen.php, als auch in der "Haupt"-PHP Datei. Das brauchst (darfst) Du nicht, da beim ersten includen schon einmal Instanzen der Klasse abgelegt werden. Da Du die funktionen.php in der "Haupt"-PHP Datei includest und dort die Connection und mysql_functions bereits includet sind, werden diese auch für die funktionen.php übernommen. (Kann es sein, dass ich mich ein wenig kompliziert ausdrücke?)

    Zu 2.: Was Du brauchst, sind Rückgabewerte, damit Du in der "Haupt"-PHP Datei die Daten verwenden/auswerten kannst.

    Das was Du machst, ist Klassenprogrammierung. Wenn Du da Hilfe brauchst, kann ich Dir gerne ein Beispiel (samt Erläuterung, was was bedeutet) geben.

    redlama
     
    Wissen ist Macht! Nichts wissen macht auch nichts, ...
    www.redlama.org

  3. #3
    Lumpi02 Lumpi02 ist offline Mitglied Gold
    Registriert seit
    Oct 2004
    Ort
    Vogtland
    Beiträge
    148
    in die funktion.php brauch keine Verbindung o.ä. rein, einfach nur deine Funktionen.
    Ich habe das z.B. so, das ich eine Config.php habe, die diese function.php includet, neben der Varibalen.php etc. Auf jeder Seite ist die 3te Zeile das includen der Connect.php (nach öffnen und error_reporting) und danach die header.php, die unter anderen die config aufruft

    die Variablen brauchst du normalerweise nicht in die Funktion schreiben, die soll ja in dein Script und wenn du

    gast_auswaehlen();

    im Script verwendest, wird an dieser Stelle der Query zur DB geschickt, somit sollten die Variablen auch bekannt sein
     
    Gruß Lumpi02

    visit: http://www.dezueng.de

  4. #4
    Avatar von evoleena
    evoleena evoleena ist offline Mitglied Brokat
    Registriert seit
    Feb 2004
    Beiträge
    315
    @ relama ne hast du gut erklärt habs verstanden

    zu 2. wie müssen die Rückgabewerte aussehen?
    hab jetzt in die Funktion return $gast eingebaut
    wenn ich jetzt den namen im formular haben will steht nichts da! aber es kommt auch keine Fehlermeldung.
    Würde bedeuten das er die variable $gast kennt auch die Abfrage durchgeht, aber nix ausgibt!
    Ich habs so gemacht
    PHP-Code:
    Buchungen für ".$gast['ansp_name']."".$gast['ansp_vorname']." 
    aber da zeigt er nichts an!
     

  5. #5
    Registriert seit
    Jun 2004
    Ort
    Stuttgart (BW)
    Beiträge
    1.746
    Was steckt denn in $gast drin bei der Rückgabe?
    Ist $gast denn auch ein Array? Schließlich willst Du doch mehrere Werte übergeben, oder?
    Zeig mal bitte ein bisschen mehr Quelltext.

    redlama
     
    Wissen ist Macht! Nichts wissen macht auch nichts, ...
    www.redlama.org

  6. #6
    Avatar von evoleena
    evoleena evoleena ist offline Mitglied Brokat
    Registriert seit
    Feb 2004
    Beiträge
    315
    Ja mach ich
    Das steck hinter gast in funktionen.php
    PHP-Code:
    function gast_auswaehlen($db,$gastid)
    {
        
    $query_gast "SELECT * FROM gast WHERE Gast_ID='".$gastid."'";
        
    $gast mysql_db_query($db,$query_gast);
        return 
    $gast;

    Das steht in meiner andere Datei
    PHP-Code:
    $gast gast_auswaehlen($db,$gastid);
         echo
    "<table border='1' align='center'>
          <tr>
           <td colspan='6' align='center'>
            Buchungen für "
    .$gast['ansp_name'].", ".$gast['ansp_vorname'].
     

  7. #7
    Registriert seit
    Jun 2004
    Ort
    Stuttgart (BW)
    Beiträge
    1.746
    Also ankommen müsste eigentlich was in der anderen PHP Datei.
    Aber ich bin mir jetzt nicht wirklich sicher, ob Du so ($gast = mysql_db_query($db,$query_gast) wirklich die Resultate des select Statement erhältst.
    Ich mache das ganze immer ein wenig anders, indem ich für alles eigene Klassen programmiere.

    redlama
     
    Wissen ist Macht! Nichts wissen macht auch nichts, ...
    www.redlama.org

  8. #8
    Avatar von evoleena
    evoleena evoleena ist offline Mitglied Brokat
    Registriert seit
    Feb 2004
    Beiträge
    315
    Und wie machst du das?
     

  9. #9
    Registriert seit
    Jun 2004
    Ort
    Stuttgart (BW)
    Beiträge
    1.746
    Moin!

    Also ich habe 2 Dateien. Eine .inc und eine .php Datei. Beide sind für die Verbindung zur Datenbank zuständig (auch auch nur diese Dateien).
    Dann habe ich Klassen programmiert, in denen die Statements abgesetzt (also an MySQL geschickt) werden. Und in meinen PHP Dateien (die für die Anzeige und Auswertung der Daten) setze ich Instanzen der Klassen und rufe die Rückgabewerte aus.
    Wenn Du magst, gebe ich Dir gerne ein Beispiel und helfe Dir mit den Klassen für Dein spezielles Problem.

    redlama
     
    Wissen ist Macht! Nichts wissen macht auch nichts, ...
    www.redlama.org

  10. #10
    Registriert seit
    Apr 2002
    Ort
    HH
    Beiträge
    3.224
    mysql_query() liefert Dir eine RessourceID (oder false), also einen internen Zeiger der DB auf auf Deine Liste von Ergebnissen. mysql_fetch_array() liefert Dir davon Deine Ergebnisse.
    Also:
    PHP-Code:
    $ref=mysql_query(...);
    if (
    $ref) {
        
    $gast=mysql_fetch_array($ref);
        return 
    $gast;
    } else {
        return 
    false;

    mysql_db_query() ist übrigends als deprecated eingestuft und sollte nicht mehr verwendet werden.

    Beim "includen" verhält sich der Code der eingebundenen Datei im Prinzip, als würde er dahin geschrieben, wo das include steht. Also gilt auch der Arbeitspfad, z.B. zum Öffnen von Dateien oder zum Einbinden von weiteren Funktionsskripten, wie in der einbindenden Datei.
    Nur als Tipp für die Zukunft.

    Gruß hpvw
    Geändert von hpvw (13.12.04 um 08:44 Uhr)
     

  11. #11
    Avatar von evoleena
    evoleena evoleena ist offline Mitglied Brokat
    Registriert seit
    Feb 2004
    Beiträge
    315
    @relama
    Ich wäre sehr daran interessiert, wenn du mir das z.B. an meinem Beispiel erläutern würdest!
    Geändert von evoleena (13.12.04 um 08:54 Uhr)
     

  12. #12
    Registriert seit
    Apr 2002
    Ort
    HH
    Beiträge
    3.224
    Da kannst an der Stelle mal
    PHP-Code:
    print_r($gast); 
    machen.
    Dann siehst Du genau, was in dem Array steht, und ob es überhaupt ein Array ist.
    So wie Dein Quelltext oben ist, gehe ich mal davon aus, dass die Ausgabe "Ressource ID #1" oder ähnlich lauten wird.
     

  13. #13
    Avatar von evoleena
    evoleena evoleena ist offline Mitglied Brokat
    Registriert seit
    Feb 2004
    Beiträge
    315
    Ups hat doch schon jmand geantwortet!
    Habs gleich gefuden woran es lag!
    Hab mir deinen Beitrag nochmal angescheut bzgl. deinem Tip!
    Jetzt gehts!
     

  14. #14
    Registriert seit
    Jun 2004
    Ort
    Stuttgart (BW)
    Beiträge
    1.746
    So, hier mal die Dateien.
    Die "inc.db_mysql.inc" bleibt wie sie ist.
    In der "class.db.php" musst Du die von mir gekennzeichneten Stellen (Host, User, PW, ...) natürlich mit den entsprechenden Werten versehen.
    Und dann wäre da noch die class.gast.php
    In dieser class steht das select Statement. Ich habe es im Moment mit "ansp_name" und "ansp_vorname" versehen, aber das ist natürlich beliebig erweiterbar.
    In der PHP Datei, die die Daten anzeigt/ausgiebt mahst Du dann das:
    PHP-Code:
    include("class.gast.php");
    $aSuch = Array();
    $aSuch["gastid"] = ""//HIER DIE GASTID ÜBERGEBEN
    $a = new gast($aSuch); 
    Und die Werte aufrufen tust Du dann mit
    PHP-Code:
    $a->getName()
    $a->getVorname() 
    Bei Fragen, entweder hier oder sonst auch gerne per Mail.

    redlama
    Angehängte Dateien Angehängte Dateien
    Geändert von redlama (13.12.04 um 09:28 Uhr)
     
    Wissen ist Macht! Nichts wissen macht auch nichts, ...
    www.redlama.org

  15. #15
    Avatar von evoleena
    evoleena evoleena ist offline Mitglied Brokat
    Registriert seit
    Feb 2004
    Beiträge
    315
    Buh das sieht ganz schön häftig aus! und für mich als anfänger recht schwer

    Die inc.db.mysql.inc bleibt bestimmt unberührt oder?wie bei mir momentan die mysql functions?

    danke
    Geändert von evoleena (13.12.04 um 11:04 Uhr)
     

Ähnliche Themen

  1. Auslagern von js-Funktionen (Event-Handler)
    Von pummeluff im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 08.07.08, 12:17
  2. Funktionen auslagern. Wie?
    Von axellang im Forum .NET Archiv
    Antworten: 2
    Letzter Beitrag: 10.04.05, 18:48
  3. Funktionen auslagern
    Von Hexberger im Forum PHP
    Antworten: 3
    Letzter Beitrag: 07.04.05, 16:49
  4. Funktionen auslagern
    Von wrphn im Forum .NET Archiv
    Antworten: 1
    Letzter Beitrag: 07.05.04, 10:19
  5. CSS in .css Datei auslagern - Bilder
    Von js-mueller im Forum CSS
    Antworten: 2
    Letzter Beitrag: 17.04.04, 16:05