echo $begrüßung;
ich werde die Ratschläge beherzigen und habe das auch schin mal getestet. Aber zwei Punkte sind mir noch unklar.
Funktionsseite:
<?php
function abfrage1() {
$verbindung =mysql_connect("localhost", "root","");
mysql_select_db('dodp' ,$verbindung);
$abfrage = @mysql_query("SELECT * FROM sb");
$row_abfrage = mysql_fetch_assoc($abfrage);
$totalRows_abfrage = mysql_num_rows($abfrage);
if (!$abfrage){
echo ("Fehler bei der Ausführung der Abfrage Sachbearbeiter ");
exit();
}
while($row_abfrage = mysql_fetch_assoc($abfrage)) {
echo $row_abfrage['vorname'].' '.$row_abfrage['name'];;
echo ' <br>';
}
return $ergebnis;
}
Wo kommt denn $ergebnis her? Du musst nur dann ein Ergebnis zurückgeben, wenn du eins erzeugst. Wenn du die Ausgabe (echo) gleich in der Funktion vornimmst, dann ist ja alles schon erledigt und es gibt nichts mehr zum zurückgeben. Ob es allerdings klug ist, dass die Funktion gleich die abgefragten Daten ausgibt steht auf einem anderen Blatt. Meiner Meinung nach sollte es die Aufgabe der Funktion sein, die Datenbank abzufragen, und das Abfrageergebnis zurückzuliefern. Die Ausgabe sollte nicht mehr ihre Aufgabe sein. Wenn du später dein Projekt erweiterst, und die gleich Daten in einem anderen Zusammenhang brauchst, wie realisierst du das dann? Kopierst du dir die Funktion und änderst die echo-Befehle? Damit hast du die Funktion wieder doppelt rumliegen. Oder rufst du sie in dem neuen Script einfach wie schon bisher auf und lässt du nur dem zurückgegebenen Ergebnis eine andere Behandlung angedeihen? (Diese Fragen solltest du nur mal für dich beantworten.)
$abfrage1 =abfrage1() ;
echo $abfrage1;
Da in $ergebnis nichts zum Zurückgeben steht, kann es hier auch keine Ausgabe erfolgen. Das fällt aber nicht weiter auf, weil die Ausgabe ja schon innerhalb der Funktion per echo erfolgte.
Wenn ich aber die Ausgabesiete um das while erweitere (und aus der Funktionsseite enferne)
<?php
$abfrage1 =abfrage1() ;
echo $abfrage1;
while($row_abfrage = mysql_fetch_assoc($abfrage)) {
$abfrage ist eine Variable, die nur innerhalb der Funktion zur Verfügung steht. Außerhalb sind Variablen, die in einer Funktion definiert wurden nicht vorhanden. Die einzigen Schnittstellen von Funktionen sind im Idealfall die übergebenen Parameter in die Funktion hinein und das Rückgabeergebnis aus der Funktion heraus. Andere Möglichkeiten wie Referenzen und das Schlüsselwort global sollte man nach Möglichkeit ignorieren.
Wenn du einmal das Ergebnis gefetcht hast, musst du erst den "Fetch-Zeiger" wieder zurücksetzen, um die Daten erneut abfragen zu können, doch das ist keine gute Idee, weil du damit den Datenbankzugriff über mehrere Quelltext-Teile verteilst. Anstatt die Daten beim Fetchen gleich auszugeben kannst du sie erstmal in einem Array sammeln, welches du beliebig oft durchlaufen kannst.
Eine 2. Frage , wenn ich jetzt weitere Abfragen erstellen möchte, kan ich mir doch
$verbindung =mysql_connect("localhost", "root","");
mysql_select_db('dodp' ,$verbindung);
sparen?
Ja, dafür gab ich dir gestern schon den Hinweis auf die statische Variable.
echo "$verabschiedung $name";