Hallo ,
ich habe mir ein kleines Suchscript nach einem Tutorial gebastelt. Es funktioniert auch alles soweit. Das HTML interface übergibt die Variable $suche an das PHP Script nachdem gesucht werden soll. Anschl. werden alle Spalten ausgegeben worin das Suchwort vor kommt.
Und genau da liegt mein Problem - es sollen eben nich alle spalten ausgegeben werden sondern nur die tabellen "artikel" & "beschreibung" ... leider reichen dafür meine PHP kenntnisse noch nicht aus da ich es erst gerade erlerne und nach 2 Tage langen rumtesten macht sich frust und unmut bei mir breit :( Wäre wirklich nett von euch wenn ihr mir nen paar tips geben könntet wo ich genau ansetzen muss.
Hier mein Script :
<?php
$table = "artikel";
function seek_table ($table, $suche) {
$q = mysql_query ('show fields from '.$table)
or print ">>> MySQL-Error: ".mysql_errno()." -> ".mysql_error()."<br>\n";
$fields = array();
while ($x = mysql_fetch_array($q)) {
$fields[] = $x['Field'];
}
mysql_free_result ($q);
$result = array();
for ($i=0; $i<count($fields); $i++) {
if ('id'!=($col=$fields[$i])) {
$query ="select * from artikel where artikel like '%$suche%' or stichworte like '%$suche%'";
$q = mysql_query($query)
or print ">>> MySQL-Error: ".mysql_errno()." -> ".mysql_error()."<br>\n";
if ($q) {
while ($x = mysql_fetch_array($q)) {
$result[$x['id']] = $x;
}
mysql_free_result ($q);
}
}
}
ksort ($result);
return ($result);
}
if ($suche) {
$ergebnis = seek_table($table, $suche);
if ($anz=count($ergebnis)) {
echo "<p>Ihre Suche nach dem Stichwort "$suche" ergab $anz Treffer:<p><hr><p>";
foreach($ergebnis as $zeile) {
while (list($k, $v) = each($zeile)) { // $k = Schlüsselbegriff, $v = Inhalt
$i++;
if ($i%2 == 0 && $k != "id") {
if ($k == "name") {
$v = "<b>$v</b>";
}
if ($v != "") {
print "$v<br><p>\n";
}
}
}
}
} else {
echo "<td height="5" valign="top" style="padding: 6;">";
}
}
?>