CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken |
06.06.2003, 17:11:02
|
Junior Member
|
|
Registriert seit: Jun 2003
Beiträge: 186
|
|
Daten in SQL-Datenbank schreiben, nur wie
Hallo,
ich hoffe Ihr könnt mir ein wenig unter die Arme greifen.
Ich habe hier ein bestehendes Kontakt-Formular das ich zu einem Anmelde-Formular für kleine LAN's umbauen möchte.
Das Formular nach meinen Wünsch anzupassen war kein Problem un hätte ich gerne das wenn sich jemand anmeldet diese Daten in einer Datenbank abgelegt werden die ich dann wieder in einer Liste ausgeben möchte wo alle Teilnehmer aufgeführt sind.
Konfiguration der SQL-Datenbank:
DB-Name = anmeldung
tabelle = lanparty
hier Spalten mit "id, name, vorname, email" angelegt.
id -> Typ int(10) -> Null nein -> Extra auto_increment
name -> varchar(50) -> Null nein
vorname -> varchar(70) -> Null nein
email -> varchar(70) -> Null nein
Im Anmeldeskript werden die Daten an den Webmaster und an den User per e-Mail gesendet hier werden auch Variablen verwendet:
$Name
$Vorname usw..
zum Eintrag in die Datenbank Folgender Aufruf:
PHP-Code:
//Daten in die Datenbank speichern
include("./inc/zugriff.inc.php");
$sql="INSERT INTO $table (name) VALUES ($Name)";
mysql_query($sql);
$sql="INSERT INTO $table (vorname) VALUES ($Vorname)";
mysql_query($sql);
//Datenbankverbindug schließen
mysql_close();
Bin ich da total am falschen Dampfer???
Es werden keine Fehler angezeigt!!
Die Verbindung wird woh ohne Probleme hergestellt da beim include kein Fehler auftritt.
Hoffe Ihr könnt mir Helfen!!
Gruß
Alex
|
06.06.2003, 17:33:51
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
|
|
Ein großes Lob an Dich: Wenn jeder seine Probleme so wunderbar formulieren und alle nötigen Infos aufführen würde, wie Du, dann wäre so manche Frage schneller beantwortet. :)
Du hast in der DB eingestellt, dass kein Feld leer bleiben darf. Du fügst aber in jeder Abfrage nur einen Wert ein, heißt, dass Felder leer bleiben. MySQL verweigert das. Logisch.
Fehler werden keine angezeigt, weil Du es ihm nicht gesagt hast, dass er das soll.
Angepasstes Beispiel:
PHP-Code:
$sql="INSERT INTO $tabelle (name, vorname, email) VALUES ('$name', '$vorname', '$email')";
$result=mysql_query($result);
if (!$result) echo mysql_error($Dein_Datenbankhandle_das_bei_der_Verbindung_zur_DB_angegeben_wurde);
Die Werte hinter VALUES stehen in ', weil der Typ der Felder, in die der Inhalt soll vom Typ Text ist und Zeichenketten immer in Hochkomma stehen müssen. Ergo: Bei Zahlen keine.
Die if-Abfrage sorgt dafür, dass, wenn $result kein Ergebnis bekommen hat, die Fehlermeldung angezeigt wird, die mySQL ausgespuckt hat.
So. Alles klarofix? Geht's? Und überhaupt?
Geändert von c4 (06.06.2003 um 17:35:59 Uhr)
|
06.06.2003, 17:55:15
|
Junior Member
|
|
Registriert seit: Jun 2003
Beiträge: 186
|
|
Danke erst mal an die super schnelle Antwort!!
Naja, ich möchte ja das mir geholfen wird und da ich auch noch in anderen Foren aktiv bin weiß ich wie schwer es manchmal ist wenn nur da steht "Hab ein Problem, geht nicht, warum??"
So nun muß ich doch sagen das ich in Sachen PHP&SQL voll Newbi bin!! Was meinst mit
$Dein_Datenbankhandle_das_bei_der_Verbindung_zur_DB_angegeben_wurde);
???
Sorry für die vielleicht blöde Frage.
Wenn es nötig sein sollte kann ich das komplette Script mal als Text-Datei anhängen.
Gruß
Alex
|
06.06.2003, 18:02:20
|
Senior Member
|
|
Registriert seit: Apr 2003
Alter: 57
Beiträge: 1.236
|
|
Hi AlexD,
wie c4 geschrieben hat, musst Du die Variablen in ' packen, und alle Daten aufeinmal in die Datenbank schreiben, sonst bekämst Du mehrere Datensätze, in denen dann nur ein Name oder Vorname etc. stehen würde.
@c4
Hallo,
ich denke das mit dem "Null Nein" ist nicht das Problem, sondern eher die Hochkommatas. Aber ich will mich als Frischling in diesem Forum nicht mit einem SeniorMember anlegen :-)
Respekt für Eure Arbeit!
Grüsse und schöne Feiertage
chris17
|
06.06.2003, 18:03:20
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
|
|
Zitat:
Aber ich will mich als Frischling in diesem Forum nicht mit einem SeniorMember anlegen :-)
|
Vergiss das! Nur weil einer 3 oder 4 Posts mehr hat, heißt das ja nicht, dass er nicht irrt! Also, ruhig fertig machen! ;)
Zum Problem.
Beispielskript connect_sql.php:
PHP-Code:
<?php
// test, ob Skript online oder lokal läuft
// wenn online
if (strstr(strtolower($_SERVER["SERVER_NAME"]),"dbcf.de"))
{
// adresse des db-servers
$host="mysql6.webpack.hosteurope.de";
// nutzername
$user="xyz";
// passwort
$password="zyx";
// datenbankname
$dbase="dbcf_de";
}
// wenn lokal
else
{
$host="127.0.0.1";
$user="";
$password="";
$dbase="abkuerzungen";
}
// zum db-server verbinden
// $linkdb ist ab sofort das datenbank-handle (auch pointer)
$linkdb=@mysql_connect($host, $user, $password);
// wenn verbindung erfolgreich, dann db auswählen
if ($linkdb) {mysql_select_db($dbase, $linkdb);}
?>
Das jetzt auf das Skript von oben bezogen und sauberer programmiert:
PHP-Code:
<?php
include('connect_sql.php');
$sql="INSERT INTO $tabelle (name, vorname, email) VALUES ('$name', '$vorname', '$email')";
$result=mysql_query($sql, $linkdb);
if (!$result) echo mysql_error($linkdb);
mysql_close($linkdb);
?>
Geändert von c4 (06.06.2003 um 18:06:42 Uhr)
|
06.06.2003, 19:23:40
|
Junior Member
|
|
Registriert seit: Jun 2003
Beiträge: 186
|
|
Wenn ich heute noch dazu komme test ich das noch....
das Ergebins sag ich Euch dann auch!! ;)
Muß schon sagen, hier wird einem sehr fix geholfen!!
Wenn das überall so wäre....
Gruß
Alex
P.S.: Respekt vor Leuten die in PHP so fit sind!!
|
07.06.2003, 12:48:41
|
Junior Member
|
|
Registriert seit: Jun 2003
Beiträge: 186
|
|
Hi c4,
also ich kann nun meine Datenbank befüllen!!
mit dem "$linkdb" , da bin ich ja voll auf der Leitung gesessen!! sorry.
Super hilfe hier!
So nun werd ich mich mal an das Scirpt machen das die Datenbank dann wieder aus liest.
Da ich wie Ihr schon bemerkt habt nicht wirklich viel Ahnung von PHP und SQL hab geh ich das langsam an und hoffe das ich Eure Hilfe dann wieder in anspruch nehmen darf. ;-)
Ihr hört sicher noch von mir *grins*
Alex
|
08.06.2003, 11:59:23
|
Junior Member
|
|
Registriert seit: Jun 2003
Beiträge: 186
|
|
Jetzt bin ich schon so weit
Ich schreib das hier einfach in den Thread....
So Daten werden einwandfrei in die DB geschrieben.
Zum Auslesen der Daten gehts ja in etwa so:
PHP-Code:
<?php
include('connect_sql.php');
$sql="SELECT name, vorname, email, usw.. FROM lanparty";
$liste=mysql_query($sql, $db);
mysql_close($db);
?>
Das ganze hab ich mal unter teilnehmer.php abgespeichert.
Wenn ich die so mal aufrufe, dann kommt folgender Fehler:
Parse error: parse error, unexpected T_VARIABLE in C:ProgrammeJana2htmlhp_neuhtmlnetzwerksessionanmeldungliste.php on line 11
die Zeile 11 enspricht:
$sql="SELECT name, vorname, email ..... FROM lanparty";
Zur Datenbank:
Datenbankname: anmeldung
Tabelle: lanparty
Spalten: name, vorname........
Es soll in PHP vorerst nur die DB als Liste ausgegeben werden.
Dank Euch scho mal für die Hilfe.
Gruß
Alex
|
08.06.2003, 12:02:26
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
|
|
Unter teilnehmer.php hast Du den Quältext gespeichert, PHP sagt aber, dass der Fehler in liste.php ist. Da musst Du schon in der angegebenen Datei suchen... ;)
|
08.06.2003, 12:52:36
|
Junior Member
|
|
Registriert seit: Jun 2003
Beiträge: 186
|
|
Ups....
sorry, liste.php ist teilnehmer.php!!
ich hab die liste.php kurz vor dem Posting in teilnehmer.php umgetauft!!
Der Fehler ändert sich jedoch nicht :(
Parse error: parse error, unexpected T_VARIABLE in C:ProgrammeJana2htmlhp_neuhtmlnetzwerksessionanmeldungteilnehmer.php on line 11
Das ich mit den Quältexten noch "etwas" probs hab muß ich zugeben! ;)
Die Frage ist nur wer hier wen "quält". :)
aus der teilnehmer.php mit den Zeilennummern.
PHP-Code:
8 //Verbinung zu Datenbank herstellen
9 include("connect_sql.php")
10
11 $sql="SELECT name, vorname, email FROM lanparty";
12 $liste=mysql_query($sql, $db);
13
14 mysql_close($sql, $db);
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 14:25:05 Uhr.
|