Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
[SQL allgemein] PHP und MySQL suche / VOTE [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
[SQL allgemein] PHP und MySQL suche / VOTE


 
timekillar
19-06-2008, 12:53 
 
Hallo, vorweg ich habe gesucht aber nicht gefunden :)

so nun zu meinem Problem:

Ich habe eine Datenbank mit folgenden Sachen:

ID, PLZ, ORT, VORWAHL, COUNT
dazu benötige ich nun eine Suche...

Das er alles ausgibt, ist kein Problem... nur wie kann ich aus einer "form" bspw. 12101 eingeben und bei Count wird +1 gerechnet?

ich komm einfach nicht dahinter.. es geht darum das Leute ihre PLZ voten können. Sprich sie geben nur "12101" ein und bei "12101 Berlin" wird bei "COUNT" 1 draufgerechnet?

wie kann ich das realisieren? die leute sollen von dem eigentlichen script garnichts sehen, sie sollen nur diese "Form" haben wo sie halt ihre PLZ eingeben können. und ich schaus mir dann im Backend an, welche PLZ am höchsten im Kurs liegt?!

wenn mir jemand helfen kann wäre ich sehr dankbar, ich bin noch nicht so fit in MySQL und PHP

lieben Gruß

 
MelloPie
19-06-2008, 12:58 
 
na mit nem UPDATE table SET `count`=`count`+1 WHERE plz = '12101'

 
timekillar
19-06-2008, 13:01 
 
okay ja klingt logisch aber wie kann ich ein dynamisches eingabefeld machen?

nur mit form reicht das ja nicht oder? ich versteh den genauen ablauf nicht,(an was muss gesendet werden, wie muss gesendet werden und was muss gesendet werden) könnte mir jemand so ein beispiel geben? wie ich auf "suchen.php" ne "form" baue, die immer genau das votet was eingegeben wurde?

lieben Gruß

 
H2O
19-06-2008, 13:08 
 
Am besten, du machst dich mal über Formulare (http://tut.php-quake.net/formulare.html) schlau

 
asp2php
19-06-2008, 13:11 
 
Such mal nach $_POST und/oder $_GET und event. Formulardaten verarbeiten im Internet, dann weisst du. Das ist Grundlagen und Grundlagen zeigen wir hier nicht, sondern wir setzen Grundlagenkenntnis voraus ;)

 
timekillar
19-06-2008, 14:26 
 
