php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 19-03-2008, 19:37
CosmoPhobia
 Newbie
Links : Onlinestatus : CosmoPhobia ist offline
Registriert seit: Mar 2008
Beiträge: 38
CosmoPhobia ist zur Zeit noch ein unbeschriebenes Blatt
Standard Aktualisierung eines Wertes in gleichem Dokument bei submit

Hallo Community.

Ich habe jetzt schon mehrere Scripte, in denen ganz oben ein Wert aus der DB ausgelesen wird.
Das Problem, was ich jetzt habe, ist folgendes.
Weiter unten im Script hat der User die Möglickeit, diese Wert zu verändern, sprich über UPDATE mysql_querys und mit einem submit Button diesen zu aktualisieren. Die gleiche Datei, in der dieser obenstehende Wert ausgegeben wird, dient auch zur Verarbeitung des Scripts.
Das heißt im Klartext, nach klicken des Submitbutton wird zwar der neue Wert an die DB übergeben, aber erst in dieser Datei nach erneutem aktualisieren dargestellt.

Ich kann ich das machen, dass der Wert in jedem Fall neu geladen und somit korrekt dargestellt werden kann ?
Mit Zitat antworten
  #2 (permalink)  
Alt 19-03-2008, 20:05
$_Baker
 Member
Links : Onlinestatus : $_Baker ist offline
Registriert seit: Feb 2008
Beiträge: 220
$_Baker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Den Updatequery vor den Abfragequery platzieren?
Mit Zitat antworten
  #3 (permalink)  
Alt 19-03-2008, 20:14
CosmoPhobia
 Newbie
Links : Onlinestatus : CosmoPhobia ist offline
Registriert seit: Mar 2008
Beiträge: 38
CosmoPhobia ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich fürchte, das funktioniert in meinem Fall nicht so einfach, weil ich mit vielen Funktionen arbeite, wie auch wieder Update-und Abfragequerys beinhalten. Und diese Funktionen benötige ich teileweise wieder vor anderen Querys.

Gibt es denn keine andere Möglichkeit, dem Script oder der Funktion zu sagen, du sollte nach dem submit neu abfragen ?
Mit Zitat antworten
  #4 (permalink)  
Alt 19-03-2008, 20:19
$_Baker
 Member
Links : Onlinestatus : $_Baker ist offline
Registriert seit: Feb 2008
Beiträge: 220
$_Baker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Da bliebe noch die Methode mit einem Refresh bzw Location-Header.
Einfach mal nach "http header" googlen
//geht natürlich auch nur, wenn keine Ausgabe erzeugt wurde.
Aber warum solltest du in diesem Fall von Funktionen abhängig sein? Eine Anfrage kann auch prozedural gestaltet werden, sobald die Verbindung offen ist

