Announcement

Collapse
No announcement yet.

bräuchte hilfe bei einfachem Script

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • bräuchte hilfe bei einfachem Script

    Hallo,

    also ich habe vor ein paar wochen erst mit mysql angefangen und demnach noch ziemlich neu auf dem Gebiet... ich bräuchte hilfe bei einem problem, dass für einen erfahrenden Menschen nicht schwer sein dürfte...

    Die Idee: Der Besucher meiner Seite kann auf "Bin dabei" drücken, dann wird diese Stimme in der Datenbank unter "dabei" hinzugefügt und wird dann später beim echo ausgegeben... und wenn wieder einer drauf drücken sollte, wird diese Stimme einfach mit der anderen addiert also: Stimme1 + Stimme2 = teilnehmer anzahl..

    ich habe folgenden Script bereits erstellt:
    PHP Code:
    <?php
    mysql_connect
    ("localhost""benutzername","pw") or die ("Keine Verbindung moeglich");
    mysql_select_db("datenbank") or die ("Die Datenbank existiert nicht.");
    ?>
    <input type="button" value="Bin dabei!">
    <?php
    $dabei 
    $_POST["dabei"];
    ?>
    <?php
    $eintrag 
    "INSERT INTO teilnehmer (dabei) VALUES ('$dabei')";
    ?>

    <?php
    $eintragen 
    mysql_query($eintrag);
    ?>

    <?php
    $ergebnis 
    mysql_query("SELECT * FROM teilnehmer");
    while(
    $row mysql_fetch_object($ergebnis))
    {
      echo 
    $row->dabei;
      echo 
    "&nbsp;";
      echo 
    "nehmen Teil!";
    }
    ?>
    so also in meiner Datenbank habe ich eine Tabelle mit 2 Spalten einmal eine mit der ID und einmal eine mit den "Votes". So jetzt sollte eigentlich, wenn man auf dem Button klickt, die stimme gezählt werden und angezeigt werden.. leider klappt dies nicht ganz.. was habe ich falsch gemacht bzw. vergessen? Ja, ich weiß, dass der Button nicht mit dem Rest des scriptes verbunden ist.. ich wusste nicht mit was ich den verbinden sollte

    Achja PS: ich wollte diese Funktion auf meherere php dokumenten auf meiner Seite anzeigen aber jede soll einen eigenen Button bekommen, kann ich das irgendwie mit der ID verbinden?, dass z.B. Index.php id 1 bekommt und dann die teilnehmer von ID 1 ausgibt und seite2.php id 2 bekommt und die teilnehmer von ID 2 ausgibt...

    es wäre furchtbar nett wenn mir jmd. hekfen könnte!!!

    mfg

  • #2
    leider klappt dies nicht ganz..
    Was kann man sich darunter vorstellen? Gibt es Fehlermeldungen?


    Des Weiteren ist dein Vorghen nicht klar:

    Soll es eine Summe geben, die für alle gedrückten Werte steht? Dann wäre folgendes Vorgehen erforderlich

    Aktuellen Wert aus der DB lesen
    +1 addieren
    Neuen Wert zurückschreiben

    Dann hat dieser Wert auch nichts in einer Tabelle "teilnehmer" zu suchen

    Soll es je Nutzer einen eigenen Wert für jede Umfrage geben? Dann ist da nichts zu addieren. Vielmehr wäre dann mittels SQL die Summe der "dabei" zu ermitteln, die sich aus den Nutzern ergibt.Je Nutzer wird dieser Wert nur einmal auf "true" gesetzt.

    Bevor mit SQL anfängst solltest du erstmal für dich klären:

    - wie funktioniert das Internet
    - Server / Client
    - Request/Response
    - Formularverarbeitung (GET/POST) was passiert da
    - wann wird PHP ausgeführt
    - wie baue ich eine HTML-Seite auf
    Zuletzt editiert von Christian Marquardt; 29.05.2011, 18:15.
    Christian

    Comment


    • #3
      naja anstatt sich die zahl vermehrt, vermehrt sich das wort nehmen Teil von " echo "nehmen Teil!"; " und es erstellt immer mehr ID's in meiner Datenbank wenn ich die Seite aktualisiere

      also allen im allen sollte es wie der "gefällt mir" button von Facebook funktionieren... aber es soll nichts mit Facebook zu tun haben! es soll alles über meine Datenbank laufen...

      Der Besucher geht auf meine Seite... liest die Anzeige und kann dann auf "bin dabei" drücken, wenn er dran teilnimmt. Dies kann jeder machen, sollte aber nach abstimmung einen IP ban bekommen!

      Comment


      • #4
        anstatt sich die zahl vermehrt,
        Sicherlich vermehrt sich das, weil du ja einen neuen Datensatz schreibst und diese werden mit while.. ausgelesen. Und eine Zahl schreibst du nicht, du schreibst einen leeren Wert


        also allen im allen sollte es wie der "gefällt mir" button von Facebook funktionieren... aber es soll nichts mit Facebook zu tun haben! es soll alles über meine Datenbank laufen...
        Da ich noch nie auf Facebook war, sagt die Beschreibung mir nichts

        Der Besucher geht auf meine Seite... liest die Anzeige und kann dann auf "bin dabei" drücken, wenn er dran teilnimmt. Dies kann jeder machen, sollte aber nach abstimmung einen IP ban bekommen!
        Da haben wir aber ein schickes Wort gehört (welches sich übrigen Bann schreibt)?
        Wenn du angemeldete Nutzer hast willst du deren IP bannen? Sehr sinnvoll. Dann wäre das von mir als 2. Fall geschilderte Vorgehen wohl angesagt. Dann kann der Nutzer so oft auf "teilnehmen" drücken wie er will, er wird nur einmal gezählt. Des Weiteren was nützt ein IP Bann, wenn man sich mit einem Klick neu verbinden kann und damit meistens (die wenigsten werden eine statische IP haben) eine neue IP bekommt. Weiterhin kann man weltweit Proxy benutzen....

        Fang mal hier an

        http://www.php.de/wiki-php/index.php...arverarbeitung
        Zuletzt editiert von Christian Marquardt; 29.05.2011, 18:37. Reason: Rechtschreibung
        Christian

        Comment


        • #5
          Originally posted by Christian Marquardt View Post
          angemeldete Nutzer
          wer sagt denn was von angemeldeten Benutzer? bei mir wird es vorerst kein Account-System geben!

          Originally posted by Christian Marquardt View Post
          Des Weiteren was nützt ein IP Bann, wenn man sich mit einem Klick neu verbinden kann und damit meistens (die wenigsten werden eine statische IP haben) eine neue IP bekommt. Weiterhin kann man weltweit Proxy benutzen....
          Naja, da sich aber (grob geschätzt) einer von 30 Leuten, die auf meiner Seite waren, sich ein ganz klein wenig mit solchen sachen auskennen wird, wird dies kein Problem sein... Mal ehrlich.. die anderen drücken 2 mal drauf und merken oh es klappt nicht und versuchen es dann nicht wieder...

          bekomm ich jetzt hier noch in irgendeiner weiße hilfe zum Problem oder willst du nur weiter meine Rechtsschreibung kritisieren? dafür ist mir die Zeit echt zu schade...

          mfg

          Comment


          • #6
            bekomm ich jetzt hier noch in irgendeiner weiße hilfe zum Problem oder willst du nur weiter meine Rechtsschreibung kritisieren? dafür ist mir die Zeit echt zu schade...
            Du hast doch Hilfe bekommen. Wie man vorgeht, um Daten in der Datenbank zu addieren,
            einen Link wo du lernen kannst, wie man mit PHP Formulare verarbeitet. Eine Reihe von Themen, mit denen du dich beschäftigen solltest. Die Information, dass du leere Werte in die DB schreibst. Dir ist nicht aufgefallen, dass du in deinem ganzen Script keine nummerischen Werte hast, aber erwartest, das Zahlen in der DB sind?


            Dein Code hat soviel Mängel und zeigt, dass du so gar keinen Plan von der Materie hast. Man sollte das wohl neu schreiben. Wenn du möchtest, dass dir jemand das Script neu schreibt, solltest du unter "Jobs" hier posten.

            Wenn du selbst etwas lernen willst und Erfahrung sammeln willst, dann solltest du von vorne anfangen und die Grundlagen lernen

            dafür ist mir die Zeit echt zu schade...
            Nun die Zeit für das Lernen wirst du wohl irgendwann wohl oder übel aufbringen müssen

            mysql_connect("localhost", "benutzername","pw") or die ("Keine Verbindung moeglich");
            mysql_select_db("datenbank") or die ("Die Datenbank existiert nicht.");
            Wenn Fehler auftreten, wird der Response nicht richtig bedient. Der Nutzer steht ohne Antwort / weitere Navigation da

            HTML Code:
            <input type="button" value="Bin dabei!">
            Um den auszuwerten benötigt man einen Namen. HTML-Kopf und -Ende sowie Form-Tag sollten vorhanden sein


            <?php
            $dabei
            = $_POST["dabei"];
            ?>
            Wie von dir erkannt völlig sinnloser Code, da ein submit fehlt; woher sollte das POST kommen

            <?php
            $eintrag
            = "INSERT INTO teilnehmer (dabei) VALUES ('$dabei')";
            ?>
            Es wird etwas undefiniertes in die DB geschrieben


            <?php
            $eintragen
            = mysql_query($eintrag);
            ?>
            Eintrag ohne jegliche Prüfung

            <?php
            $ergebnis
            = mysql_query("SELECT * FROM teilnehmer");
            while(
            $row = mysql_fetch_object($ergebnis))
            {
            echo
            $row->dabei;
            echo
            "&nbsp;";
            echo
            "nehmen Teil!";
            }
            ?>
            Alle Zeilen werden gelesen und ausgegeben; ohne jede Prüfung

            Alles in allem wird die php-Seite dem Interpreter übergeben, der schreibt einen Satz in die DB (und gibt alle in der DB vorhandenen Datensätze aus), gibt die Seite an den Webserver weiter, der rendert die Seite an den Client und das wars

            Und das ganze Thema hier gehört nicht zu MySQL, sondern zu "PHP und Datenbanken"
            Zuletzt editiert von Christian Marquardt; 29.05.2011, 19:16.
            Christian

            Comment

            Working...
            X