Daten in die DB bekommen
!!Chica!!
- php
Hall und guten Tag,
hmm ich weiß gar net so richtig wie ich anfangen soll. Ich habe eine WebSeite erstellt wo ich meine BIlder ausstellen kann. Jupp ich mach sehr gerne BIld von der Natur und auch von Leuten :-) Wenn es fertig ist schreibe ich hier der Link. Aber erst mal wieder auf meine Frage zu kommen. Ich will ein paar BIlder bewerten lassen. Habe da auch mal was geamcht also wo man anklicken kann von 1 - 10 aber wie bekomme ich jetzt die Daten in die DB rein ? Kann mir denn da mal einer ein Beispiel geben ?
Hier kommt mal das was ich bis jetzt geamcht habe.
<form name="form1" method="post" action="auswertung_vote.php">
<table width="90%" border="0" align="center">
<tr>
<td><div align="center">
1 Punkt
<input name="p1" type="radio" value="radiobutton">
</div></td>
<td><div align="center">2 Punkte
<input name="p2" type="radio" value="radiobutton">
</div></td>
<td><div align="center">3 Punkte
<input name="p3" type="radio" value="radiobutton">
</div></td>
<td><div align="center">4 Punkte
<input name="p4" type="radio" value="radiobutton">
</div></td>
<td><div align="center">5 Punkte
<input name="p5" type="radio" value="radiobutton">
</div></td>
<td><div align="center">6 Punkte
<input name="p6" type="radio" value="radiobutton">
</div></td>
<td><div align="center">7 Punkte
<input name="p7" type="radio" value="radiobutton">
</div></td>
<td><div align="center">
8 Punkte
<input name="p8" type="radio" value="radiobutton">
</div></td>
<td><div align="center">9 Punkte
<input name="p9" type="radio" value="radiobutton">
</div></td>
<td><div align="center">10 Punkte
<input name="p10" type="radio" value="radiobutton">
</div></td>
</tr>
</table>
<table width="100%" border="0">
<tr>
<td> </td>
</tr>
</table>
<table width="30%" border="0" align="center">
<tr>
<td height="35"><div align="center">
<input type="submit" name="Submit" value="Jetzt Abstimmen">
</div></td>
</tr>
</table>
</form>
Hall und guten Tag,
Hall o!
und was für eine Datenbank willst du nutzen??
Hi,
Sorry das habe ich ganz vergessen :-( Ich habe PHPMYADMIN und MYSQL hier mal das was ich in der DB schon geamcht habe
CREATE TABLE votedata
(
id
INT( 6 ) ,
bild
VARCHAR( 100 ) NOT NULL ,
summe\_punkte
VARCHAR( 255 ) NOT NULL ,
anzahl\_votes
VARCHAR( 255 ) NOT NULL
);
Hi,
da nimmst du am besten den MySQL-Befehl REPLACE.(http://dev.mysql.com/doc/mysql/de/REPLACE.html)
Außerdem wurde ich noch einen Primärschlüssel definieren, z.B. die ID (und diese am besten noch auf "auto increment" setzen, damit du dir darum keine Sorgen zu machen brauchst).
REPLACE sorgt dafür, dass Daten eingefügt werden und vorher, falls vorhanden, der alte Datensatz gelöscht wird.
Wenn dir das zu unsicher ist, kannst du auch INSERT und UPDATE getrennt verwenden, musst dann allerdings abfragen, ob der Datensatz schon in der Datenbank vorhanden ist, bei UPDATE.
Eine Beispielabfrage (mit PHP-Variablen):
INSERT INTO votedata SET id=0,bild='$bild',summe_punkte=summe_punkte+'$punkte',anzahl_votes=anzahl_votes+1;
Der Yeti
HI Yeti,
danke für deine Ausfühliche Antwort. Aber Hmm ich weiß net so recht das verstehe ich noch nicht ganz so richtig. Wie muss ich denn die Seite anfangen also die auswertung_vote.php da steht jetzt bei mir gerade noch gar nichts drin. Die wird dann aufgerufen, wenn ich auf abschicken klicke. Woher weiß aber jetzt, dass ich z.B. 5 Punkte angeklickt habe ??? Ach fragen über Fragen ich wusste gar net, dass PHP so schwer sein kann und ich wollte die Seite heute noch Online setzten. Na ja daraus wird wohl nichts. Ich denke ich brauch da mindestens noch 1 Jahre dafür bis ich das auf die Reihe bekommen habe :-( :-( :-(
Hi,
naja ein ganzes Jahr wird's wohl nicht werden.
Du musst dir zunächst mal anschauen, was du von dem Formular alles geschickt bekommst. Das steht im Array $_REQUEST bzw. $_POST / $_GET (je nach "method").
Also z.B. print_r($_POST);
Dann sollte der Name des Radiobuttons als Schlüssel in diesem Array auftauchen und der Wert sollte dem angeklickten Wert entsprechen.
echo $_POST["radiobuttonname"] sollte also den Wert ausgeben.
Ja und dann brauchst du nur noch wissen, welches Bild gemeint ist und kannst dann mit den von Ilja beschriebenen Funktionen die Datenbankverbindung öffnen und den Datensatz reinschmeißen/aktualisieren.
HIH, der Yeti
yo,
dein formular verweist ja auf eine andere datei auf deinem server. in dieser datei musst du die daten auslesen, die von dem formular in deinem falle durch die methode "POST" gesendet werden und anschließend auswerten, zum beispiel ob die daten korrekt sind. vertraue niemals deiem formular, niemand ist gezwungen, dieses auch zu benutze´. in aller regel kannst du die daten per php mit $_POST["variablenname"] abrufen.
wenn alles ok ist, besteht der zweite schritt darin, die daten in die datenbank einzuschreiben. dazu verbindest du dich als erstes mit der datenbank via name und passwort. php benutzt dabei entsprechende funktionen, die dir bei erfolgreicher anmeldung einen sogenanten connector zurückgeben, den du auch in einer variable, z.b. $connector speichern solltest. damit bist du quasi bei der datenbank nun bekannt, so wie ein ausweis, den du von dem dbms bekommen hast.
dann kommt die sql anweisung, die man erst mal in einer variable abspeichern sollte. ungefähr in dieser form $sql="INSERT INTO tabelle (Spalte1, spalte2...) VALUES ('wert1', 'wert2'...)";
hast du den connector und die sql anweisung, dann benutzt du eine weitere php funktion mysql_query($sql, $connector), um sie auszuführen. solte soweit alles geklapt haben, sollten sich deine neuen daten nun in der datenbank befinden. letztlich ist es aber auch immer ratsam, mögliche fehler zu berücksichtigen und abzunfagen. aber das ist ein anderes kapitel...
Ilja
Hallo Ilja,
auch dir möchte ich danke für deine sehr ausfühliche Beschreibung nur davon habe ich leider ebenfalls nichts verstanden. Leider. Hmm habe das unten gerade schon mal bei einem anderen Beitrag geschrieben. Wollte heute die Seite online stellen aber ich sehe schon dafür brauch ich mindestens noch 1 Jahr :-(
Hi Chica!
MySQL-Funktionen in PHP: http://www.php.net/manual/de/ref.mysql.php
Wenn du dich da durchgearbeitet hast, kannst du's. ;-)
Der Yeti
yo,
ich würde mich Yeti anschließen, einfach mal den link anschauen und loslegen, egal ob am anfang alles klappt oder nicht. du wirst mit mehr übung immer mehr verstehen und dann kommen auch bald die ersten erfolge. also kopf hoch und ein wenig probieren und immer wieder lesen...
Ilja