also ich hab die ganze zeit gelesen, versucht, und mir scripte von hier mal angesehen... aber nichts will funktionieren :( ich bin am verzweifeln

ich hab ein formular gemacht sieht so aus: (Grundlage ist ein Script von hier)

html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>

<body>
<form action="connect.php" method="get">
<input type="text" size="17" name="Inhalt">
<input type = "submit" value="OK">
</center>
</form>
</body>
</html>


aber ich verstehe einfach nicht wie es weitergehen soll :(

könnt ihr mir bitte helfen? ich werde aus dem ganzen nicht schlau

gruß

 
case
19-06-2008, 14:29 
 
Dann brauchst du natürlich noch einen php-teil dahinter....

Dieser muss beinhalten:

einen Datenbankconnect
Abfrage der POST-Parameter
einen Query zum updaten der Tabellenzeile



Wenn dir das alles nichts sagt, so empfehle ich dir, Grundlagenkenntnisse zu erlangen. Dazu gibt es ein paar schöne Tutorials unter www.peterkropff.de

 
UzumakiNaruto
19-06-2008, 15:08 
 
method="get"

nimm lieber post
http://www.aspheute.com/artikel/20010205.htm

html-datei

[...]
<form action="plz_vote.php" method="post">
<input type="text" name="plz" size="5">
<input type="submit">
</form>
[...]


php-datei (plz_vote.php

include ("db-connect.php")

if (isset($_POST['plz']))
{
$sql = "UPDATE table SET `count`=`count`+1 WHERE plz = ".$_POST['plz'].";";
}


DAS wäre eine möglichkeit .. natürlich sollte man noch abfragen ob inder Variable PLZ auch wirklich eine Postleitzahl drinne steht

mysql_real_escape_string() :confused: ist die funktion um sql-injection vorzubeugen und is_numeric() um zu überprüfen ob die Variable eine Zahl ist

 
timekillar
19-06-2008, 15:48 
 
ich hab mich auch nochmal auf php-einfach.de umgeschaut und so.. habe mal das da alles versucht zu verstehen usw. und das auslesen ging auch ohne Probleme leider wurde nicht drauf eingegangen, wie man aus einem Formular was macht..

ich habe also einfach mal deinen Vorschlag genommen, danke dafür schonmal :)

und wenn ich es nur so belasse wie du sagst (inklusive Datenbankverbindung)

kommt immer dieser Fehler:

Parse error: syntax error, unexpected T_IF in E:\Program Files\xampp\htdocs\plz_vote.php on line 4

"on line 4" steht:

if (isset($_POST['plz']))

so dann habe ich oben hinter dem include und in line 4 am schluss noch simikolon gesetzt.. jetzt kommen zumindest keine Fehlermeldungen mehr, aber passieren tu dennoch nix :(

noch eine Idee? oder stell ich mich einfach zu doof an?! :D

gruß

 
H2O
19-06-2008, 16:08 
 
Dann schau halt die Zeile vorher an.

 
timekillar
19-06-2008, 16:19 
 
naja das wäre ja die DB connection, die geht weil keine fehlermeldung und so...

schaut bei mir so aus:

<?php
$verbindung = mysql_connect("xxxx",
"xxx","");
or die ("keine Verbindung möglich. Benutzername oder Passwort sind falsch");

mysql_select_db("xxxx")
or die ("Die Datenbank existiert nicht.");
?>

sachen sind natürlich editiert... (xxxx)

gruß

 
H2O
19-06-2008, 16:40 
 
Nicht was in der Include-Datei steht, sondern in deinem Script:include ("db-connect.php")Fehlt da nicht was?

 
timekillar
19-06-2008, 16:49 
 
ich gebe doch nicht auf, hab es jetzt nochmal neu angegangen :)

also

index.html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>

<body>
<form action="plz_vote.php" method="post">
<input type="text" name="count" size="5">
<input type="submit">
</form>
</body>
</html>

dann die plz_vote.php:
<?php
include ("db-connect.php");

if (isset($_POST['count']))
{
$sql = 'update tabelle1 set count = count+1 where id = \'1\'';
}
?>

bei der brauch ich noch ein wenig Hilfe! ins besondere was das "sql" ding angeht, ich möchte halt das es variabel ist, sprich wenn jemand vorne 12 eingibt, das er die 12 erhöht usw.

und dann noch die connection die auch richtig sein sollte:

<?php
$verbindung = mysql_connect ("xxx",
"xxx", "")
or die ("keine Verbindung möglich.
Benutzername oder Passwort sind falsch");

mysql_select_db("xxx")
or die ("Die Datenbank existiert nicht.");
?>

alerdings geht das ganze noch nicht, kann mir eventuell jemand sagen wo der Fehler liegt?

gruß

 
UzumakiNaruto
19-06-2008, 19:12 
 
Original geschrieben von timekillar
ich gebe doch nicht auf, hab es jetzt nochmal neu angegangen :)

also

index.html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>

<body>
<form action="plz_vote.php" method="post">
<input type="text" name="count" size="5">
<input type="submit">
</form>
</body>
</html>

dann die plz_vote.php:
<?php
include ("db-connect.php");

if (isset($_POST['count']))
{
$sql = 'update tabelle1 set count = count+1 where id = \'1\'';
}
?>

bei der brauch ich noch ein wenig Hilfe! ins besondere was das "sql" ding angeht, ich möchte halt das es variabel ist, sprich wenn jemand vorne 12 eingibt, das er die 12 erhöht usw.

und dann noch die connection die auch richtig sein sollte:

<?php
$verbindung = mysql_connect ("xxx",
"xxx", "")
or die ("keine Verbindung möglich.
Benutzername oder Passwort sind falsch");

mysql_select_db("xxx")
or die ("Die Datenbank existiert nicht.");
?>

alerdings geht das ganze noch nicht, kann mir eventuell jemand sagen wo der Fehler liegt?

gruß

die datenbank connection MUSS jetzt in der connect.php stehen

dann sollte das erstmal funktionieren.

$sql = "UPDATE tabellenname SET `count` = `count` +1 WHERE id = ". $_POST['plz'].";";
count ist nämlich ein mysql befehl, deswegen `count` und nicht count

 
timekillar
19-06-2008, 23:12 
 
so habe nochmal das geändert was du gesagt hattest, aber erstmal gabs keine connection mehr dann hab ich die db-connection.php ubenannt dann gings logischer Weise wieder..

aber er zählt noch immer nicht drauf...

nochmal nur damit wir nicht aneinander vorbeireden, die tabelle heisst tabelle1 mit

id, plz, ort, count spalten

gruß

 
H2O
20-06-2008, 08:21 
 
Original geschrieben von UzumakiNaruto
$sql = "UPDATE tabellenname SET `count` = `count` +1 WHERE id = ". $_POST['plz'].";";
Original geschrieben von mysql_query() (http://de3.php.net/manual/de/function.mysql-query.php)
Hinweis: Die Anfrage sollte nicht mit einem Semikolon enden.
Original geschrieben von UzumakiNaruto
count ist nämlich ein mysql befehl, deswegen `count` und nicht count MySQL kann sehr wohl zwischen count und count() unterscheiden. Deshalb ist count auch kein reserviertes Wort, und damit die Backticks überflüssig

@timekillar
Als erstes schreibst du mal an den Anfang deiner Dateierror_reporting(E_ALL);
// und dann
var_dump($_POST);Dann siehst mal, was überhaupt übergeben wird.

 
UzumakiNaruto
20-06-2008, 08:28 
 
Original geschrieben von timekillar
so habe nochmal das geändert was du gesagt hattest, aber erstmal gabs keine connection mehr dann hab ich die db-connection.php ubenannt dann gings logischer Weise wieder..

aber er zählt noch immer nicht drauf...

nochmal nur damit wir nicht aneinander vorbeireden, die tabelle heisst tabelle1 mit

id, plz, ort, count spalten

gruß

dann update tebelle1 set ......

als debug info:

$sql = "update tabelle1 set count ......."
echo $sql;
dann siehst du den sql-code im browser, kopiere den mal und gebe diesen code DIREKT in die datenbank ein (über phpmyadmin z.b.), dann kannst du sehen ob der sql-code funktioniert oder nicht.

und sorry, natürlich muss die datei db-connection.php heißen und nicht connect.php :rolleyes:

@H20
wieder was gelernt :D


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:05 Uhr.