php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.09.2005, 20:26  
Gast
 
Beiträge: n/a
Standard Daten einlesen MySQL und PHP

Hallo,

ich bin noch ziemlicher Neuling, was PHP angeht, deswegen hoffe ich, dass ich Hilfe von euch bekommen kann. Ich habe folgendes Problem:

Ich möchte einfach Formulardaten in eine MySQL DB einlesen. Leider klappt das nicht kann mir jemand helfen und sagen, was an meinem code nicht stimmt???
P.s.: Die Verbindung zu DB ist OK, daran liegt es also nicht.

Die HTML-Datei

Code:
<form action="test.php" method="post">
<table width="300" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>Name:</td>
<td><input name="name" type="text" size="30" maxlength="100"></td>
</tr>
<tr>
<td>Vorname:</td>
<td><input name="vorname" type="text" size="30" maxlength="100"></td>
</tr>
<tr>
<td><input name="los" type="submit" value="los"></td>
<td> </td>
</tr>
</table>
Die PHP-Datei

PHP-Code:
<?php
$datenbank 
= @mysql_connect("xxxxxxxxxxx","xxxxxxxxxxx","xxxxxxxxx");
if (!
$datenbank) {
echo 
"
Keine Verbindung zu DB möglich!\n"
;
exit;
}

$var1 $_POST['name'];
$var2 $_POST['vorname'];

$einlesen "INSERT INTO name (name, vorname) VALUES ('$var1', '$var2')";
if (
mysql_select_db("dbo134193582"$datenbank)) {
$reindamit mysql_query($einlesen$datenbank);
// echo $reindamit;
}
if (!
$reindamit) {
echo 
"geht nicht!";
exit;
}
?>

?>
Wäre für schnelle Hilfe sehr dankbar

machts gut
der Noob
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 20.09.2005, 20:40  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Hi noobXXL.

Über dem Eingabefeld für die Postings gibt es so einen hübschen Button zum Einfügen von PHP-Tags. Damit kannst Du Code-Schnipsel einfügen, die dann schön bunt angezeigt werden.
Innerhalb der PHP-Tags bleibt auch die Einrückung erhalten.
Das wäre dann deutlich besser lesbar als jetzt.

Ändere das doch bitte noch nachträglich in dem Posting.

Da Du uns nicht sagst, was nicht klappt wird Dir auch keiner so schnell helfen können.
Probier's doch mal mit einer genauen Fehlerbeschreibung.
- Wird 'geht nicht' ausgegeben?
- Wird nichts ausgegeben, aber die Daten stehen trotzdem nicht in der DB?
- Explodiert die Kaffeemaschine?
- etc....

- Was passiert, wenn Du das ganze mal in einer Tabelle probierst, wo nicht Tabelle und Spalte den Namen 'name' haben?
- Was wird ausgegeben, wenn Du oben in das Script die Zeile error_reporting(E_ALL); einfügst?
- Was passiert, wenn Du hinter das ein or die anhängst? Also so:
PHP-Code:
<?php
 mysql_query
() or die (mysql_error());
?>
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 20.09.2005, 21:37  
Gast
 
Beiträge: n/a
Standard

Hallo,

vielen lieben Dank erstmal für die rasche Antwort. Habe mein Posting mal überarbeitet. Danke für den Tipp. War echt mal "extrem noobie" von mir.

Also ich bekomme meine selbst erstellte Fehlermeldung "geht nicht".

Die Verbindung zu DB ist ok. Habe ich bereits ausgelagert und funktioniert auch prima mit meinen scripten, die ich nur zum Auslesen benutze.

Kannst Du mir denn trotzdem noch helfen?
 
Alt 20.09.2005, 21:42  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Sieht doch gleich viel besser aus.

Auf die Antworten bezüglich "error_reporting", "mysql_error" und des anderen Tabellennamens warte ich noch....

Lass Dir auch mal $einlesen ausgeben und zeig das Ergebnis her.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 20.09.2005, 22:17  
Gast
 
Beiträge: n/a
Standard

solange wir warten noch ein Tip:

