Anzeige - [Hier werben / Mediadaten]
(?) Tags raten (?) (edit)
Seiten: (2) [1] 2  ( Neuster Beitrag anzeigen )
Reply to this topicStart new topicStart Poll
> MySQL-Datenbanktabellen verknüpfen mit PHP
AnnaS
Geschrieben am: Mo 26.02.2007, 11:47
Report PostQuote Post

AyomRank 2
****

Gruppe: Member (inaktiv)
Beiträge: 15
Mitglied seit: 26.02.2007


Hallo zusammen,

Ich habe eine Datenbank mit zwei Tabellen. Und zwar eine mit Namen und eine Mit Abwesenheitsdaten:

Tabelle "Personen" beinhaltet:
  • id
  • name
  • vorname

Tabelle "Abwesenheit" beinhaltet:
  • id
  • person_id (fremdschlüssel)
  • von
  • bis

Nun habe ich in einem Formular eine Dropdownliste mit allen Namen. Man kann einen Namen auswählen und sieht dann den gewählten Namen und zwei Felder wo man die Daten eintragen kann von wann bis wann man weg ist. Sobald man auf Absenden klickt werden die Abwesenheits-Daten schön in die Datenbank eingetragen. Jedoch wird die ID von der Person nicht in die Fremdschlüsselspalte der Tabelle "Abwesenheit" eingetragen. Ich sollte irgendwie in dieser Dropdownliste ein Value eingeben das dann übertragen wird, aber es funktioniert nie, egal was ich mache. Jetzt habe ich jetzt folgendes:

CODE

echo "<option value=\"".$row['id']."\">".$row['name']." ".$row['vorname']."</option>";


//zum eintragen in die Datenbank habe ich:

$sql = "INSERT INTO $table (person_id, von, bis) VALUES ('$row', '$von', '$bis');";


Ich habe auch schon eine Variable z.B. $id für $row['id'] eingesetzt, aber es funktioniert einfach überhaupt nichts und im Internet habe ich auch nichts gefunden.

Ich hoffe ihr könnt mir helfen mein Problem zu lösen.
Vielen Dank schon zum Voraus.
Top
PMEmail Poster
Top
 
 
Jörg Kruse
#2 Geschrieben am: Mo 26.02.2007, 12:46 (+00:58)
Report PostQuote Post

AyomRank 5
Group Icon

Gruppe: Experten Entwicklung
Beiträge: 418
Mitglied seit: 19.12.2004


Hast du für das name Attribut des select Elements "row" bzw. "id" angegeben?


--------------------
Top
PMEmail PosterUsers Website
Top
 
AnnaS
#3 Geschrieben am: Mo 26.02.2007, 12:58 (+00:12)
Report PostQuote Post

AyomRank 2
****

Gruppe: Member (inaktiv)
Beiträge: 15
Mitglied seit: 26.02.2007


Das ist der Abschnitt mit der Dropdownliste, wo ich die Daten aus der Datenbank auslese:

CODE

$sql = "SELECT * FROM person;";
$ausgabe = mysql_query($sql);
echo "<form method=\"POST\">";
echo "<select size=\"1\" name=\"name\" vorname=\"vorname\">";
while($row = mysql_fetch_assoc($ausgabe))
{
 if($row){
 $angabe = $row;
 echo "<option value=\"".$row['id']."\">".$row['name']." ".$row['vorname']." ".$row['id']."</option>";
 }
}
echo "</select>";
echo "<input type=\"submit\" name=\"go\" value=\"go\">";
echo "</form>";


Top
PMEmail Poster
Top
 
Jörg Kruse
#4 Geschrieben am: Mo 26.02.2007, 13:09 (+00:11)
Report PostQuote Post

AyomRank 5
Group Icon

Gruppe: Experten Entwicklung
Beiträge: 418
Mitglied seit: 19.12.2004


