ebiz-webhosting
- Ad -
php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 26-06-2006, 11:03
z3ntn3l
 Newbie
Links : Onlinestatus : z3ntn3l ist offline
Registriert seit: Jun 2004
Beiträge: 6
z3ntn3l ist zur Zeit noch ein unbeschriebenes Blatt
Standard absoluter newbie: via PHP Formular - Daten in Datenbank eintragen

Hallo erstmal!

Ich bin absolut neu im Bereich PHP/MYSQL, habe aber (wie die meissten) grosse Vorstellungen was ich machen möchte
Nur leider hapert es meisstens schon an den einfachsten Dingen.

Hier nun 3 (wohl eher lächerliche) Probleme mit denen ich mich nun schon 2 Tage rumschlage.

1.
Ich möchte ein einfaches Formular mit ein paar Eingabefeldern in HTML erstellen, dass dann wenn man auf den "speichern" button klickt die eingebenen Daten über ein PHP script in eine MySQL Datenbank einträgt.
Eigentlich wohl eine alltägliche Angelegenheit, jedoch bei mir klappts einfach nicht und ich weiss nicht was ich falsch mache...

Hier mein bisheriger Versuch:

eintrag.htm
Code:
<form method="post" action="eintrag.php">
neue id:
<input type="text" name="id" size="10">
<br>
spielname:
<input type="text" name="name" size="20">
<p>
<input type="submit" value="speichern" name="abschicken">
</form>
eintrag.php
PHP-Code:
<?php
if (!isset($abschicken)) {
    include(
'eintrag.htm');
    exit; }

$server    "localhost";
$user    "mein username";
$pass    "mein passwort";
$database "die datenbank";
$table    "ss_spiele";

$verbindung mysql_connect($server$user$pass)
    or die (
"verbindung zu sql geht nicht");

mysql_select_db($database$verbindung);

sql "INSERT INTO $table VALUES ('$id', '$name')";
$ausgabe "gespeichert!";

sql_query($sql) or die ("sql eintrag fehler");

mysql_close($verbindung);
echo 
$ausgabe;

?>
Beim ausführen der PHP bleibt passiert nichts...
vielleicht sieht ja jemand auf den ersten Blick woran es liegt.


2.

Ist es absolut zwingend notwenig wenn ich eine verbindung zu einer MySQL via PHP aufgebaut habe diese auch wieder zu beenden?

Wenn ja: Reicht es wenn ich einfach ans Ende des Scripts den Befehl:
PHP-Code:
mysql_close(); 
setze oder muss zwischen die Klammern noch die Verbindungsdaten?
Wenn ja wie müsste das dann aussehen?


3.

Frage zu ID´s:
Wie man ja auch oben beim ersten Script sehen kann setze ich die id per Hand ein. Es soll ja aber auch möglich sein das dies automatisch um 1 höher gesetzt wird? Mit AUTO_INCREMENT?
Habe es mal versucht bei mir auf auto_increment zu stellen, jedoch kam folgende Meldung:
Code:
ALTER TABLE `ss_spiele` CHANGE `id` `id` TEXT NOT NULL AUTO_INCREMENT 


#1063 - Incorrect column specifier for column 'id'

Ich hoffe ich bin mit meinen Anfänger-fragen nicht im falschen Forum gelandet, wenn doch bitte ich dies zu entschuldigen...
Mit Zitat antworten
  #2 (permalink)  
Alt 26-06-2006, 11:19
derHund
 PHP Master
Links : Onlinestatus : derHund ist offline
Registriert seit: Aug 2003
Ort: Hundehütte
Beiträge: 5.293
derHund ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: absoluter newbie: via PHP Formular - Daten in Datenbank eintragen

1. register_popels ähhh globals heißt das Zauberwort, Du kannst nicht einfach auf die Variablen zugreifen, mußt vielmehr $_POST verwenden. Lass Dir nach dem Absenden mal $_POST ausgeben (print_r). Lass Dir auch mal die Query ausgeben, sie sollte eigenartig aussehen.

Achso: Was soll sql_query() sein? Gibt es keine Fehlermeldungen? Dass rein gar nichts passiert, kann quasi nicht sein ... Setz Dein error_reporting mal auf E_ALL.

2. Nicht zwingend nötig, ein einfaches close reicht aber, soweit ich mich erinner - kuckst Du mysql_close im Manual.

3. Ich denke mal, die ID muss Integer sein ... benutz dafür lieber mal PHPMyAdmin oder definier sowas gleich beim Erstellen der Tabelle.
__________________
Die Zeit hat ihre Kinder längst gefressen: hund (back in black) | ??? | ??? | ...

