Hallo @all,
ich habe einen Formular wo man folgendes als Eingabe hat.
Such wort (input feld)
Ausgabefelder (select box multiple)
Suchfelder(select box multiple)
nachdem der User suchwort eingegeben hat und vorselectiert hat welche ausgabe Felder er haben möchte und in welchen Feldern es gesucht werden soll.
Sollte auf der nächsten Seite einfach nur eine Tabelle erzeugt werden
mit Spaltennamen (Ausgabefelder) und halt mit den daten aus der DB gefüllt werden.
ich weiß nicht so ganz wie ich da am besten vorgehen sollte.
bis jetzt hab ich an sowas gedacht:
ofield=ausgabefeld (array)
sfield= suchfeld (array)
iterm =suchwort
table= tabelle
so und weiter komm ich nicht..die ausgabe ist fast richtig.
Aber sobald ich mehr als 2 felder (outputfelder) auswähle, dann gibt er nichts mehr aus..er gibt immer nur die ersten 2 Felder aus.
z.B erhalte ich folgendes:
name,titel, author, jahr
a, 1
b, 2
obwohl es sowas rauskommen sollte
name,titel, author, jahr
a , 1 , xxx , 98
b , 2 , yyyy , 99
ich vermute die for schleifen sind falsch...
und ich weiß nicht ob ich aufm richtigem weg bin...vlt. geht es ja einfacher... oder es liegt an dem Freitag und der Uhrzeit
wie kann ich jetzt eine Tabelle erzeugen, die als spaltennamen genau die hat, die bei ausgabefeld ausgewählt wurden ( aus verschiedenen Tabellen in der Datenbank)
und natürlich, dass die entsprechende Spalten auch mit den Datengefüllt werden je nach suchwort und suchfeldern(auch veschiedene Tabellen). Die Tabellen kann ich eigentlich je nach Suchfeld festlegen.
ich habe einen Formular wo man folgendes als Eingabe hat.
Such wort (input feld)
Ausgabefelder (select box multiple)
Suchfelder(select box multiple)
nachdem der User suchwort eingegeben hat und vorselectiert hat welche ausgabe Felder er haben möchte und in welchen Feldern es gesucht werden soll.
Sollte auf der nächsten Seite einfach nur eine Tabelle erzeugt werden
mit Spaltennamen (Ausgabefelder) und halt mit den daten aus der DB gefüllt werden.
ich weiß nicht so ganz wie ich da am besten vorgehen sollte.
bis jetzt hab ich an sowas gedacht:
ofield=ausgabefeld (array)
sfield= suchfeld (array)
iterm =suchwort
table= tabelle
PHP:
fmpr.php
$iterm=$_POST['iterm'];
$sfield=$_POST['sfield'];
$ofield=$_POST['ofield'];
if(isset($_POST['search']))
{
include("sqlf.php");
}
?>
PHP:
sqlf.php
require("sqlconnect.php");
for ($i=0;$i<sizeof($ofield);$i++)
{
$ofield_1.=$ofield[$i];
if ($i+1!=sizeof($ofield))
{$ofield_1.=", ";}
}
$query = "SELECT ";
$query.=$ofield_1;
$query.= " FROM ".$table;
$or="||";
$got = array();
for ($i=0;$i<sizeof($sfield);$i++)
{
$sfield_1.=$sfield[$i]." like "."'%".$iterm."%' ";
if ($i+1!=sizeof($sfield))
{$sfield_1.=$or;}
}
$query.= " WHERE ".$sfield_1;
echo "query:".$query;
$result = mysql_query($query) or die(mysql_error());
while ( $row = mysql_fetch_array($result))
{
array_push($got,$row);
}
return $got;
}
$table="test";
$row=select($ofield,$table,$sfield,$iterm);
for ($j=0;$j<sizeof($row);$j++)
{
for ($i=0;$i<sizeof($row);$i++)
{
$ofield_1[$i][$j]= $row[$i][$j];
}
}
echo "<tr>";
for ($i=0; $i < sizeof($ofield); $i++)
{
echo "<td>".$ofield[$i]."</TD>";
}
echo "</tr>";
for ($j=0;$j<sizeof($ofield_1);$j++)
{
echo "<tr>";
for ($i=0;$i<sizeof($ofield_1);$i++)
{
echo "<td>".$ofield_1[$j][$i]."</td>";
}
echo "</tr>";
}
Aber sobald ich mehr als 2 felder (outputfelder) auswähle, dann gibt er nichts mehr aus..er gibt immer nur die ersten 2 Felder aus.
z.B erhalte ich folgendes:
name,titel, author, jahr
a, 1
b, 2
obwohl es sowas rauskommen sollte
name,titel, author, jahr
a , 1 , xxx , 98
b , 2 , yyyy , 99
ich vermute die for schleifen sind falsch...
und ich weiß nicht ob ich aufm richtigem weg bin...vlt. geht es ja einfacher... oder es liegt an dem Freitag und der Uhrzeit

wie kann ich jetzt eine Tabelle erzeugen, die als spaltennamen genau die hat, die bei ausgabefeld ausgewählt wurden ( aus verschiedenen Tabellen in der Datenbank)
und natürlich, dass die entsprechende Spalten auch mit den Datengefüllt werden je nach suchwort und suchfeldern(auch veschiedene Tabellen). Die Tabellen kann ich eigentlich je nach Suchfeld festlegen.
Zuletzt bearbeitet: