Datenbankänderung mit PHP

Da er mit diesem Code eine weisse Seite bekommen hat ( was eigentlich nicht sein kann da min. die beiden letzten prints ausgegeben werden müssten ) hat er wohl selbst ein bisschen rumprobiert.

Warum kann es nicht sein, dass er eine weisse Seite bekommt?

Nochmal das von ihm gepostete Formular:
Code:
<form action="work.php" method=post>
Überschrift <br>
<input type=text name="Array[Text]" size= 50>
<br>
<br>

<input type=submit name="SUBMIT" value="senden">
</form>

REQUEST_METHOD ist POST
$_GET['action'] nicht vorhanden...
soweit einverstanden?

Da gelangt man hier herein, aber da $_GET['action'] nicht existiert, erfolgt dort keinerlei Ausgabe.

Code:
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
    $post_text = $_POST['Text']; // dies ist der Wert aus dem Formular//
    $post_id = $_POST['id'];
        
    if($_GET['action'] == "update")
    {    
        $aendern = "UPDATE `".$tabelle."` SET `text` = '".$post_text."' WHERE id = '".$post_id."'";
    
        mysql_query($aendern);
        print "Daten geändert.";
    }
    
    if($_GET['action'] == "insert")
    {
        $eingabe = "INSERT INTO ".$tabelle." (text)
                    VALUES ('".$post_text."')";
    
        mysql_query($eingabe);
        print "Daten eingetragen.";
    }
}

Alles macht Sinn...abgesehen von der Herkunft dieses ominösen Formulares.
 
Ich nahm nicht an das er dieses Formular die ganze Zeit verwendet hat. Da ich ihm die fertige Datei gepostet habe, er nur die oberen Variablen ändern sollte und dann diese Datei im Browser aufrufen sollte. Wie gesagt hatte ich gedacht das er nachdem es nicht funktioniert hat selbst rumgebastelt hat und dabei dieses Formular entstanden ist.
 
Hallo, sorry hatt noch was zun tun.
Also html Schnickschnack weggelassen(kigatest.php)
Und es klappt. Ich bekomme "neuer Eintrag, Eintrag bearbeiten.)
Das Formular steht am Anfang des Beitrags.
Anfänglich habe ich auch Daten zurück bekommen.
Wie soll denn das Formular aussehen, mit dem ich die Daten an kiga.php sende?
Und vielen Dank für eure Bemühungen.

Ich dachte folgendes würde reichen
PHP:
<form action="work.php" method=post>
 
Also ich habe dir den Code nochmal kommentiert für etwas mehr übersicht.

PHP:
<?php

// Hier die Werte für die Datenbank ergänzen.

$host = "";
$user = "";
$password = "";
$dbname = "";
$tabelle = "";

// An dieser stelle wird geprüft ob die ?action einen Wert hat. Wenn ja wird eine Verbindung zur Datenbank hergestellt.

if($_GET['action'])
{
    $dbverbindung = mysql_connect ($host, $user, $password) or die
        ("Keine Verbindung moeglich");
    mysql_select_db("$dbname") or die
        ("Die Datenbank existiert nicht");
}

// Hier wird geprüft ob ein Formular ausgefüllt wurde. Wenn ja wird geprüft welche action gesetzt ist. Je nachdem werden die Daten verarbeitet.

if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
    $post_text = $_POST['text'];
    $post_id = $_POST['id'];
        
    if($_GET['action'] == "update")
    {    
        $aendern = "UPDATE `".$tabelle."` SET `text` = '".$post_text."' WHERE id = '".$post_id."'";
    
        mysql_query($aendern);
        print "Daten geändert.";
    }
    mysql_close($dbverbindung);
    
    if($_GET['action'] == "insert")
    {
        $eingabe = "INSERT INTO ".$tabelle." (text)
                    VALUES ('".$post_text."')";
    
        mysql_query($eingabe);
        print "Daten eingetragen.";
    }
    mysql_close($dbverbindung);
}

// Wenn kein Formular ausgefüllt wurde, sprich kein 'POST' eingegangen ist gehts hier weiter.

