Einsteigerfrage: Wie in Tabelle speichern ?

Warscheinlich unterforder ich euch, aber ich versuchs trotzdem mal. Ich kann php nur grob, und will jetzt testweise eine Namensliste erstellen, in der man sich via Formular eintragen kann.

Wie gesagt, ich bin Einsteiger und habe keine Ahnung, ich habs mal so angefangen:

Erst stelle ich eine Verbindung her zur MySQL Datenbank, auf connect.php, eingebunden mit:

<?php include 'connect.php';
?\> Dann erstelle ich ein simples Formular: Meine aller erste Frage wäre, WIE speichert ein User per Formular seinen Namen in die Tabelle ein ? (Tabelle heißt "namen", das einzige Feld: "name") 2) Wie kommt diese Liste zustande, in der man alle eingetragenden sieht ?

Hallo,

Warscheinlich unterforder ich euch, aber ich versuchs trotzdem
mal. Ich kann php nur grob, und will jetzt testweise eine
Namensliste erstellen, in der man sich via Formular eintragen
kann.

Wie gesagt, ich bin Einsteiger und habe keine Ahnung, ich habs
mal so angefangen:

Schau mal in FAQ:2373 , dort gibt es ein paar Links zu Tutorials, wo das alles ganz nett erklärt wird.

Erst stelle ich eine Verbindung her zur MySQL Datenbank, auf
connect.php, eingebunden mit:

<?php : include 'connect.php';
?\> Dann erstelle ich ein simples Formular: Meine aller erste Frage wäre, WIE speichert ein User per Formular seinen Namen in die Tabelle ein ? (Tabelle heißt "namen", das einzige Feld: "name")

Wenn dein Script aufgerufen wird, wird erst einmal das Formular ausgegeben und vom Browser dargestellt. Wird das Formular abgeschickt, wird dein Script (da du kein action= angegeben hast das gleiche Script) neu aufgerufen. Diesmal wird die Eingabe des Benutzers mit übermittelt.

if (isset($\_POST["name"])) { // wenn eine Eingabe gesendet wurde
 $sql = sprintf("INSERT INTO namen (name) VALUES('%s')", // SQL zusammenbauen, %s wird durch den Paremeter in der nächsten Zeile ersetzt
 mysql\_real\_escape\_string($\_POST["name"])); // Sonderzeichen filtern, $\_POST["name"] ist die Eingabe
 mysql\_query($sql) or die($sql.":".mysql\_error()); // das "or die..." ist nur 
 // Fehlerbehandlung und sorgt für einen Abbruch des Scripts im Fehlerfall
}
  1. Wie kommt diese Liste zustande, in der man alle
    eingetragenden sieht ?
$sql = "SELECT name FROM namen";
$result = mysql\_query($sql) or die($sql.":".mysql\_error());
echo mysql\_num\_rows($result)." Namen
";
while($zeile = mysql\_fetch\_assoc($result)) {
 echo $zeile['name']."
";
}

Alexander

OK, danke.
Ich hab das soweit übernommen, jetzt kommen nur leider Fehlermeldungen:

Warning: mysql_query() [function.mysql-query]: Can’t connect to local MySQL server through socket ‚/tmp/mysql.sock‘ (2) in …

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in …

SELECT name FROM namen:Can’t connect to local MySQL server through socket ‚/tmp/mysql.sock‘ (2)

Das sieht so aus als würde gar keine Verbindung zur Datenbank bestehen.
hast du die connect.php in der Datei eingebunden in der die Daten gespeichert werden?
Wenn ja poste einfach mal den Inhalt ( aber mach die Passwörter raus :wink: ), oder mach eine Fehlerabfrage wie http://tut.php-q.net/mysql-connect.html
erklärt.

mfg
Roland

Die komplette connect.php:

<?php $link = mysql_connect('localhost', 'jan4242', ' ******');
if (!$link) { die('keine Verbindung möglich: ' . mysql\_error()); } echo 'Verbindung steht.'; mysql\_close($link); ?\> Ist das so nicht richtig ? Aber es wird angezeigt "Verbindung steht"... > [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

echo ‚Verbindung steht.‘;

Soweit gut.

mysql_close($link);

Und mit der Zeile trennst du die Verbindung sofort wieder. Die Zeile weglassen… PHP trennt die Verbindung sowieso am Scriptende automatisch.

Dann fehlt da noch ein mysql_select_db(‚Datenbankname‘);, wenn du das mit meinem Code von oben probierst…

Alexander

Super, klappt alles.

Hab meine Namensliste fertig, und das Prinzip habe ich auch einigermaßen verstanden.

Danke =)