• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Kontrollieren bitte :)

reimic

Stina Lohmann
Registriert
31.08.06
Beiträge
1.034
Hallo,
Ich tüftle schon seid Stunden und komm einfach nicht auf den Fehler drauf. Die Verbindung zu Datenbank funktioniert sicher aber ich kann mit diesem Script nichts eintragen. Wenn ich auf Hinzufügen klicke kommt nichts..
Vielleicht findet ihr einen Fehler:
<html><head>
<?php
if ($gesendet)
{
$conn= mysql_connect("localhost", "root", "") or die("Failed to connect to mysql server");
mysql_select_db("gedenkdienst", $conn);
$result= MYSQL_QUERY("INSERT INTO daten (id, name, namelink, date, datelink, stelle, stellelink)"." VALUES ('$id', '$name', '$namelink', '$date', '$datelink', '$stelle', '$stellelink')");
echo "Erfolgreich hinzugefuegt";
}
?>
</head><body>
<form action = "add.php" method = "post">
<table>
<tr><td>Name:</td><td><input name="name"></td></tr>
<tr><td>NameLink:</td><td><input name="namelink"></td></tr>
<tr><td>Date:</td><td><input name="date"></td></tr>
<tr><td>Datelink:</td><td><input name="datelink"></td></tr>
<tr><td>Stelle:</td><td><input name="stelle"></td></tr>
<tr><td>Stellelink:</td><td><input name="stellelink"></td></tr>
<tr><td colspan=2>
<input type="submit" name="gesendet" value="hinzufuegen"></td></tr></table>
</form>
</body></html>
 

Datschi

Reinette de Champagne
Registriert
08.11.04
Beiträge
415
versuch deine if-Abfrage mal mit:
Code:
if ($_REQUEST['gesendet'])
{
.
.
.
}

Denn normalerweise wird die Variable, die der Button übergibt (wenn man das so sagen kann) so benannt. Du kannst es auch noch mit isset versuchen:

Code:
if(isset($_REQUEST['gesendet']))
{
.
.
.
}

Ansonsten google einfach mal nach "Formulardaten an php-Skript übergeben"
Da dürftest du was finden.

Ansonsten solltest du noch die Variablennamen im deiner Query ändern.
Die müssten nach der Übergabe nämlich alle nach dem Muster

Code:
$_POST['id'], $_POST['name'], $_POST['date'], etc....

aufgebaut sein.

Viel Erfolg und frohes neues!

Der Datschi
 

reimic

Stina Lohmann
Registriert
31.08.06
Beiträge
1.034
Hallo Datschi!

VIELEN DANK!! Das war genau der Hinweis den ich gebraucht habe. Durch deinen Tipp bin ich auf "register_globals" gekommen. Ich hab zwar vorher gewusst für was die sind aber ich bin einfach nicht drauf gekommen!
Hab das dann so gemacht wie du beschrieben hast und es hat perfekt funktioniert!

Bin Mittlerweile mit meinem Projekt fertig. :)

Und wünsch dir auch ein schönes neues Jahr.
Lg michi
 

kauan

Stina Lohmann
Registriert
31.12.05
Beiträge
1.043
Hallo reimic

Noch etwas, du solltest dich unbedingt vor SQL-Injections schuetzen.
Was das genau ist und wie man sich davor schuetzt, sagt dir der Link.
Uebrigens kannst du Programmcode innerhalb des Forums mittels der folgenden Tags formatiert ausgeben:
[code ]...[/code]
Auch ansonsten wuerde ein bisschen Einrueckung und Struktur deinem Code nicht schaden :)

gruss
Jonathan
 

reimic

Stina Lohmann
Registriert
31.08.06
Beiträge
1.034
Hallo

Ich habe schon wieder ein Problem und komm nicht weiter. Der Code schaut so aus:

Code:
<html><head>
<link rel="stylesheet" type="text/css" href="style.css">
</head><body>
<?php 
include('config.php');
$conn = mysql_connect("$db_host", "$db_user", "$db_pass") or die("Failed to connect to mysql server");
mysql_select_db("$db_name", $conn);
 
$result = MYSQL_QUERY("SELECT * from $table1 ORDER BY name ASC") or die ("Fatal Error");
$num = mysql_num_rows($result); 
   if ($num==0){
 echo "noch keine Einträge vorhanden.";
 die();}
   echo "<center><table border=1 cellpadding=4 cellspacing=0 bordercolor='#000000' style='border-collapse: collapse;'>";
echo "<tr bgcolor='#CCCCCC'><td><b>Name</b></td><td><b>Operate Time</b></td><td><b>Location</b></td></tr>";
for ($i=0; $i<$num; $i++)
   {
      $id = mysql_result($result, $i, "id");
 $name = mysql_result($result, $i, "name");
      $namelink = mysql_result($result, $i, "namelink");
      $date = mysql_result($result, $i, "date");
      $datelink = mysql_result($result, $i, "datelink");
      $stelle_id = mysql_result($result, $i, "stelle");
//-----------------
$result3 = MYSQL_QUERY("SELECT * from $table2 WHERE id='$stelle_id'") or die ("Fatal Error");
$num3 = mysql_num_rows($result3);
   for ($a=0; $a<$num3; $a++) {
 $stelle = mysql_result($result3, $a, "stelle");   
$stellelink= mysql_result($result3, $a, "stellelink"); 
   
//-----------------
echo "<tr>
 
 <td><a href='$namelink'>$name</a></td>
 <td><a href='$datelink'>$date</a></td>
 <td><a href='$stellelink'>$stelle</a></td>
 
     </tr>";}
 }
echo "</table></center>";
?>
</body></html>

Das ganze soll nur Werte aus der Datenbank ausgeben. Ich weiß im Prinzip auch wo mein Fehler liegt und zwar bei $result3. Also alles was zwischen "//----------" liegt.
Ich weiß nicht wie ich in einem Query NOCH ein Query mache. Also wo soll ich $result3 hinschreiben das er beides richtig ausließt?

Danke! :)
 

Hilarious

Gelbe Schleswiger Reinette
Registriert
10.08.05
Beiträge
1.759
Zu dem Quelltext: Uaaah. :D

Zu der Frage: Ich vermute, Du möchtest zwei Tabelle gleichzeitig abfragen, wobei in beiden Tabellen eine gemeinsame Ordnungszahl, 'stelle' aus Tabelle #1 und die korrespondierende Ordnungszahl 'id' aus Tabelle #2 eine sinngemäße Verbindung herstellt.

Hierbei kommt es nun ein wenig darauf an, ob es eine Beziehung darstellt, die jeweils in beiden Tabellen nur einmal vorkommt (Eins-zu-Eins-Relation), oder in der einen Tabelle nur einmal, in der anderen aber mehrfach (Eins-zu-N-Relation oder N-zu-Eins-Relation).

Probier einmal dazu diese Abfragen aus (am besten in phpMyAdmin oder via Konsole):
n-1
SELECT * FROM tabelle1 LEFT JOIN tabelle2 ON(tabelle1.stelle=tabelle2.id);

1-n
SELECT * FROM tabelle2 LEFT JOIN tabelle1 ON(tabelle2.id=tabelle1.stelle);

n-n
SELECT * FROM tabelle1, tabelle2 WHERE tabelle1.stelle=tabelle2.id;