else
{
    // An dieser stelle wird wieder geprüft welche action gesetzt ist.
    
	if($_GET['action'] == "update")
    {
        $abfrage = "SELECT * FROM `".$tabelle."` LIMIT 0, 30 ";
        $ergebnis = mysql_query($abfrage);
        while($row = mysql_fetch_array($ergebnis))
        {
            // Hier wird mit print der HTML Code für das Formular ausgegeben. Wie das Formular aufgebaut ist kannst du nach belieben ändern.
            // Achte dabei darauf das du die Variablen so lässt wie sie sind.
        
        	print "<form action='".$_SERVER['PHP_SELF']."?action=update' method='post'>\n";
            print "Text Eingabe: <br>\n";
            print "<input type='text' name='text' size='50' value='".$row['text']."'>\n";
            print "<input type='hidden' name='id' value='".$row['id']."'>\n";
            print "<br>\n";
            print "<input type=submit name='SUBMIT' value='senden'>\n";
            print "</form>\n";
        }
        mysql_close($dbverbindung);
    }
    elseif($_GET['action'] == "insert")
    {	
    	// Hier das selbe wie oben beim update
    	
        print "<form action='".$_SERVER['PHP_SELF']."?action=insert' method='post'>\n";
        print "Text Eingabe: <br>\n";
        print "<input type='text' name='text' size='50'>\n";
        print "<br>\n";
        print "<input type=submit name='SUBMIT' value='senden'>\n";
        print "</form>\n";
    }
    
    // Ist keine Action gesetzt werden die Beiden Links ausgegeben.
    // Diese kannst du auch nach belieben ändern. z.B. das ganze in eine Tabelle packen oder die Links mit einem Absatz <br> in 2 Zeilen schreiben.
    
    else
    {
        print "<a href='".$_SERVER['PHP_SELF']."?action=insert'> Neuer Eintrag.</a>\n";
        print "<a href='".$_SERVER['PHP_SELF']."?action=update'> Eintrag bearbeiten.</a>\n";
    }
}
?>

Dein Fehler war jetzt einfach das du von einer anderen Datei aus auf diese zugegriffen hast, mit einem Formular. Das ist nicht nötig, du kannst alles was du brauchst innerhalb dieser einen Datei Coden. Wenn du mir sagst was genau du jetzt ändern/hinzufügen möchtest kann ich dir gerne noch weiterhelfen.
 
Wenn ich das Formular verwende kommtb wieder nix. Also ist es tatsächlich das Formular.
Ich glaube ich bin hier als Grünschnabel klassiviziert. Naja das passt wohl. ;)

Naja ich will die Spalte "Text" in der DB ändern (oder später der user)
Da dort die Termine eingetragen sind.
Wenn ich dich richtig verstanden habe müßte ein Formular angezeigt werden. Is aber nich.
Eine Frage: die links führen zu "keine Verbindung möglich"
Muß ich da noch was eintragen?


Asche auf mein Haupt!!

Ich hab einen Tippfehler bei den Zugangsdaten entdeckt
Jetzt funktioniert es tadellos!
Danke, Danke,Danke, Danke,Danke, Danke,Danke, Danke,Danke, Danke,
Und Sorry das ich euch soviel nerven gekostet habe
 
Also ich sags nochmal so:

Der Code wie er da steht is alles andere als komfortabel. Ich wollte dir damit nur die Art und Weise beschreiben wie man so einen PHP Code in etwa aufbaut!

Guck doch mal wo im Code "keine Verbindung möglich" steht. Dann müsste dir klar sein warum es da steht. Ein wenig logisches Denken ist Vorraussetzung beim Programmieren. Du hast wahrscheinlich die Variablen oben nicht richtig gesetzt.

Schau dir den Code den ich grad gepostet habe einfach nochmal genau an damit du das Prinzip verstehst. ( was da eigentlich passiert und warum das passiert )

Ja dann viel Spass beim anpassen des ganzen und viel Glück :P !
 
Da verweise ich auf dieses Tutorial.
Kennzeichne diesen Thread noch bitte als Erledigt und ein klick auf Danke! wäre auch ganz nett :P
 
Zuletzt bearbeitet:
Zurück