Geändert von derHund (26-06-2006 um 11:22 Uhr)
Mit Zitat antworten
  #3 (permalink)  
Alt 26-06-2006, 11:31
z3ntn3l
 Newbie
Links : Onlinestatus : z3ntn3l ist offline
Registriert seit: Jun 2004
Beiträge: 6
z3ntn3l ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
3. Ich denke mal, die ID muss Integer sein ... benutz dafür lieber mal PHPMyAdmin oder definier sowas gleich beim Erstellen der Tabelle.
Hmm ich habs mit phpmyadmin versucht:

Code:
ALTER TABLE `ss_spiele` CHANGE `id` `id` INT NOT NULL AUTO_INCREMENT 


#1075 - Incorrect table definition; There can only be one auto column and it must be defined as a key

zu dem $_POST:

Irgendwie hört sich das für mich chinesisch an
Sorry, weiss nicht wie ich das machen soll?
Mit Zitat antworten
  #4 (permalink)  
Alt 26-06-2006, 11:38
Guido
 Member
Links : Onlinestatus : Guido ist offline
Registriert seit: Jan 2001
Beiträge: 324
Guido ist zur Zeit noch ein unbeschriebenes Blatt
Guido eine Nachricht über ICQ schicken Guido eine Nachricht über AIM schicken
Standard

Der Code-Sauberkeit halber:
PHP-Code:
<?
if (!isset($_POST['abschicken'])) {
    include(
'eintrag.htm');
    exit; }