Demnach musst du die Variable als $name (bzw. $_POST['name']) wieder aufnehmen:

QUOTE (Code)
echo "<select size=\"1\" name=\"name\" vorname=\"vorname\">";


QUOTE (Code)
$sql = "INSERT INTO $table (person_id, von, bis) VALUES ('$name', '$von', '$bis');";


PS: Das Attribut vorname gibt es übrigens in HTML nicht


--------------------
Top
PMEmail PosterUsers Website
Top
 
AnnaS
#5 Geschrieben am: Mo 26.02.2007, 13:20 (+00:10)
Report PostQuote Post

AyomRank 2
****

Gruppe: Member (inaktiv)
Beiträge: 15
Mitglied seit: 26.02.2007


aber beim übergeben in die datenbanktabelle abwesenheit sollte ja die ID übergeben werden... sollte es dann nicht so sein?
CODE

$sql = "INSERT INTO $table (person_id, von, bis) VALUES ($id', '$von', '$bis');";


wie meinst du das attribut vorname gibt es in html nicht?
Top
PMEmail Poster
Top
 
Jörg Kruse
#6 Geschrieben am: Mo 26.02.2007, 13:28 (+00:08)
Report PostQuote Post

AyomRank 5
Group Icon

Gruppe: Experten Entwicklung
Beiträge: 418
Mitglied seit: 19.12.2004


Du kannst die ID natürlich auch als $id bezeichnen, nur dann solltest du dies auch im select Element entsprechend machen

CODE
echo "<select size=\"1\" name=\"id\">";


Denn, wenn ich dich richtig verstanden habe, möchtest du doch, dass der gewählte option Wert als $id eingetragen wird?

QUOTE
wie meinst du das attribut vorname gibt es in html nicht?


Das vorname="vorname" ergibt keinen Sinn


--------------------
Top
PMEmail PosterUsers Website
Top
 
AnnaS
#7 Geschrieben am: Mo 26.02.2007, 13:36 (+00:07)
Report PostQuote Post

AyomRank 2
****

Gruppe: Member (inaktiv)
Beiträge: 15
Mitglied seit: 26.02.2007


und wie kann ich das dann in die Datenbank speichern wenn ich es so
CODE
echo "<select size=\"1\" name=\"id\">";

mache?
Top
PMEmail Poster
Top
 
Jörg Kruse
#8 Geschrieben am: Mo 26.02.2007, 13:47 (+00:11)
Report PostQuote Post

AyomRank 5
Group Icon

Gruppe: Experten Entwicklung
Beiträge: 418
Mitglied seit: 19.12.2004


So, wie du es in Beitrag 5 angegeben hast.


--------------------
Top
PMEmail PosterUsers Website
Top
 
AnnaS
#9 Geschrieben am: Mo 26.02.2007, 13:53 (+00:05)
Report PostQuote Post

AyomRank 2
****

Gruppe: Member (inaktiv)
Beiträge: 15
Mitglied seit: 26.02.2007


es funktioniert irgendwie einfach nicht sad.gif

jetzt habe ich es so:

CODE
$sql = "SELECT * FROM person;";
$ausgabe = mysql_query($sql);
echo "<form method=\"POST\">";
echo "<select size=\"1\" name=\"id\">";
while($row = mysql_fetch_assoc($ausgabe))
{
 if($row){
 echo "<option value=\"".$id."\">".$row['name']." ".$row['vorname']." ".$row['id']."</option>";
 }
}

echo "</select>";
echo "<input type=\"submit\" name=\"go\" value=\"go\">";
echo "</form>";

//und beim übergeben in die Datenbank:

$sql = "INSERT INTO $table (person_id, von, bis) VALUES ($id', '$von', '$bis');";


Ich fühle mich im moment so hoffnungslos verloren, weil es irgendwie nie richtig funktioniert...
Top
PMEmail Poster
Top
 
