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

|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP 
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken |

24.05.2004, 22:01:28
|
Anfänger
|
|
Registriert seit: Apr 2004
Ort: Düsseldorf
Beiträge: 68
|
|
Funktion zum aktualisieren der Daten
Hi, habe versucht eine Funktion zu schreiben, die mir je nach Auswahl aus einer Selectbox, die anzuzeigenden Daten ändert. Irgendwie funktioniert das aber überhaupt nicht. Hat jemand vielleicht einen Tip für mich, wie ich das realisieren kann?
PHP-Code:
<?
session_start();
$_SESSION["kdnr"]=$kdnr;
$_SESSION["submit"];
function daten($wert)
{
$change=mysql_query("SELECT * FROM kunden WHERE Kundennummer= '$kdnr'");
$changes=mysql_fetch_array($change);
$kdname=$changes["Firmenname"];
$kdort=$changes["Ort"];
$kdplz=$changes["Postleitzahl"];
}
echo "<link href='mysql.css' rel='stylesheet' type='text/css'>";
echo "<table width='351' border='0' cellpadding='0' cellspacing='0'>";
echo "<tr>";
echo "<td width='48' height='24'></td>";
echo "<td width='236'></td>";
echo "<td width='67'></td>";
echo "</tr>";
echo "<tr>";
//echo "<td height='67'></td>";
echo "<td valign='top'><form name='form1' method='post' action='$PHP_SELF'>";
include 'dbconnect.php';
$kund=mysql_query("SELECT * from kunden ORDER by Firmenname ASC");
echo "<select name='Kundennummer' class='mysql'>";
while ($detail=mysql_fetch_array($kund))
{
$kdplz=$detail["Postleitzahl"];
$kdstr=$detail["Straße"];
$kdname=$detail["Firmenname"];
$kdort=$detail["Ort"];
$kdnr=$detail["Kundennummer"];
echo "<option value='$kdnr'>$kdname</option>";
}
echo "</select>";
$kdnr=$_POST["kdnr"];
echo "</td>";
echo "<td></td>";
echo "</tr>";
echo "<tr>";
echo "<td height='29'></td>";
echo "<table class='mysql'><tr><td></td></tr>";
echo "<tr><td></td></tr>";
echo "<tr><td></td></tr>";
echo "</table></tr>";?>
<input type='submit' value='Select' name='submit'>
<?
echo "</table>";
echo "</form>";
?>
<?
if (isset($submit))
daten($kdnr);
?>
Geht das überhaupt mit ner Funkiton? Wie kann man das sonst realisieren?
thx, Cooper
|

25.05.2004, 07:47:10
|
Anfänger
|
|
Registriert seit: Feb 2004
Ort: Rotenburg
Beiträge: 27
|
|
Habs nur überflogen,aber:
1.Deine Funktion gibt nix zurück, es werden nur Daten ausgelesen. Wozu is das gut? Irgendwas sollte die Funktion doch auch "machen", oder? Vielleicht Werte zurückgeben? RETURN
2.Du kannst in der Funktion so vermutlich nicht auf deine $kdnr zugreifen. Da könnte ein "global $kdnr;" in der Funktion hilfreich sein.
|

25.05.2004, 07:54:00
|
Anfänger
|
|
Registriert seit: Apr 2004
Ort: Düsseldorf
Beiträge: 68
|
|
Hi, danke für die Antowrt. Hatte es mit global versucht und auch mit return $kdnr, funktioniert aber irgendwie auch noch nicht wirklich. Da die Funktion ja eigentlich mehrere Werte zurückgeben soll, jedoch aber laut Manual nur einen Wert zurückgeben kann, frage ich mal wie es möglich ist, den Wert als Array zurückzugeben und dann darauf zuzugreifen.
ist es dann so
PHP-Code:
global $kdnr;
$kdnr=array();
return $kdnr();
Stehe im Moment ein bisschen auf dem Schlauch.
Danke
Cooper
|

25.05.2004, 08:16:58
|
Anfänger
|
|
Registriert seit: Feb 2004
Ort: Rotenburg
Beiträge: 27
|
|
Zitat:
jedoch aber laut Manual nur einen Wert zurückgeben kann
|
schau dir mal ob_start() und ob_get_contents() an.
http://de3.php.net/ob_start
Damit kannst du eine Ausgabe puffern und somit mehrere Werte zurückgeben.
|

