Von Suche zu Suche

Hallo an die tutorials.de User!

Hab so langsam aber sicher mein Datenbank-Mopped fertig, derzeit fehlt nur noch die Suchfunktion. Leider geht bei dieser zusätzlichen Suchfunktion eine Suche nach Monat und Jahr voraus....

1. Über ein Monats und ein jahres Dropdown mit anschließndem Array sortiere ich mit dem Where befehl mit year und month die daten raus, die ich haben möchte.
2. ich speichere die Monats und Jahresvariablen in einem versteckten feld und übernehme diese im neuen suchformualr - das funktionuiert auch...

3. in einem Feld(suchbegriff eingeben) und einem dropdown feld (auswahl zwischen kunde, mitarbeiter, übersetzer, dateiname usw.) wähle ich nach was ich suche...
4. dann klicke ich auf den button und übernehme die werte suchbegriff und dropdown feld (werte zuvor aus array gefiltert)... dass setzte ichj dann mit dem like befehl in die datenbank ein...

from tbl_auftrag WHERE year(Eingang)='$YE' AND month(Eingang)='$MN' AND '$ausw[$aus];' LIKE '$such' ORDER BY DAY(Eingang)")

es kommt keine fehlermeldung und zum test hab ich mir alles mit dem "echo" befehl ausgegeben, das funktioniert prima. aber der die tabelle bleibt leer ... weiß einer wieso? :rolleyes: :rolleyes: :confused: DANKE!

MfG Magnus

ganzer quelltext

<?php
$such=$_POST['suche'];
$aus=$_POST['Auswahl'];
$MN=$_POST['Monat'];
$YE=$_POST['Jahr'];

$ausw = array ('1'=>"Kunde", '2'=>"Mitarbeiter", '3'=>"Uebersetzer", '4'=>"Sprache", '5'=>"Datei");

echo $ausw[$aus];
echo $such;
echo $YE;
echo $MN;



include ("db.inc");
$db = mysql_connect($dbserver, $dbuser, $dbpasswd) or die("Keine Verbindung möglich!");
$res = mysql_db_query($dbname, "select Eingang, Kunde, Mitarbeiter, Dateiname, Uebersetzer, Sprache, Zeilen, Sonstiges, Ausgang, year(Eingang)as jahr, month(Eingang) as monat, day(Eingang)as tag from tbl_auftrag WHERE year(Eingang)='$YE' AND month(Eingang)='$MN' AND '$ausw[$aus];' LIKE '$such' ORDER BY DAY(Eingang)");
$num = mysql_num_rows($res);


echo "<table border>";
// Überschrift
echo "<tr> <td>Tag</td><td>Monat</td><td>Jahr</td><td>Kunde</td>";
echo "<td>Mitarbeiter</td> <td>Dateiname</td>";
echo "<td col width='80'>Übersetzer</td> <td>Sprache</td>";
echo "<td>Zeilen</td> <td>Sonstiges</td>";
echo "<td col width='80'>Ausgang</td> </tr>";

for ($i=0; $i<$num; $i++)
{
$tg = mysql_result($res, $i, "tag");
$mo = mysql_result($res, $i, "monat");
$ja = mysql_result($res, $i, "jahr");
$kd = mysql_result($res, $i, "Kunde");
$mi = mysql_result($res, $i, "Mitarbeiter");
$dt = mysql_result($res, $i, "Dateiname");
$ue = mysql_result($res, $i, "Uebersetzer");
$sp = mysql_result($res, $i, "Sprache");
$zl = mysql_result($res, $i, "Zeilen");
$so = mysql_result($res, $i, "Sonstiges");
$au = mysql_result($res, $i, "Ausgang");
$lf = $i + 1;

// Tabellenzeile mit -zellen
echo "<tr> <td>$tg</td><td>$mo</td> <td>$ja</td> <td>$kd</td> <td>$mi</td>";
echo "<td>$dt</td> <td>$ue</td> <td>$sp</td> <td>$zl</td>";
echo "<td>$so</td> <td>$au</td> </tr>";
}

// Tabellenende
echo "</table>";

mysql_close($db);
?>
 
Hast du dir mal die zusammengesetzte Datenbankabfrage angeschaut? Und bist du dir denn sicher, dass es Datensätze gibt, die die ausgewählten Kriterien entsprechen?
 
HAllo! Ja bin mir ziemlich sicher, wenn ich die suche von auswahl uind suche weglasse, dann filtert er logischwerweise nach monat und jahr. nur irgendwie nicht nach dem kunden oder dem mitarbeiter.... hab in phpmyadmin die tabelnüberschriften kontrolliert und es sollte an und für sich doch laufen.... den select befehl muss ich doch nach dem jahr und dem monat mit and nochmals erweiter oder lieg ich da falsch ..?


MfG
P.S. ich bastel noch was rum
 
Vermutlich ist der LIKE-Vergleich ohne Platzhalter zu präzise. Versuch mal mit den Metazeichen % (beliebig viele beliebige Zeichen) und _ (ein beliebiges Zeichen) zu arbeiten, sodass die Suche unschärfer wird.
 
habs nach rumfummeln geschafft .. hier die strukturierte lösung

$sqlab .= "AND $ausw[$aus] LIKE '$such%'";

hab hinter das such ein % grmacht, damit er 1.) nach allem sucht, auch wenn was dahinte steht in der datenbank und b.) ich hab die anführungszeichen und das simikolon weggelassen!

Danke für die Tipps! wer den ganzen string möchte.. melden!
 
Zurück