übergabe von drei Arrays

olguil

Mitglied
Hallo alle hier,

wie lautet der altbekannte Satz "Ich habe da ein Problem..".

Im Ernst, ich komme nicht weiter auch nach 2-stündiger Suche in den verschiedenen Threads hier nicht.

Zum Thema:

Ich habe ein Formular mit drei "select"-feldern, also Auswahlmenüs. Nun habe ich alle als Arrays diffiniert (Array[a], Arrray[b] usw.)

Alle übergebe ich an eine andere Seite wo die Auswertung aus der MySQL-Datenbank dann zu sehen ist.

Es klappt wunderbar aber leider nur mit einem Array in dem Fall Array[a].

Es hapert an der übergabe aller dreier Arrays an dieses Script.

Ich schaffe es irgendwie nicht alle drei in der Datenbank abfragen zu lassen.

Hier erstmal der Code:
PHP:
<? 
 
echo"<table align=center border=0 cellspacing=0 cellpadding=2> 
	 <tr><td></td><td></td></tr></td><td></td></tr>"; 
   
$host = "xxxxxxxxxxxxx";
$user = "xxxxxxxxxxxxxxx";
$password = "xxxxxxxxxxxx";
$database = "xxxxxxxxxxxx";
$tabelle ="name";
 
 
 $db = mysql_connect($host,$user,$password) or die("Die angegebenen Login-Daten sind fehlerhaft");
	mysql_select_db($database,$db) or die("Die Angegebene Datenbank konnte nicht ausgewaehlt werden");
  
  
  $result = mysql_query("Select 1,2,3,4 FROM $tabelle WHERE 1 LIKE ('%$daten%')")or die (mysql_error());
  

$daten = "'Array[a]'"or"'Array[b]'"or"'Array[ c]'";
 
  
  while ($daten = mysql_fetch_array($result)){ 
	  echo "<tr><td align=left>".$daten[1]."</td><td align=left>".$daten[2]."</td><td> </td><td align=left>".$daten[3]."</td><td align=left>".$daten[4]."</td>"; 
	   
  } 
  echo "</table>"; 
?>

Ich hoffe mir kann einer bei den Array-Problemen helfen.

Danke im Voraus - ich hoffe ich habe es einiger Massen verständlich rüber gebracht.

Oliver

P.S.: Rechtschreibfehler bitte ich zu entschuldigen.
 
Hallo

Ich will dir nicht auf den Schlips treten. Aber du solltest dir mal die Grundlagen von PHP anschauen. Dein Code ergibt irgendwie überhaupt keinen Sinn.

So nun zu deinem Problem Arrays übergibt mann entweder per Cookie, Session oder Hidden-Field an eine andere Seite.

In einem Cokkie oder in einer Session kannst du die Arrays einfach speichern.

PHP:
$array = array('var1' => 'val1', 'var2' => 'val2');

$_SESSION['array'] = $array;

Auf das Array kannst du dann so zugreifen.

echo $_SESSION['array']['var1'];

Wenn du es per Hidden-Field übergeben willst musst du es erst serialisieren. Das heißt in einen String umwandeln.

PHP:
$array = array('var1' => 'val1', 'var2' => 'val2');

$str = serialize($array);

Ketzt kannst du es per Hidden-Field übergeben und wieder unserialisieren.

PHP:
$array = unserialize($_POST['hidden_field_name']);

Mfg Akkie
 
Hallo,

danke für die HIlfe.

Ich will dir nicht auf den Schlips treten. Aber du solltest dir mal die Grundlagen von PHP anschauen. Dein Code ergibt irgendwie überhaupt keinen Sinn.
Habe mir das Buch bestellt PHP 5 um endlich mal mir die Grundlagen zu Gemüte zu ziehen. Kritik kann ich vertragen kein Problem.

Zum Code:
Ich habe ein Formular mit drei Eingabefenstern (Comboboxen) dort habe ich die select-felder so mit einem Namen versehen, wie ich es aus einem anderen Script gesehen habe:

Formular:
HTML:
<form action="/test/workhard.php" method="post" target="FrameName4">
<input type="hidden" name="submit" value="1"> 
<select name="Array[a]" style="width: 144px" >   
... 
<input type=submit style="width:144px" value="OK...">
</form>

Nun wollte ich diese/s "Array's", in dem Fall "Array[a] übergeben an die PHP-Datei mit dem oben genannten Script. Anschliessend erfolgt die Ausgabe in "FrameName4" also einem Framefenster.

Es funktioniert auch sehr gut, aber nur mit "Array[ a ]" die anderen beiden ([ b ][ c ])werden ohne Fehlermeldung ignoriert.

Ich hoffe ich habe den Weg ein wenig deutlicher geschildert.

Nun gehe ich mal an deinen Vorschlag.

Vielen Dank dafür ich werde es probieren.

Oliver
 
Hi

Lieber so.

<select name="Array_a[]" style="width: 144px" >

So wie du es gemacht hast belegst du das Array mit einem Index vor. Du müsstest dann auch bei einem Submit nur ein Feld in deinem Array haben und nich die Anzahl der ausgewählten Items.

Für die anderen kannst du das genau so machen.

<select name="Array_b[]" style="width: 144px" >
<select name="Array_c[]" style="width: 144px" >

Auf der anderen Seite machst du einfach ein

print_r($Array_a);
print_r($Array_b);
print_r($Array_c);

Mfg Akkie
 
Funktioniert ja prima - danke dafür, aber ich habe da noch den Platzhalter für die Abfrage in der db


PHP:
  $daten = "'Array[a]'"or"'Array[b]'"or"'Array[ c]'";
Also nicht das du mich "miss" verstehst, aber ich wollte eine Abfrage der db machen mit gleichzeitig 3 Arrays.

Leider habe ich nicht viel Ahnung, aber wie sagt man, man wächst mit seinen Aufgaben und daher habe ich mir gesagt, ich werde es nun doch von Grund auf lernen.

>>Ich freu mich jetzt schon auf das Buch.<<

Kann man einem Platzhalter eine Aufzählung verpassen, ich meine suche nach A, B, und C oder nach A oder nach B oder nach C?

Ich hatte es auch schon probiert mit 3 einzelnen scipt-dateien also workhard1.php, workhard2,php und workhard3.php .

Bin für alles offen.

Oliver
 
Achso

Dann kannst du es auch ohne Array machen.

<select name="var1" style="width: 144px" >
<select name="var1" style="width: 144px" >
<select name="var1" style="width: 144px" >

"SELECT field FROM table WHERE field=' . $_POST['var1'] . ' OR ' . $_POST['var2'] . ' OR ' . $_POST['var3']. '"

Mfg Akkie
 
Ich habe es eingebaut:
PHP:
 $result = mysql_query("Select ras,kleur,fotoa,fotob FROM hund WHERE ras=' . $_POST['var1'] . ' OR ' . $_POST['var2'] . ' OR ' . $_POST['var3']. '")or die (mysql_error());

Nun erhalte ich leider folgende Fehlermeldung:
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /pages/df/7e/d0003810/home/htdocs/www/test/ud12.php on line 20

Line 20 ist die Obere gepostete.

Entschuldige, aber ich weiss nicht weiter.

Danke.

Oliver
 
Zurück