benutze nie "einfach so" das @ vor einem Befehl. Dann werden nämlich etwaige Fehlermeldungen nicht angezeigt. Das @ kannst du z.B. benutzen, wenn du Fehlermeldungen abfangen möchtest, a la:
PHP-Code:
<?
if ($mail_good = @mail([...])) {
   echo 
"Mail erfolgreich zugestellt!";
}
else {
   echo 
"Mail konnte nicht versandt werden!";
}
?>
Gruß,
Jojo
 
Alt 21.09.2005, 09:41  
Erfahrener Benutzer
 
Registriert seit: 01.06.2004
Beiträge: 723
suendesizer
Standard

Ich würde die Verbindung mit der Datenbank in einem Schwung mit der Verbidung zum Server machen:
PHP-Code:
<?php
function connect_db ($server,$user,$pass,$datenbank) {
$link mysql_connect($server,$user,$pass) or die("Fehler beim verbinden zum Server".mysql_error());
$select_db mysql_select_db($datenbank,$link) or die("Fehler beim verbindn zur Datenbank: ".mysql_error());
return 
$link;
}

$connection connect_db($server,$user,$pass,$datenbank);
// $connection kann nun als Verbindungskennung in mysql_query() hergenommen werden
?>
__________________
If you read this message backward, Satan will force you to smoke marijuana.
Gute Tutorials
suendesizer ist offline  
Alt 22.09.2005, 11:30  
Gast
 
Beiträge: n/a
Standard

Hallo,

ich habe ein ähnliches Problem. Bei mir kommt keine Fehlermeldung, aber die Datensätze werden nicht in die Datenbank gespeichert.
Bin für jede Hilfe sehr dankbar.

"Hardware" heißt die Datenbank, "fp" die Zieltabelle.
Ist ein Beispiel aus einem Buch.

Ronald

<html>
<head>

PHP-Code:
<?php
if (isset($gesendet))
{
    
mysql_connect();
    
mysql_select_db("hardware");

    
$sqlab "insert fp";
    
$sqlab .= "(hersteller, typ, mb, preis, artnummer, prod) values ";
    
$sqlab .= "('$hs', '$t', $m, $pre, $art, '$pr')";

    
mysql_query($sqlab);

    
$num mysql_affected_rows();
    if (
$num>0)
        echo 
"Es wurde 1 Datensatz hinzugefügt

"
;
    else
    
    echo 
"Es ist ein Fehler aufgetreten";
    

}

?>
</head>

<body>
Geben Sie einen vollständigen Datensatz ein und senden Sie das Protokoll ab!

<form action = "eingabe1.php" method = "post">
<input name="hs"> Hersteller


<input name="t"> Typ


<input name="m"> Festplattengröße


<input name="pre"> Preis


<input name="art"> Artikelnummer


<input name="pr"> Produktionsbeginn



<input type = "submit" name = "gesendet">
<input type = "reset">
</form>

</body>
</html>
 
Alt 22.09.2005, 12:05  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Hallo,

das ist ja erstklassiges Thread-Napping.
Bitte packe Deinen Code in PHP-Tags.
Dafür gibt's den Button rechts über dem Eingabefeld hier.
Editiere dazu bitte Dein Posting.

Wenn Du den Thread hier schon kidnappst, dann lies ihn doch bitte auch gleich mal durch und beantworte die selben Fragen wie der Ursprungs-Poster.
Insbesondere den Teil mit error_reporting und mysql_error aus meinem früheren Posting in diesem Thread.

Extra für Deinen Fall würde ich noch folgendes vermuten:
- Du hast register_globals auf off und daher ist $gesendet nicht definiert. Das sagt Dir dann auch ein eingeschaltetes error_reporting. Nimm $_POST['gesendet']. Gleiches gilt natürlich für die übrigen Parameter, die Du eintragen willst.
- Die SQL-Syntax lautet INSERT INTO Tabelle... Das sagt Dir sicher auch der Aufruf von mysql_error().

Was sollen denn die ganzen Input-Felder ohne Typ und ohne Ende? Bring das mal in Ordnung.

