Ankündigung

Einklappen
Keine Ankündigung bisher.

Reloaden der Seite durch Hyperlink

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Reloaden der Seite durch Hyperlink

    Hallo Zusammen,

    wie ihr sehen könnt bin ich neu hier. Die Sprache PHP fasziniert mich und ich möchte diese - soweit mir es die Zeit zulässt - auch näher kennen lernen.
    Deswegen hab ich mich einfach mal angemeldet.

    Ich habe mich schwer getan ein sogenanntes Kolotool zu schreiben.
    Das ist für Browsergames um in dem Fall Inseln zu reservieren.

    Beim ACP (Admin Control Panel) bin ich stehen geblieben. Wollte die verschiedenen Einstellungen aus der Datenbank abfragen, ändern können. Das Problem ist ich weiß nicht wie ich die Seite automatisch refreshen kann, so dass die Einstellung aktualisiert angezeigt wird.

    PHP-Code:
    <?php
                        $ab_set 
    mysql_query("SELECT * FROM `settings`");
                        
    $ab_set2 mysql_fetch_row($ab_set);
                        echo 
    '<br>';
                        
                        
    // Abfrage: Kolotopp -> Wert 1 bedeutet Kolo erlaubt, Wert 0 Kolo nicht erlaubt
                        
    if ($ab_set2['0'] == '0') {
                            echo 
    '<strong>Status: <font color="red">Kolostopp!</font></strong> ==> <form action="admin_set.php" method="post"><input type="hidden" name="send" value="aendern"><input type="submit" value="ändern">';
                            if (isset(
    $_POST['send'])) {
                            
    mysql_query("UPDATE `settings` SET `kolo_status` = '1'");
                            echo 
    '</form><br>';
                            }
                        } else {
                            echo 
    '<strong>Status: <font color="green">Kolos erlaubt!</font></strong> ==> <form action="admin_set.php" method="post"><input type="hidden" name="send" value="aendern"><input type="submit" name="send" value="ändern">';
                            if (isset(
    $_POST['send'])) {
                            
    mysql_query("UPDATE `settings` SET `kolo_status` = '0'");
                            echo 
    '</form><br>';
                            }
                        }
    ?>
    Hab diverse Versuche gestartet, auch gegooglet. Jetzt wird die Änderung zwar in die DB eingetragen, jedoch nicht aktuell dargestellt.

    Ich hoffe ihr könnt mir helfen

    Grüße onkel_sam


  • #2
    PHP-Code:
    echo '<strong>Status: <font color="green">Kolos erlaubt!</font></strong> ==> 
    <form action="admin_set.php" method="post">
    <input type="hidden" name="send" value="aendern">
    <input type="submit" name="send" value="ändern">
    </form>'
    ;

    if(isset(
    $_POST['send'])) { 
    mysql_query("UPDATE `settings` SET `kolo_status` = '0'"); 

    So sollte die Darstellung richtig sein.
    Du hattest </form> beim Update drin...

    Edit: Durch <form action=''> wird das Script erneut aufgerufen, der Refresh funktioniert also automatisch beim klick auf "Ändern".

    Kommentar


    • #3
      Zitat von dex Beitrag anzeigen
      Edit: Durch <form action=''> wird das Script erneut aufgerufen, der Refresh funktioniert also automatisch beim klick auf "Ändern".
      Der Eintrag in der DB wird gesetzt, jedoch wird die Ausgabe der Seite nicht aktulisiert.
      Bsp: Kolotstopp => Klick auf "Ändern" => Datensatz in DB gesetzt => Seite Refresht, Ausgabe weiterhin Kolostopp.
      Auch in der URL wird der POST Anhang nicht angezeigt.

      Kommentar


      • #4
        Dann muss es an folgender Abfrage liegen:
        PHP-Code:
        if($ab_set2['0'] == '0')

        // Versuch mal folgendes:
        if($ab_set2["kolo_status"] == 0
        Da die Update's vorgenommen werden, kann ich mir es nicht anders erklären.
        Probiers mal...

        Kommentar


        • #5
          Hallo, willkommen hier bei uns im Forum

          Wenn du dein UPDATE vor dem SELECT und der Ausgabe ausfuehrst, kommst du auch an die aktuellen Daten. Aber dex hat schon Recht, weisst du denn sicher, dass kolo_status der erste Wert deiner Tabelle ist? Eigentlich sollte man sich garnicht auf die Anordnung von Zeilen oder Spalten verlassen, darum solltest du auch statt SELECT * ein SELECT zeilen, die, ich, wirklich, brauche verwenden, z.B. also SELECT kolo_status
          "Mein Name ist Lohse, ich kaufe hier ein."

          Kommentar


          • #6
            Hallo,

            danke für die Mühe und eure Zeit.
            Das "kolo_status" der erste Wert der Tabelle ist weiß ich. Ich lese den Wert als Array aus weil auf dieser Seite noch andere Abfragen von der selben Tabelle ausgelesen werden.
            Habe es mal so probiert:
            PHP-Code:
            // test
            $test mysql_query("SELECT `kolo_status` FROM `settings`");
            $test2 mysql_fetch_object($test);
                                
            // Abfrage: Kolotopp
            if($test2->kolo_status == '0'
            Bringt auch nicht gewünschten Erfolg. Die Seite wird einfach nicht aktualisiert bzw. der aktuelle Wert der Tabelle ausgegeben.

            onkel_sam

            Kommentar


            • #7
              Wenn du dein UPDATE vor dem SELECT und der Ausgabe ausfuehrst, kommst du auch an die aktuellen Daten.
              Ich gehe davon aus, dass du ueberprueft hast ob dein UPDATE auch erfolgreich ausgefuehrt wird. echo/var_dump zum Debuggen sollte bekannt sein.
              "Mein Name ist Lohse, ich kaufe hier ein."

              Kommentar

              Lädt...
              X