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

Der CSS-Problemlöser

Der CSS-Problemlöser 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 24.05.2004, 23:01:28
Cooper Cooper ist offline
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
Mit Zitat antworten
  #2  
Alt 25.05.2004, 08:47:10
sct sct ist offline
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.
__________________
phpug-rotenburg.de
Mit Zitat antworten
  #3  
Alt 25.05.2004, 08:54:00
Cooper Cooper ist offline
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
Mit Zitat antworten
  #4  
Alt 25.05.2004, 09:16:58
sct sct ist offline
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.
__________________
phpug-rotenburg.de
Mit Zitat antworten
  #5  
Alt 25.05.2004, 11:22:47
chris17 chris17 ist offline
Senior Member
 
Registriert seit: Apr 2003
Alter: 57
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
Mit Zitat antworten
  #6  
Alt 25.05.2004, 13:29:56
sct sct ist offline
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;
... 
__________________
phpug-rotenburg.de

Geändert von sct (25.05.2004 um 13:32:27 Uhr)
Mit Zitat antworten
  #7  
Alt 25.05.2004, 13:50:59
Cooper Cooper ist offline
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
Mit Zitat antworten
  #8  
Alt 25.05.2004, 15:49:18
chris17 chris17 ist offline
Senior Member
 
Registriert seit: Apr 2003
Alter: 57
Beiträge: 1.236
@sct: Logo, Du hast natürlich recht! Da hab' ich bissl geschlampt :-)
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 11:58:00 Uhr.


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


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