25.05.2004, 10:22:47
|
Senior Member
|
|
Registriert seit: Apr 2003
Alter: 58
Beiträge: 1.236
|
|
Hi,
das mit der $kdnr/global ist nicht das Problem, Du rufst die Funktion ja mit daten($kdnr); auf.
Aber die Funktion weiß nix von einer DB-Verbindung -> include 'dbconnect.php'; vor die Funktion setzen.
PHP-Code:
//...
$kdnr=$_POST["kdnr"]; // Nach oben verschieben!!!
$_SESSION["kdnr"]=$kdnr;
$_SESSION["submit"];//???
include 'dbconnect.php';
function daten($wert)
{
$change=mysql_query("SELECT * FROM kunden WHERE Kundennummer= '$kdnr'")or die(mysql_error());// or die(mysql_error) zur "Fehlerfindung" einfügen...
$changes=mysql_fetch_array($change);
return $changes; // $changes ist ja das Array, das Du haben willst
}
// Funktionsaufruf weiter unten...
$kd_info_array = daten($kdnr);
print_r($kd_info_array); # Testausgabe
//...
#echo "<td valign='top'><form name='form1' method='post' action='$PHP_SELF'>";
// Besser so
echo "<td valign='top'><form name='form1' method='post' action='".$_SERVER['PHP_SELF']."'>";
//...
#echo "<select name='Kundennummer' class='mysql'>";
// Hier sollte name='kdnr' stehen!!!
echo "<select name='kdnr' class='mysql'>";
Ich hoffe, das hilft Dir bissl weiter...
Gruss
chris17
|

25.05.2004, 12:29:56
|
Anfänger
|
|
Registriert seit: Feb 2004
Ort: Rotenburg
Beiträge: 27
|
|
Zitat:
das mit der $kdnr/global ist nicht das Problem, Du rufst die Funktion ja mit daten($kdnr); auf.
|
Das stimmt nicht. Er ruft zwar die Funktion mit $kdnr auf, die Funktion selber wurde aber mit function daten( $wert) initialisiert. Deshalb hat er 2 Möglichkeiten:
entweder er machts so:
PHP-Code:
function daten($kdnr){
...
oder so:
PHP-Code:
function daten($wert){
global $kdnr;
...
edit ->
oder so: :P
PHP-Code:
function daten($wert){
$kdnr = $wert;
...
Geändert von sct (25.05.2004 um 12:32:27 Uhr)
|

25.05.2004, 12:50:59
|
Anfänger
|
|
Registriert seit: Apr 2004
Ort: Düsseldorf
Beiträge: 68
|
|
Super vielen Dank für die Tips, habs jetzt hinbekommen.
Anbei poste ich mal den Code, damit andere auch was davon haben.
PHP-Code:
<?
session_save_path("..m3");
session_start();
//global $kdn;
$_SESSION['kdnr']=$kdnr;
$_SESSION['submit'];
include 'dbconnect.php';
function daten($wert)
{
$change=mysql_query("SELECT * FROM kunden WHERE Kundennummer= '$wert'");
$changes=mysql_fetch_array($change);
return $changes;
}
echo "<link href='mysql.css' rel='stylesheet' type='text/css'>";
echo "<table width='351' border='0' cellpadding='0' cellspacing='0'>";
echo "<tr>";
echo "<td width='48' height='24'></td>";
echo "<td width='236'></td>";
echo "<td width='67'></td>";
echo "</tr>";
echo "<tr>";
//echo "<td height='67'></td>";
echo "<td valign='top'><form name='form1' method='post' action='".$_SERVER[PHP_SELF]."'>";
//include 'dbconnect.php';
$kund=mysql_query("SELECT * from kunden ORDER by Firmenname ASC");
echo "<select name='kdnr' class='mysql' onchange='self.document.forms[0].submit()'>";
echo "<option value='0' selected>Select...</option>";
while ($detail=mysql_fetch_array($kund))
{
$kdplz=$detail["Postleitzahl"];
$kdstr=$detail["Straße"];
$kdname=$detail["Firmenname"];
$kdort=$detail["Ort"];
$kdnr=$detail["Kundennummer"];
echo "<option value='".$kdnr."'>".$kdname."</option>";
}
echo "</select>";
echo "</td>";
echo "<td></td>";
echo "</tr>";
echo "<tr>";
echo "<td height='29'></td>";
echo "<table class='mysql'><tr><td></td></tr>";
echo "<tr><td></td></tr>";
echo "<tr><td></td></tr>";
echo "</table></tr>";
echo "<input type='submit' value='Select' name='submit'><p>";
echo "</table>";
echo "</form>";
if (isset($submit))
$kdnr=$_POST["kdnr"];
$kd = daten($kdnr);
echo "<div class='mysql'>";
echo "<p><b>".$kd["Kundennummer"]."</b><br><br>";
echo $kd["Firmenname"]."<br>";
echo $kd["Straße"]."<br><br>";
echo $kd["Postleitzahl"]." ".$kd["Ort"];
echo "</div>";
?>
Vielen Dank nochmals.
Gruss
Cooper
|

25.05.2004, 14:49:18
|
Senior Member
|
|
Registriert seit: Apr 2003
Alter: 58
Beiträge: 1.236
|
|
@sct: Logo, Du hast natürlich recht! Da hab' ich bissl geschlampt :-)
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 06:22:56 Uhr.
|