// ...
$sql "INSERT INTO $table (id, name) 
        VALUES ('"
$_POST['id']."', '"$_POST['name']."')";
// ...
?>
bzw ohne 'id', wenn diese sowieso auf auto_increment gesetzt ist.

Nicht zu vergessen, ein gutes Buch tut Wunder, meine Empfehlung:
Jörg Krause, PHP5 Grundlagen und Profiwissen
mit gutem MySQL-Teil.
Mit Zitat antworten
  #5 (permalink)  
Alt 26-06-2006, 11:41
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 24.486
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von z3ntn3l
#1075 - Incorrect table definition; There can only be one auto column and it must be defined as a key
Und was verstehst du daran nicht?
Zitat:
zu dem $_POST:

Irgendwie hört sich das für mich chinesisch an
Sorry, weiss nicht wie ich das machen soll?
Gerade für newbees gilt: RTFM!
http://www.php.net/manual/de/languag...predefined.php
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #6 (permalink)  
Alt 26-06-2006, 11:51
Guido
 Member
Links : Onlinestatus : Guido ist offline
Registriert seit: Jan 2001
Beiträge: 324
Guido ist zur Zeit noch ein unbeschriebenes Blatt
Guido eine Nachricht über ICQ schicken Guido eine Nachricht über AIM schicken
Standard

Zitat:
Original geschrieben von z3ntn3l
zu dem $_POST:

Irgendwie hört sich das für mich chinesisch an
Sorry, weiss nicht wie ich das machen soll?
Eigentlich ganz simpel.
Definierst du den Formular-Tag mit
Code:
<form method="post"  action="eintrag.php">
stehen die Werte-Paare in der globalen Variable $_POST zur Verfügung.

Kleine Übung: Wie sieht das bei
Code:
<form method="get"  action="eintrag.php">
aus?

Richtig ... $_GET !!!

Aber nu is gut, husch husch in den nächsten Bücherladen oder in die Bibliothek...
Mit Zitat antworten
  #7 (permalink)  
Alt 26-06-2006, 11:52
derHund
 PHP Master
Links : Onlinestatus : derHund ist offline
Registriert seit: Aug 2003
Ort: Hundehütte
Beiträge: 5.293
derHund ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
#1075 - Incorrect table definition; There can only be one auto column and it must be defined as a key
Ja, eigentlich selbstredend. Wenn Du in PMA mal in der Struktur-Ansicht schaust, bei den Aktionen kannst du eine Spalte als Primärschlüssel definieren (viertes Icon, Schlüssel über Tabelle).
__________________
Die Zeit hat ihre Kinder längst gefressen: hund (back in black) | ??? | ??? | ...
Mit Zitat antworten
  #8 (permalink)  
Alt 26-06-2006, 11:56
Spliffster
 Junior Member
Links : Onlinestatus : Spliffster ist offline
Registriert seit: May 2005
Beiträge: 71
Spliffster ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Um mal noch ein schönes Tutorial anzumerken:

tut.php-q.net

Arbeite das durch und danach sollteste fit im Umgang mit php sein.
Mit Zitat antworten
  #9 (permalink)  
Alt 26-06-2006, 11:56
z3ntn3l
 Newbie
Links : Onlinestatus : z3ntn3l ist offline
Registriert seit: Jun 2004
Beiträge: 6
z3ntn3l ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ihr habt natürlich recht mit RTFM...
Ich habe mir auch im vorfeld ein paar Beispiele angesehen die leider in einigen Punkten immer unterschiedlich waren zu meinen Vorstellungen und ich dann beim editieren völlig daneben lag...

Ich habe es jetzt ausprobiert und immerhin wird as htm Formular jetzt angezeigt beim aufruf der Seite.
Nach dem abschicken kommt aber nicht die echo $ausgabe und eingetragen in die db wurde auch nichts.

PHP-Code:
<?php
if (!isset($_POST['abschicken'])) {
    include(
'eintrag.htm');
    exit; }

$server    "localhost";
$user    "user";
$pass    "pw";
$database "db";
$table    "ss_spiele";

$verbindung mysql_connect($server$user$pass)
    or die (
"verbindung zu sql geht nicht");

mysql_select_db($database$verbindung);

$sql "INSERT INTO $table (id, name) 
        VALUES ('"
$_POST['id']."', '"$_POST['name']."')";

$ausgabe "gespeichert!";

sql_query($sql) or die ("sql eintrag fehler");

mysql_close($verbindung);
echo 
$ausgabe;

?>

zu: There can only be one auto column and it must be defined as a key

also für mich bedeutet es das es wohl pro tabelle nur eine Zelle geben darf die auf auto_increment steht? Das wäre aber die einzige Zelle.?

edit: OK habs jetzt mit auto_increment. Danke vielmals!

Geändert von z3ntn3l (26-06-2006 um 11:59 Uhr)
Mit Zitat antworten
  #10 (permalink)  
Alt 26-06-2006, 12:00
Spliffster
 Junior Member
Links : Onlinestatus : Spliffster ist offline
Registriert seit: May 2005
Beiträge: 71
Spliffster ist zur Zeit noch ein unbeschriebenes Blatt
Standard

probiers mal mit

PHP-Code:

mysql_query
($sql);

//statt 

sql_query($sql); 
Mit Zitat antworten
  #11 (permalink)  
Alt 26-06-2006, 12:04
z3ntn3l
 Newbie
Links : Onlinestatus : z3ntn3l ist offline
Registriert seit: Jun 2004
Beiträge: 6
z3ntn3l ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Vielen vielen Dank!

Nun klappts!

Ihr seid echt klasse!

Hätte nicht gedacht das man hier so schnell eine antwort bekommt!

Jeden Tag eine gute Tat - Ihr habt sie heute schon erbracht
Mit Zitat antworten
  #12 (permalink)  
Alt 26-06-2006, 12:15
Spliffster
 Junior Member
Links : Onlinestatus : Spliffster ist offline
Registriert seit: May 2005
Beiträge: 71
Spliffster ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Und jetzt kannst du dich daran setzen dein Script gegen
SQL-Injections abzusichern.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

MariaDB 5.5 veröffentlicht
MariaDB 5.5 veröffentlichtDie freie MySQL-Alternative MariaDB wurde in der stabilen Version 5.5.23 veröffentlicht und soll einige Verbesserungen gegenüber Oracles Communityversion von MySQL mitbringen.

16.04.2012 | Berni

Deutsche Yii Framework Community
Deutsche Yii Framework CommunitySeit dem 19.03.2012 gibt es für die Yii PHP Framework Community ein deutsches Zuhause.

20.03.2012 | dhcomputer

 

Aktuelle PHP Scripte

Advanced Login ansehen Advanced Login

Login-System und Kundenverwaltung, die sich spielend leicht in bestehende Webseiten einbauen lässt und einen enormen Funktionsumfang bietet. Ihre eigene Webseite muss mit Advanced Login nicht umständlich an ein fertiges System angepasst werden.

25.05.2012 Madden | Kategorie: PHP/ Kundenverwaltung
BROM CMS/BelCal 3 ansehen BROM CMS/BelCal 3

Spezielles CMS für Betreiber von Ferienwohnungen. Komplette Seitenerstellung online, Verwaltung mehrerer Objekte, Reservierungssystem mit sofortigem Abgleich im Belegungskalender und vieles mehr bietet dieses Content Management System.

25.05.2012 belcal2 | Kategorie: PHP/ CMS
belbit LiveSupport Script ansehen belbit LiveSupport Script

Schnellen und unkomplizierten Support im LiveSupport-Chat anbieten. Ohne Datenbank und in wenigen Sekunden installiert.

24.05.2012 EichbaumMedia | Kategorie: PHP/ Chat
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:12 Uhr.