Geändert von $_Baker (19-03-2008 um 20:21 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 20-03-2008, 00:15
Pust
 Registrierter Benutzer
Links : Onlinestatus : Pust ist offline
Registriert seit: Feb 2008
Beiträge: 93
Pust ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich weiß nicht ganz, ob ich die Problematik richtig verstanden habe, aber wenn Du die Darstellung in eine function packst?

Also z.B. beim Absenden ist $action="update"

Und Deine Darstellung ist

deineliste();

Dann eine Abfrage

if(!isset($action))
{
deineliste();
}

if($action=="update")
{
// der ganze updatekram
deineliste();
}

Dann wird die Darstellung immer dann angezeigt, wenn der Vorgang rum ist, also aktuell, oder hab ich Dein Problem falsch verstanden?
Mit Zitat antworten
  #6 (permalink)  
Alt 20-03-2008, 01:37
CosmoPhobia
 Newbie
Links : Onlinestatus : CosmoPhobia ist offline
Registriert seit: Mar 2008
Beiträge: 38
CosmoPhobia ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Was genau meinst du mit prozedural. Die Definition bei Wikipedia sagt mir nicht so wirklich viel.

Also die Sache ist ja die, dass ich ein Formular habe. Über dieses Formular werden neue Daten, in dem Falle ein neuer Wert, per UPDATE in die DB geschrieben. Auf der gleichen Seite lass ich über dem Formular über echo den aktuellen DB Wert anzeigen.
Wenn ich also jetzt das Formular submitte, wird zwar der UPDATE query bearbeitet, aber es wird keine neue Anfrage gemacht, die sich ja über dem Formular befindet. Somit entsprich der Wert der in echo geschrieben ist, nicht dem tatsächlichen Datenbestand.

Beispiel:
PHP-Code:
//Hier ist die Abfrage-Query, der mit den aktuellen Wert der DB ausliest
echo "Hier ist der Wert";

//An dieser Stelle wird das Formular mit if (isset($_POST blablabla)) bearbeitet und der
//Wert in die DB geschrieben.

//Hier ist das Formular, ebenfalls in der if-schleife mit diversen echos dazwischen. 
Ich kann also das echo, das ganz oben steht, nicht einfach in einer if-bedingung schieben, weil das ganze sonst nicht mehr son funzt wie ich es möchte....

Hier mal mein Code:

PHP-Code:
<?php
error_reporting
(E_ALL);

    
$punkte checkPunkte();

    echo 
"Hier die Ausgabe ".$punkte['user_punkte'];
    
    
$gegenstand showgegenstand();
    
$inventar checkGegenstandMenge();
        
    echo 
htmlentities($gegenstand['bla'][1]).": ".$inventar['geg1']."<br/>";
    echo 
htmlentities($gegenstand['bla'][2]).": ".$inventar['geg2']."<br/>";
    echo 
htmlentities($gegenstand['bla'][3]).": ".$inventar['geg3']."<br/>";
    echo 
htmlentities($gegenstand['bla'][4]).": ".$inventar['geg4']."<br/>";
    echo 
htmlentities($gegenstand['bla'][5]).": ".$inventar['geg5']."<p/>";
    
    
$userlevel checkUserLevel();

//Formulare werden verarbeitet

    
$variable1 = @$_POST['komup'];
    
$variable2 = @$_POST['spedup'];

    if (isset(
$_POST['komup']))
    {        
        if (
$variable1>$userpunkte['user_punkte'])
        {
            echo 
"Du hast nicht genug Punkte.<br/>";
        }
        else
        {
            
mysql_query("UPDATE
                              users
                         SET
                             user_punkte = '$userpunkte[user_punkte]' - '$variable1'
                          WHERE
                             user_id = '$userdata[user_id]'"
) OR die(mysql_error());    
            
            
mysql_query("UPDATE
                             users
                         SET
                             user_kompfhr = '$userlevel[user_kompfhr]' + 1
                         WHERE
                             user_id = '$userdata[user_id]'"
) OR die(mysql_error());
        }
    }
    
    if (isset(
$_POST['spedup']))
    {        
        if (
$variable2>$userpunkte['user_punkte'])
        {
            echo 
"Du hast nicht genug Punkte.<br/>";
        }
        else
        {
            
mysql_query("UPDATE
                              users
                         SET
                             user_punkte = '$userpunkte[user_punkte]' - '$variable2'
                          WHERE
                             user_id = '$userdata[user_id]'"
) OR die(mysql_error());    
            
            
mysql_query("UPDATE
                             users
                         SET
                             user_popsped = '$userlevel[user_popsped]' + 1
                         WHERE
                             user_id = '$userdata[user_id]'"
) OR die(mysql_error());
        }
    }

    echo 
"Hier werden deine verschiedenen Level angezeigt:<br/>";

//Formular für First-Level
    
    
echo "Level ".$userlevel['user_kompfhr']." von 15 erreicht.<br/>";
    
    switch (
$userlevel['user_kompfhr'])
    {
        case 
0$value1=1000; break;
        case 
1$value1=2000; break;
        case 
2$value1=3000; break;
        case 
3$value1=4000; break;
        case 
4$value1=5000; break;
        case 
5$value1=6000; break;
        case 
6$value1=7000; break;
        case 
7$value1=8000; break;
        case 
8$value1=9000; break;
        case 
9$value1=10000; break;
        case 
10$value1=11000; break;
        case 
11$value1=12000; break;
        case 
12$value1=13000; break;
        case 
13$value1=14000; break;
        case 
14$value1=15000; break;
        
        default: 
$value=1000;
    }
    if (
$userlevel['user_kompfhr']<15)
    {
    echo 
"<form method='post' action='status.php'><input type='hidden' value='$value1' name='komup'><input type='submit' value='$value1' name='komup'></form>";
    }
    else
    {
    echo 
"Du hast das h&ouml;chste Level erreicht.<br/>";
    }
    
//Formular für Second-Level    
    
    
echo "Level ".$userlevel['user_popsped']." von 15 erreicht.<br/>";
    
    switch (
$userlevel['user_popsped'])
    {
        case 
0$value2=1000; break;
        case 
1$value2=2000; break;
        case 
2$value2=3000; break;
        case 
3$value2=4000; break;
        case 
4$value2=5000; break;
        case 
5$value2=6000; break;
        case 
6$value2=7000; break;
        case 
7$value2=8000; break;
        case 
8$value2=9000; break;
        case 
9$value2=10000; break;
        case 
10$value2=11000; break;
        case 
11$value2=12000; break;
        case 
12$value2=13000; break;
        case 
13$value2=14000; break;
        case 
14$value2=15000; break;
        
        default: 
$value=1000;
    }
    if (
$userlevel['user_popsped']<15)
    {
    echo 
"<form method='post' action='status.php'><input type='hidden' value='$value2' name='spedup'><input type='submit' value='$value2' name='spedup'></form>";
    }
    else
    {
    echo 
"Du hast das h&ouml;chste Level erreicht.<br/>";
    }
}

