ERLEDIGT
NEIN
NEIN
ANTWORTEN
22
22
ZUGRIFFE
1174
1174
EMPFEHLEN
-
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.
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?PHP-Code:function gast_auswaehlen($db,$gastid)
{
$query_gast = "SELECT * FROM gast WHERE Gast_ID='".$gastid."'";
$gast = mysql_db_query($db,$query_gast);
}
z.B. so
PHP-Code:name = $gast['name'];
-
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.
redlamaWissen ist Macht! Nichts wissen macht auch nichts, ...
www.redlama.org
-
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
-
@ 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
aber da zeigt er nichts an!PHP-Code:Buchungen für ".$gast['ansp_name'].", ".$gast['ansp_vorname']."
-
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.
redlamaWissen ist Macht! Nichts wissen macht auch nichts, ...
www.redlama.org
-
Ja mach ich
Das steck hinter gast in funktionen.php
Das steht in meiner andere DateiPHP-Code:function gast_auswaehlen($db,$gastid)
{
$query_gast = "SELECT * FROM gast WHERE Gast_ID='".$gastid."'";
$gast = mysql_db_query($db,$query_gast);
return $gast;
}
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']."
-
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.
redlamaWissen ist Macht! Nichts wissen macht auch nichts, ...
www.redlama.org
-
Und wie machst du das?
-
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.
redlamaWissen ist Macht! Nichts wissen macht auch nichts, ...
www.redlama.org
-
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:
mysql_db_query() ist übrigends als deprecated eingestuft und sollte nicht mehr verwendet werden.PHP-Code:$ref=mysql_query(...);
if ($ref) {
$gast=mysql_fetch_array($ref);
return $gast;
} else {
return false;
}
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ß hpvwGeändert von hpvw (13.12.04 um 08:44 Uhr)
-
@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)
-
Da kannst an der Stelle mal
machen.PHP-Code:print_r($gast);
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.
-
Ups hat doch schon jmand geantwortet!
Habs gleich gefuden woran es lag!
Hab mir deinen Beitrag nochmal angescheut bzgl. deinem Tip!
Jetzt gehts!
-
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:Und die Werte aufrufen tust Du dann mitPHP-Code:include("class.gast.php");
$aSuch = Array();
$aSuch["gastid"] = ""; //HIER DIE GASTID ÜBERGEBEN
$a = new gast($aSuch);
Bei Fragen, entweder hier oder sonst auch gerne per Mail.PHP-Code:$a->getName()
$a->getVorname()
redlamaGeändert von redlama (13.12.04 um 09:28 Uhr)
Wissen ist Macht! Nichts wissen macht auch nichts, ...
www.redlama.org
-
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?
dankeGeändert von evoleena (13.12.04 um 11:04 Uhr)
Ähnliche Themen
-
Auslagern von js-Funktionen (Event-Handler)
Von pummeluff im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 08.07.08, 12:17 -
Funktionen auslagern. Wie?
Von axellang im Forum .NET ArchivAntworten: 2Letzter Beitrag: 10.04.05, 18:48 -
Funktionen auslagern
Von Hexberger im Forum PHPAntworten: 3Letzter Beitrag: 07.04.05, 16:49 -
Funktionen auslagern
Von wrphn im Forum .NET ArchivAntworten: 1Letzter Beitrag: 07.05.04, 10:19 -
CSS in .css Datei auslagern - Bilder
Von js-mueller im Forum CSSAntworten: 2Letzter Beitrag: 17.04.04, 16:05





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren