REQUEST-Abfrage funktioniert nicht

SLEAZOID

Grünschnabel
Hallo.

Ich habe ein Problem mit meiner REQUEST-Abfrage.
Ich habe folgenden Code:

PHP:
<select name=\"updatecard[".$row->id."]\">
<option value=\"Trade\">Trade</option>
<option value=\"Might Trade\">Might Trade</option>
<option value=\"Keep\">Keep</option>
<option value=\"Reserve\">Reserve</option>
<option value=\"Collect\">Collect</option>
</select>

Und ich habe eine REQUEST-Abfrage, die überprüft, ob "Collect" ausgewählt wurde.

PHP:
if($_REQUEST["updatecard"] == "Collect")
{                         	$name = array("".$_REQUEST["updatecard"]."" => "".$_POST["id"]."");
				foreach ($_POST['updatecard'] as $key => $value)
                                {

[...]

Doch aus irgendeinem Grund funktioniert das ganze nicht richtig und der Code wird "übersprungen".
Woran kann das liegen?

LG
 
PHP:
$_REQUEST["updatecard"]
ist ein array, dem zufolge kann es nicht funktionieren.

PHP:
if(isset$_REQUEST["updatecard"]))

Und dann das array mit einer foreach Schleife durchlaufen und den jeweiligen Wert abfragen.
 
Ich habe jetzt folgenden Code:

PHP:
$name = array("".$_REQUEST["updatecard"]."" => "".$_POST["id"]."");
foreach ($_POST['updatecard'] as $key => $value)
{
  if($key == "Collect")
  {

Es klappt aber leider immer noch nicht...
 
Es geht immer noch nicht. Hier der komplette Code:

PHP:
		if(isset($_REQUEST['update']))
		{
                         	$name = array("".$_REQUEST["updatecard"]."" => "".$_POST["id"]."");
				foreach ($_POST['updatecard'] as $key => $value)
                                 {
                                 	if($value == "Collect")
	                                {
         	                        	$abfragen1 = "SELECT * FROM setscollect WHERE setname = '".$_POST["setname"]."' AND besitzer '".$name."'";
                 	                	$ergebnisaus1 = mysql_query($abfragen1);
         	                	        	if (mysql_num_rows($ergebnisaus1) == 0)
							{
                 	                		$abfragen2 = "SELECT * FROM sets WHERE setname = '".$_POST["setname"]."'";
                         	        		$ergebnisaus2 = mysql_query($abfragen2);
                                 	        	while($rowab2 = mysql_fetch_object($ergebnisaus2))
                                 			{
                                                 		$eintragenn = "INSERT INTO setscollect (creator, besitzer, date, credits, credits2, credits3, typ,setname,setkürzel,setmastercard,setcard1,setcard2,setcard3,setcard4,setcard5,setcard6,setcard7,setcard8,setcard9,setcard10,setcard11,setcard12,rating,rank,views, downloads, nummer)VALUES('".mysql_real_escape_string($rowab2->creator)."', '".mysql_real_escape_string($rowab2->besitzer)."','".mysql_real_escape_string($rowab2->date)."','".mysql_real_escape_string($rowab2->credits)."','".mysql_real_escape_string($rowab2->credits2)."','".mysql_real_escape_string($rowab2->credits3)."','".mysql_real_escape_string($rowab2->typ)."','".mysql_real_escape_string($rowab2->setname)."','".mysql_real_escape_string($rowab2->setkürzel)."','".mysql_real_escape_string($rowab2->setmastercard)."','".mysql_real_escape_string($rowab2->setcard1)."','".mysql_real_escape_string($rowab2->setcard2)."','".mysql_real_escape_string($rowab2->setcard3)."','".mysql_real_escape_string($rowab2->setcard4)."','".mysql_real_escape_string($rowab2->setcard5)."','".mysql_real_escape_string($rowab2->setcard6)."','".mysql_real_escape_string($rowab2->setcard7)."','".mysql_real_escape_string($rowab2->setcard8)."','".mysql_real_escape_string($rowab2->setcard9)."','".mysql_real_escape_string($rowab2->setcard10)."','".mysql_real_escape_string($rowab2->setcard11)."','".mysql_real_escape_string($rowab2->setcard12)."','".mysql_real_escape_string($rowab2->rating)."','".mysql_real_escape_string($rowab2->rank)."','".mysql_real_escape_string($rowab2->views)."','".mysql_real_escape_string($rowab2->downloads)."','".mysql_real_escape_string($rowab2->nummer)."')";
								$eintragen3 = mysql_query($eintragenn);
							}
         	                                }

                 	                		$abfragen = "SELECT * FROM cards WHERE id = '".$_POST["id"]."'";
                         	        		$ergebnisaus = mysql_query($abfragen);
                                 			while($rowab = mysql_fetch_object($ergebnisaus))
                                 			{
	                                 			$kartenid = $rowab->kartenid;
         	                        			$setname = $rowab->setname;
                 	                			$setkürzel = $rowab->setkürzel;
                         	        			$creator = $rowab->creator;
                                 				$besitzer = $rowab->besitzer;
                                 				$kategorie = $rowab->kategorie;
                                 			}

	   						$update = "INSERT INTO collect (kartenid, setname, setkürzel, creator, besitzer, kategorie)VALUES('".mysql_real_escape_string($kartenid)."', '".mysql_real_escape_string($setname)."','".mysql_real_escape_string($setkürzel)."','".mysql_real_escape_string($creator)."','".mysql_real_escape_string($besitzer)."','".mysql_real_escape_string($kategorie)."')";
							$eintragen3 = mysql_query($update);
                 	                                $delete = "DELETE FROM cards WHERE id = '".$_POST["id"]."'";
                         	                        $löschen = mysql_query($delete);

                         		}else
                         		{
                         			$name = array("".$_REQUEST["updatecard"]."" => "".$_POST["id"]."");

   							$update = "UPDATE cards SET list = '$value' WHERE id='$key'";
							$eintragen = mysql_query($update);
                                 		}
                        			}
                         if($eintragen)
                         {
                			echo "<center><br><br><b>Erfolgreich verwaltet!</b><br><br></center>";
                         }else
                         {
                			echo "Es ist leider ein Fehler aufgetreten ". mysql_errno() .": ".
				mysql_error();
            		}
		}
 
mache mal folgendes
PHP:
foreach ($_POST['updatecard'] as $key => $value){
   echo $value;
}

was wird dir angezeigt?
 
Zuletzt bearbeitet von einem Moderator:
Liegt der Fehler nicht schon im HTMLCode

<select name="updatecard[".$row->id."]\">
<option value=\"Trade\">Trade</option>
<option value=\"Might Trade\">Might Trade</option>
<option value=\"Keep\">Keep</option>
<option value=\"Reserve\">Reserve</option>
<option value=\"Collect\">Collect</option>
</select>

Irgendwie hab ich das Gefühl, das da ein " oder \" fehlt.
Zudem wird hier der Name des Select Fields bestimmt ungefähr aussehen wie
"updatecard[xxx]", wobei xxx gleich dem Inhalt von $row->id sein wird.

Ich würde anfangen mit einem var_dump($_POST); und schauen, wie der Name des Selectfields ist, der an das dann folgende PHP Script übergeben wird.
 
Ich sehe gerade, das ich das falsch kopiert habe. T__T Das war der Code:

PHP:
<select name=\"updatecard[".$row->id."]\">

Die anderen Lösungen werde ich gleich ausprobieren, danke. :3

EDIT: Irgendwie wird hier das \ vor updatecard nicht angezeigt. O__ô
 
Sorry für den Doppelpost, aber ich habe noch einige Fehler gefunden und jetzt spuckt er auch einen Fehlercode aus.

"Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /usr/export/www/vhosts/funnetwork/hosting/periltcg/cardbox.php on line 18"

Das ist Zeile 18:

PHP:
if (mysql_num_rows($ergebnisaus1) == 0)
{

Und das die Zeilen davor:

PHP:
$abfragen1 = "SELECT * FROM setscollect WHERE setkürzel = '".$_POST["setkürzel"]."' AND besitzer '".$name."'";
$ergebnisaus1 = mysql_query($abfragen1);

Dazu sei gesagt, dass es definitiv die Tabelle setscollect und die Spalten setkürzel und besitzer gibt.

setkürzel wird hier definiert:

PHP:
echo"<input type=\"hidden\" name=\"setkürzel\" value=\"".$row->setkürzel."\">";
 
Zurück