tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
911
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    DrBonsai DrBonsai ist offline Mitglied Silber
    Registriert seit
    Mar 2010
    Beiträge
    52
    Hallo,
    ich komme mal wieder nicht weiter.

    Ich möchte, dass ich nach ausführen eines php-scripts durch klicken auf submit auf der gleichen Seite bleibe, wenn eine Variable >0 ist, und weitergeleitet werde, wenn die Variable nicht >0 ist.

    Hier mal mein Code:

    HTML-Code:
    <form method="POST" action="" > 
    [...]
    </form>
    PHP-Code:
    <?php
        $do 
    $_POST['do'];  //submit-button
        
    $reference $_POST['reference'];
        if (
    $do == "novo")
            {
            
    $check mysql_query("SELECT ref FROM energia_teste WHERE ref = '$reference'");
            
    $check_number mysql_num_rows($check);
            if (
    $check_number 0)
                {
                echo 
    "A referência pretendida já foi concedido a um outro cliente.<br/> Escolhe um outra refência, por favor!" ;
                } 
                else
                    {
                    
    $client $_POST['client'];
                    
    mysql_query("INSERT INTO energia_teste (cliente)  VALUES ('$client')");            
                    
    mysql_query("UPDATE energia_teste SET ref='$reference' WHERE cliente='$client'");
                    
    $product $_POST['product'];
                    
    mysql_query("UPDATE energia_teste SET produto='$product' WHERE cliente='$client'");
                    }
            } 
            else
                {
                echo 
    "nope"
                }
            
    error_reporting(E_ALL); 
    ?>
    Jetzt möchte ich gerne auf eine andere Seite geleitet werden, falls $check_number !>0.
    Habs schon probiert mit location: 'neueseite.php' im header zu basteln. Allerdings bekomme ich die Info, ob $check_number !>0 nicht dahin.
    Ich raffe nicht, wie ich die Variable da oben verfügbar machen kann.

    Wie mach ich sowas? Oder gibt es noch eine andere Möglichkeit.
    die <form action "..."> variabel zu gestalten geht nicht, wie ich i verschiedenen Foren gelesen habe.

    mfg,
    David
     

  2. #2
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Was heisst da oben vefügbar?
    Du kannst den Header ja nach dem Abfragen der $check_number senden.
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  3. #3
    DrBonsai DrBonsai ist offline Mitglied Silber
    Registriert seit
    Mar 2010
    Beiträge
    52
    Zitat Zitat von yaslaw Beitrag anzeigen
    Du kannst den Header ja nach dem Abfragen der $check_number senden.
    Ahhhhh

    Ich dreh durch.
    Läuft.
    Danke für den Hinweis.

    Dann mal ne allgemeine Frage:
    Ich bin nicht so der Crack, was Programmierung angeht.
    Ist diese Lösung so, wie ein Profi es machen würde?
    Also:
    Wenn Bedingung erfüllt, dann Weiterleitung, sonst auf der Seite bleiben, oder gibts da schönere Alternativen?
    Ich machs jetzt so, dass wenn meine Bedingung nicht erfüllt ist, ich eine Variable $ref_fail = "fail"; setze.
    Und unterhalb meines Formulars dann:
    PHP-Code:
    if ($ref_fail == "fail")
    {
    echo 
    "Die Referenz ist schon vergeben";

    ausgebe.

    Allerdings ist $ref_fail ja beim ersten aufruf nich nicht definiert (wird ja eben erst definiert, wenn meine Bedingung nicht erfüllt ist), was beim ersten Aufruf des Dokuments zu einer Fehlermeldung führt.
    Klar, die kann ich ausblenden. Spricht aber für eine unsaubere Programmierung, oder?
    Also gibt es da was schönderes?
     

  4. #4
    Avatar von queicherius
    queicherius queicherius ist offline ♥ PHP ♥
    Registriert seit
    Oct 2008
    Ort
    Stuttgart
    Beiträge
    439
    Du musst die Variable einfach ganz am Anfang setzen, z.B:

    PHP-Code:
    $referenceFail false
    Ich würde bei so ner Sache mit Bools arbeiten und nicht mit einem String...
     
    Jeder freut sich über eine positive Bewertung oder ein Danke :)

    Wie poste ich falsch
    Nachdem ich Google, die FAQ und die interne Suche erfolgreich ignoriert habe, erstelle ich zwei bis fünf neue Themen in den falschen Unterforen, mit kreativen Titel und undeutlichem Text, unter dem sich jeder etwas anderes vorstellen kann. Helfende Posts anderer Mitglieder ignoriere ich einfach und nörgle, dass mir niemand helfen kann.
    Mein Motto

  5. #5
    DrBonsai DrBonsai ist offline Mitglied Silber
    Registriert seit
    Mar 2010
    Beiträge
    52
    Zitat Zitat von queicherius Beitrag anzeigen
    Du musst die Variable einfach ganz am Anfang setzen, z.B:
    Danke.
    e, auch das war nun mehr als eindeutig...

    Mein Problem mit dieser Programmiererei ist (noch), dass ich es geohnt bin, mit denkenden Subjekten zu arbeiten. Und der Computer denkt nunmal nicht mit...
    Deswegen hakt es bei mir i.d.R immer an einer winzigen Kleinigkeit und der ganze Code t nicht...
    Zitat Zitat von queicherius Beitrag anzeigen
    Ich würde bei so ner Sache mit Bools arbeiten und nicht mit einem String...
    Ja, ich weiß.
    Mach ich jetzt dann mal.
    Aber mir leuchtet ehrlich gesagt der Sinn von bools nicht ein.
    Ich kann doch auch einfach genausogut Strings nutzen. Wo ist der Vorteil von bools?

    Meine vorherige Frage war aber eher allgemein gemeint.
    Ist dieser Ansatz vom Prinzip her "schön" oder "hässlich".
    Wie löst ein "richtiger" Programmierer so etwas?
    mfg,
    David
     

  6. #6
    Avatar von ComFreek
    ComFreek ComFreek ist gerade online [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.364
    Blog-Einträge
    4
    Bools sparen Speicher, aber das ist heutzutage nicht mehr sichtbar. Ein Bool kann nur 0 oder 1 speichern (vgl. Bit).
    Ein String ist dynamisch, belegt aber mindestens 8 Bit wegen dem Null-Zeichen (oder irre ich mich?).

    Zum zweiten: Kommt drauf an, welche Dateien hast du bzw. wie hast du die Website aufgeteilt?
     
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  7. #7
    Avatar von queicherius
    queicherius queicherius ist offline ♥ PHP ♥
    Registriert seit
    Oct 2008
    Ort
    Stuttgart
    Beiträge
    439
    Zitat Zitat von DrBonsai Beitrag anzeigen
    Ja, ich weiß.
    Mach ich jetzt dann mal.
    Aber mir leuchtet ehrlich gesagt der Sinn von bools nicht ein.
    Ich kann doch auch einfach genausogut Strings nutzen. Wo ist der Vorteil von bools?
    Sie sind kleiner (glaub ich...) und außerdem speicherst du nur 2 Zustände in der Variable, und dazu sind Bools eben gemacht

    Meine vorherige Frage war aber eher allgemein gemeint.
    Ist dieser Ansatz vom Prinzip her "schön" oder "hässlich".
    Wie löst ein "richtiger" Programmierer so etwas?
    mfg,
    David
    Keine Ahnung, ob ich schon zum richtigen Programmierer aufgestiegen bin , aber ich benutze keine Weiterleitungen, sondern eine Datei, die sich *immer* selbst aufruft und dann das Zeug mit Hilfe einer Klasse verarbeitet.
    Wobei man sehen kann, dass zum Beispiel Youtube auch Weiterleitungen benutzt... Von da her würde ich sagen, dass es Geschmackssache ist

    Viel wichtiger als die Frage, ob du jetzt Header oder Bedingungen benutzt ist, dass du den Variablen gescheite Namen gibst, Code einrückst etc... Buchempfehlung dazu: Clean Code
     
    Jeder freut sich über eine positive Bewertung oder ein Danke :)

    Wie poste ich falsch
    Nachdem ich Google, die FAQ und die interne Suche erfolgreich ignoriert habe, erstelle ich zwei bis fünf neue Themen in den falschen Unterforen, mit kreativen Titel und undeutlichem Text, unter dem sich jeder etwas anderes vorstellen kann. Helfende Posts anderer Mitglieder ignoriere ich einfach und nörgle, dass mir niemand helfen kann.
    Mein Motto

  8. #8
    DrBonsai DrBonsai ist offline Mitglied Silber
    Registriert seit
    Mar 2010
    Beiträge
    52
    Oki,
    danke fuer die Hilfe und Hinweise...

    Ich melde mich mit weiteren Problemen

    Bis dann.
    David
     

Ähnliche Themen

  1. MySQL-Ausgabe wenn Bedingung erfüllt ist
    Von bloodytriker im Forum PHP
    Antworten: 2
    Letzter Beitrag: 22.06.10, 16:31
  2. Verlinkung wenn if bedingung erfüllt ist?
    Von fluorescence im Forum PHP
    Antworten: 13
    Letzter Beitrag: 22.09.08, 20:47
  3. Neue auswahl wenn Bedingung erfüllt ist
    Von eternitysoft im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 17.10.05, 02:55
  4. Löschen nur wenn Bedingung erfüllt
    Von lifehunter im Forum Relationale Datenbanksysteme
    Antworten: 13
    Letzter Beitrag: 13.08.05, 18:20
  5. Antworten: 3
    Letzter Beitrag: 31.01.03, 12:52

Stichworte