?>

Geändert von CosmoPhobia (20-03-2008 um 11:31 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 20-03-2008, 07:26
$_Baker
 Member
Links : Onlinestatus : $_Baker ist offline
Registriert seit: Feb 2008
Beiträge: 220
$_Baker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Ich kann also das echo, das ganz oben steht, nicht einfach in einer if-bedingung schieben, weil das ganze sonst nicht mehr son funzt wie ich es möchte....
Warum sollte es in eine if-Bedingung?
In checkPunkt() wird die Abfrage durchgeführt, nehme ich mal stark an.
Statt den Updatequery darunter zu platzieren, einfach obendran quetschen.
Mit Zitat antworten
  #8 (permalink)  
Alt 20-03-2008, 11:37
CosmoPhobia
 Newbie
Links : Onlinestatus : CosmoPhobia ist offline
Registriert seit: Mar 2008
Beiträge: 38
CosmoPhobia ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich habe eben gesehen, das die Funktion checkPunkt() 2 mal im Script stand, völlig unsinnig. Hab das oben mal korregiert. Und jetzt schau bitte nochmal. Ganz oben ist die Funktion checkPunkt(), die bei Aufruf des Scriptes den aktuellen Punktestand niederschreibt, auch schon bevor mal das Formular abschickt.
Was kann ich eurer Meinung nach machen, das dieser Wert sich sofort nach submit aktualisiert. Okay, ich könnte die Funktion mit samt des echo hinter die if-Bedingung mit den Updates packen, aber dann wäre immernoch das Problem, dass er unten die Level nicht immer sofort aktualisiert werden, auch die buttons nicht...
Mit Zitat antworten
  #9 (permalink)  
Alt 20-03-2008, 11:49
$_Baker
 Member
Links : Onlinestatus : $_Baker ist offline
Registriert seit: Feb 2008
Beiträge: 220
$_Baker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

  • Script bekommt die Daten des Formulars
  • Script verarbeitet diese Daten
  • Script trägt in die Datenbank ein
  • Script holt sich den AKTUELLEN Wert aus der Datenbank und baut damit die restliche Seite auf

Das nennt sich Eingabe-Verarbeitung-Ausgabe Prinzip
Mit Zitat antworten
  #10 (permalink)  
Alt 20-03-2008, 12:28
CosmoPhobia
 Newbie
Links : Onlinestatus : CosmoPhobia ist offline
Registriert seit: Mar 2008
Beiträge: 38
CosmoPhobia ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Danke für deine Ausführung. Hat mir doch ein Stück weitergeholfen, wobei ich diese Vorgehensweise im Nachhinein nur als logisch ansehe. Hmm naja, jetzt funktioniert es jedenfalls. Muss zwar manche Abfrage-Query bzw. Funktionen doppelt nehmen, aber dafür sind die ja auch da

Danke
Gruß
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 07:40 Uhr.