Was glaubst Du eigentlich, was der <head> einer HTML-Datei sein soll? Da hat ein echo nix drin verloren, außer Du schreibst damit Header-Teile, was Du aber nicht machst. Der ganze PHP-Teil sollte in Deinem Fall doch sicher im <body> stehen.

Ist das 1:1 aus dem Buch abgetippt?
Wenn ja, dann verbrenn es oder zwing den Autor es zu essen.

Edit:
Ich hab die obige Aussage zu echo im <Head> etwas umformuliert.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 23.09.2005, 13:42  
Gast
 
Beiträge: n/a
Standard

Hey,

vielen Dank für die schnelle Antwort.
Werde mein Posting allerdings erst am Montag überarbeiten können.
Aber die zahlreichen Anregungen sind für mich sehr hilfreich.

lg Ronald
 
Alt 28.09.2005, 15:35  
Gast
 
Beiträge: n/a
Standard

Hallo,

hab hier mal eine vereinfachte Form meines Problems.

<html>
<head>

PHP-Code:
<?php
if (isset($_POST['gesendet']))
{
    
mysql_connect();
    
mysql_select_db("Ronald");

    
$sqlab "insert into Versuch1";
    
$sqlab .= "(name) values ";
    
$sqlab .= $_POST["na"];

    
mysql_query($sqlab) or die (mysql_error());

    
$num mysql_affected_rows();
    if (
$num>0)
        echo 
"Es wurde 1 Datensatz hinzugefügt

"
;
    else
    
    echo 
"Es ist ein Fehler aufgetreten";
    

}

?>
</head>

<body>
Geben Sie einen vollständigen Datensatz ein und senden Sie das Protokoll ab!

<form action = "eingabe3.php" method = "post">
<input name="na"> Name


<input type = "submit" name = "gesendet">
<input type = "reset">
</form>

</body>
</html>

Fehlermeldung:

Ich habe einen Fehler in der SQL Syntax.
Check the manual that corresponds to your MySQL server version for the right syntax ti use near 'Ronald' at line 1. ('Ronald' ist dabei der variable Wert der ins Formular eingegeben wird)

Was kann/ muss ich tun?
Vielen Dank für eure Hilfe

lg Ronald
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Daten selber per Browser ändern (MYSQL) Minimi PHP Tipps 2008 9 31.12.2007 13:21
Serverumzug - Problem mit MySQL Daten [GE]ReeN Datenbanken 6 28.03.2006 17:02
[Erledigt] MySQL Server startet nicht mehr richtig... Datenbanken 16 03.03.2006 19:40
Daten aus Mysql auslesen CityHubter PHP Tipps 2007 8 23.12.2005 23:39
[Anfänger] Daten Sortieren und Filtern mit Mysql PHP Tipps 2007 7 04.11.2005 23:30
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
[Erledigt] Daten aus MySQL in einer zufälligen Reihenfolge ausgeben PHP-Fortgeschrittene 2 31.07.2005 12:42
XML Daten in eine MySQL Datenbank Datenbanken 8 24.07.2005 16:03
daten mit positionsangabe einlesen PHP Tipps 2005-2 3 20.07.2005 16:45
checkfelder in mysql einlesen u wieder ausgeben PHP Tipps 2005-2 3 06.06.2005 14:36
Mysql daten in Selct element einfügen PHP Tipps 2005 4 08.03.2005 17:44
Mysql daten in Selct element einfügen PHP Tipps 2005 5 08.03.2005 16:48
[Erledigt] MySQL ODBC - Word 97 - Daten importieren Datenbanken 0 30.11.2004 10:44
Auslesen von Daten aus einer mysql Datenbank + Editieren vampsoftchef PHP Tipps 2004-2 5 15.11.2004 08:31
Daten aus Html-Formular in eine php-Datei einlesen PHP Tipps 2004 9 09.07.2004 20:02

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql datensatz einlesen, $sqlab = \insert fp\;

Alle Zeitangaben in WEZ +1. Es ist jetzt 11:48 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.