Return value returnt nicht - Hilfe bitte!

Hi zusammen, ich brauch wieder mal Hilfe.

Ich versuche folgendes in meinem System zu erreichen:

1. Use gibt einen Wert in einem Feld ein.
2. Das System checkt in einer Tabelle (folderpages) ob dieser Wert bereits existiert.
- wenn JA, dann soll das System den ID des Wertes rausfinden und weitergeben/speichern damit es spaeter in eine andere Tabelle (cds) eingefuegt wird.
- wenn NEIN, soll das System den Wert in die folderpages Tabelle einfuegen und sich dann den ID diesen Wertes merken um spaeter in die cds Tabelle einzufuegen.

Ich hoffe das macht alles soweit Sinn.
Mein Code scheint zu funktionieren bis zu dem Punkt wo das System sich den ID merken und uebertragen soll. Mit dem print_r($_POST) Befehl kann ich sehen dass der Wert der ausgelesen wird nicht der ID des Datensatzes ist, sondern der eigentliche Wert. Deshalb bekomme ich von MySQL auch eine "cannot add or update a child row: foreign key constraint fails" Fehlermeldung
.
Kann mir jemand bitte helfen und sagen was ich falsch mache? Diese functions machen mich wahnsinnig! :confused:

Danke!
Christina

PHP:
function checkFP($fp_id)//create the function which takes value from what has been entered by user
{
	global $connection, $checkFP;
	//check that FP is not already in the db
	$check = "select folderpageid from folderpages where folderpagenr='$fp_id'";//selects the ID
	$checkFP = mysql_query($check, $connection) or die(mysql_error());//sets result = to $checkFP
}


checkFP($_POST[fp_id]);//calls function based on what the user entered


if (mysql_num_rows($checkFP)<1) //if there are no values returned, aka this is not in the db yet
{
	//add the folder page
	$sql = "insert into folderpages values ('', '$_POST[fp_id]')";
	$result = mysql_query($sql, $connection) or die(mysql_error());

	checkFP($_POST[fp_id]);

	return($checkFP);
	//echo $checkFP;
	print_r($_POST);

} else { //if it is in the db already, return its id value to insert it into the cds table

		return($checkFP);
		echo ok;
		}

        $sql = "insert into cds values ('','checkFP($_POST[fp_id])')";
	$result = mysql_query($sql, $connection) or die(mysql_error());
	$display = "<p>CD added successfully!</p>";
 
Was ist bitte das hier?
PHP:
checkFP($_POST[fp_id]);

    return($checkFP);

Das return muss in die Funktion.

Beispiel:

PHP:
function addieren($x,$y)
{
 $z=$x+$y;
 return $z;
}
oder kuerzer:
PHP:
function addieren($x,$y)
{
 return $x+$y;
}
 
Irgendjemand_1 hat gesagt.:
lol. Der hat wohl nicht verstanden, was return ist.
Wer wird denn hier so abwertend klingende Texte reinsetzen? ;)

Der "Der" ist eine "Sie", wenn du den Beitrag etwas genauer gelesen hättest.
Und wenn sie es nicht verstanden hat wird es ihr halt hier erklärt, in einem netten Ton :-(
 
Danke voodoo, ich hatte bisher auch immer den Eindruck dass Leute hier sehr hilfreich sind aber es gibt immer mal Schlaumeier die sich profilieren muessen ;) So ist die Welt nunmal.

@reptiler - Ich habe versucht deinen Rat zu befolgen aber leider hat das nicht geholfen. Ich muss wohl was anderes noch falsch gemacht haben - ich krieg's schon noch raus.
Denoch danke fuer den Versuch! :-)

Gruss, Christina
 
Wie sieht denn Dein Code jetzt aus?
Mit einem kurzen Blick auf die angepasste Fassung kann man vielleicht den Fehler leichter finden.

Nochmal kurz zur Funktion von Funktionen: (Klasse Ausdruck ;) )
PHP:
<?php
function addieren($x,$y)
{
return $x+$y;
}

$z=addieren(2,3);
?>
return gibt halt etwas zurueck. In diesem Fall die Summe aus $x und $y, welche an die Funktion uebergeben werden.
In $z steht nun 5.
return kann alles moegliche zurueckgeben. Zahlen, Strings, Arrays, Objekte, eben alles.

Du nutzt in Deinem Script mysql_query(), dies ist auch eine Funktion.
Also wenn Du eine eigene Funktion schreibst, dann wird diese genauso gehandhabt wie mysql_query(), und die anderen in PHP integrierten Funktionen.
PHP:
$irgendwas=irgendeinefunktion();
In $irgendwas steht dann nun das Ergebnis von irgendeinefunktion(), welche auch durchaus Parameter haben kann. Dazu siehe das Beispiel addieren().
Man kann natuerlich auch Funktionen schreiben die nichts zurueck geben, z.B. um uebergebene Werte auszugeben, das ist aber wohl eher die Ausnahme.
 
_voodoo hat gesagt.:
Wer wird denn hier so abwertend klingende Texte reinsetzen? ;)

Der "Der" ist eine "Sie", wenn du den Beitrag etwas genauer gelesen hättest.
Und wenn sie es nicht verstanden hat wird es ihr halt hier erklärt, in einem netten Ton :-(

Sorry, so sollte das nicht klingen ;) Wenn man's jetzt im nachhinein liest, kann ich nur "sry" sagen ;)
 
Friede, Freude, Eierkuchen, sag ich nur ;)

@reptiler - ich hab das Problem erstmal auf Eis gelegt weil die Funktionalitaet so wie sie momentan ist ihren Job tut, nur ist's ein wenig umstaendlich.
Beschaeftige mich momentan mit anderen Problemen aber sollte sich die Notwendigkeit wieder ergeben mit returns arbeiten zu muessen dann schrei ich wieder laut :-)

Danke nochmals!
 
Zurück