Jörg Kruse
#10 Geschrieben am: Mo 26.02.2007, 14:00 (+00:07)
Report PostQuote Post

AyomRank 5
Group Icon

Gruppe: Experten Entwicklung
Beiträge: 418
Mitglied seit: 19.12.2004


Da fehlt noch ein Hochkomma:

QUOTE (Code)
$sql = "INSERT INTO $table (person_id, von, bis) VALUES ('$id', '$von', '$bis');";


Ansonsten: $von und $bis werden direkt aufgenommen - d.h. nicht über ein $_POST['von'] etc.? Entsprechendes müsstest du in solch einem Fall natürlich auch für $id machen


--------------------
Top
PMEmail PosterUsers Website
Top
 
AnnaS
#11 Geschrieben am: Mo 26.02.2007, 14:11 (+00:10)
Report PostQuote Post

AyomRank 2
****

Gruppe: Member (inaktiv)
Beiträge: 15
Mitglied seit: 26.02.2007


nachdem hät gar nüt meh funktioniert sad.gif
aber etz bini wider ufem gliiche stand wiä vorher und weiss nüm wiiter...
Top
PMEmail Poster
Top
 
AnnaS
#12 Geschrieben am: Mo 26.02.2007, 14:14 (+00:03)
Report PostQuote Post

AyomRank 2
****

Gruppe: Member (inaktiv)
Beiträge: 15
Mitglied seit: 26.02.2007


sry, wollte nicht schweizerdeutsch schreiben... hat einfach nichts mehr funktioniert und ich machte alles rückgängig, nun bin ich wieder auf dem gleichen stand wie vorher und das hat mich halt irgendwie ein bisschen aufgeregt, dass ich vergass dass ich nicht schweizerdeutsch schreiben sollte...
Top
PMEmail Poster
Top
 
yam
#13 Geschrieben am: Mo 26.02.2007, 14:16 (+00:01)
Report PostQuote Post

AyomRank 2
****

Gruppe: Member (aktiv)
Beiträge: 19
Mitglied seit: 26.02.2007


Anna,

Du musst bei

CODE
echo "<option value=\"".$id."\">".$row['name']."



statt $id row['id'] angeben.

Ist in Tabelle abwesenheit id auch autoincrement ?

Top
PM
Top
 
Jörg Kruse
#14 Geschrieben am: Mo 26.02.2007, 14:28 (+00:12)
Report PostQuote Post

AyomRank 5
Group Icon

Gruppe: Experten Entwicklung
Beiträge: 418
Mitglied seit: 19.12.2004


Und ist das Formular in Beitrag 9 eigentlich vollständig oder nur ein Ausschnitt? die Variablen id, von und bis sollten im selben Formular übertragen werden

PS: Danke für die hochdeutsche Übersetzung wink.gif (in diesem Fall war es aber sogar für mich als Norddeutschen verständlich)


--------------------
Top
PMEmail PosterUsers Website
Top
 
AnnaS
#15 Geschrieben am: Mo 26.02.2007, 14:28 (+00:00)
Report PostQuote Post

AyomRank 2
****

Gruppe: Member (inaktiv)
Beiträge: 15
Mitglied seit: 26.02.2007


das funktioniert auch nicht.
in der abwesenheits tabelle ist die id auch autoincrement, und die person_id sollte ja dann automatisch eingetragen werden wenn man das datum eingibt, aber das bringe ich nicht hin...
Top
PMEmail Poster
Top
 
yam
#16 Geschrieben am: Mo 26.02.2007, 14:34 (+00:05)
Report PostQuote Post

AyomRank 2
****

Gruppe: Member (aktiv)
Beiträge: 19
Mitglied seit: 26.02.2007


Hast Du alles in einem Skript oder beides getrennt (auslesen und eintragen) ?


Top
PM
Top
 
AnnaS
#17 Geschrieben am: Mo 26.02.2007, 14:38 (+00:03)
Report PostQuote Post

AyomRank 2
****

Gruppe: Member (inaktiv)
Beiträge: 15
Mitglied seit: 26.02.2007


ich habe alles in einem script
Top
PMEmail Poster
Top
 
yam
#18 Geschrieben am: Mo 26.02.2007, 14:54 (+00:15)
Report PostQuote Post

AyomRank 2
****

Gruppe: Member (aktiv)
Beiträge: 19
Mitglied seit: 26.02.2007


funktioniert:

CODE

<?php
mysql_connect("localhost","root");
mysql_select_db("test");

if(empty($_POST["go"]))
{

$sql = "SELECT * FROM personen;";
$ausgabe = mysql_query($sql);

echo "<form method=\"POST\" >";
echo "<select size=\"1\" name=\"name\">";
while($row = mysql_fetch_assoc($ausgabe))
{
 if($row){
 $angabe = $row;
 echo "<option value=\"".$row['id']."\">".$row['name']." ".$row['vorname']." ".$row['id']."</option>";
}
}

echo "</select>";
echo "<input type=\"submit\" name=\"go\" value=\"go\">";
echo "<input type=\"text\" name=\"von\">";
echo "<input type=\"text\" name=\"bis\">";
echo "</form>";
}
else
{
$von=$_POST["von"];
$bis=$_POST["bis"];
$name=$_POST["name"];

$sql = "INSERT INTO abwesenheit (pers_id, von, bis) VALUES ('$name', '$von', '$bis');";
$ausgabe = mysql_query($sql);

}

?>


unterscheidet sich nicht sonderlich von deinem, aber wer weiss..
Top
PM
Top
 
yam
#19 Geschrieben am: Mo 26.02.2007, 14:57 (+00:03)
Report PostQuote Post

AyomRank 2
****

Gruppe: Member (aktiv)
Beiträge: 19
Mitglied seit: 26.02.2007


nachtrag: musst natürlich die db-verbindung anpassen.

bis auf ein paar kleine Änderungen ist das ansonsten fast 100pro dein Skript
wink.gif
Top
PM
Top
 
AnnaS
#20 Geschrieben am: Mo 26.02.2007, 15:03 (+00:05)
Report PostQuote Post

AyomRank 2
****

Gruppe: Member (inaktiv)
Beiträge: 15
Mitglied seit: 26.02.2007


funktioniert igendwiä au nöd... han etz mal diä sache wo bi mim script andersch gsii sind gänderet, aber s'übergit nödemal meh s'datum id datebank sad.gif
Top
PMEmail Poster
Top
 
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 anonyme Benutzer)
0 Mitglieder:
Trackback-Url: http://www.ayom.com/track/t/16975

Topic Options Seiten: (2) [1] 2  Reply to this topicStart new topicStart Poll

 


> Ähnliche Themen
Lost connection to MySQL cr4m0 122 4 So 23.11.2008, 14:31
MySQL Frage G.P. 103 2 Mo 17.11.2008, 15:59
Suche Freelancer: Ajax, XML, PHP, MySQL omc 314 3 Mi 12.11.2008, 18:22
Einbinden vonn RSS feeds in Typo3 / MYSQL e-card 10920 5 Di 4.11.2008, 18:36
MySql Frage - ID Ändern EuD 118 2 Di 4.11.2008, 11:09
mysql query vereinfachen Big Rob 161 5 Mo 3.11.2008, 22:40
mysql Dump Städte pl_90 159 2 So 26.10.2008, 01:13
MySQL Befehl G.P. 169 5 Fr 24.10.2008, 15:58
Lösung für: Content Slider-Java Script-PHP-MySql Antoine Johannes 326 2 Fr 26.09.2008, 12:54
PHP + MySQL 2 Fragen an euch Coach 194 1 Do 18.09.2008, 10:52




Anzeige - [Hier werben / Mediadaten]



Anzeigen


[Hier werben / Mediadaten]