Probleme mit Suchfunktion

nick

Gesperrt
ich habe ein problem resp eher ne kleine frage: hab irgendwo hier unter den tutorials ein such tutorial gefunden... hab dies nun bisschen abgeändert nach meinen wünschen... ich nehm mysql field names... da die tabelle später mal mit variablen übergeben werden soll.. nun hab ich das problem: mysql_num_rows(): supplied argument is not a valid MySQL result resource

ist ja wohl ganz klar da wenn ich $result ausgebe dies leer ist...
wo hab ich hier einen fehler gemacht? ich begreife die ganze sache mit dem $query nicht ganz... wieso dies zuerst in eine variabel geschrieben wird und nicht direkt eingefügt wird.

was bedeutet das query .= wird da die variabel einfach erweitert mit dem zweiten teil ?


PHP:
<?php

$eingabe = $HTTP_POST_VARS['eingabe'];

$eingabe_array = explode(' ',$eingabe);

$temp = mysql_query('select * from fehlermeldung');

$query = 'select * from table fehlermeldung where ';
    for($i=0; $i<count($eingabe_array); $i++){
  $query .= "(mysql_field_name($temp, 1) like '%".$eingabe_array[$i]."%' or mysql_field_name($temp, 2) like '%".$eingabe_array[$i]."%' or mysql_field_name($temp, 3) like '%".$eingabe_array[$i]."%')";

        if($i<count($eingabe_array)-1){
            $query .= ' and ';
        }

    }

$result = mysql_db_query('ipa',$query);
    $num_news = mysql_num_rows($result);

    for($i=0; $i<$num_such; $i++){
        $fehler_id = mysql_result($result,$i,'fehler_id');
        $ueberschrift = mysql_result($result,$i,'fehlername');
        $beschreibung = mysql_result($result,$i,'beschreibung');
        $first = array_slice(explode(' ', $beschreibung), 0, 40);
        $kurze_beschr = join(' ', $first) . '...&nbsp;';
        echo '<a href="index.php?site=fehler_anzeigen">'.$ueberschrift.'</a><br>';
        echo $kurze_beschr.'<br><br>';
    }
 ?>
 
Lass Dir doch einfach mal den Inhalt der Variable $query ausgeben, bevor Du die Abfrage ans DBMS schickst. Wahrscheinlich ist da schon irgendwo ein Fehler in der SQL-Anweisung.

PS: Die Anweisung $variable .= "bla"; ist gleichwertig mit $variable = $variable . "bla";
 
$query ist:
select * from table fehlermeldung where (mysql_field_name(Resource id #4, 1) like '%checklisten%' or mysql_field_name(Resource id #4, 2) like '%checklisten%' or mysql_field_name(Resource id #4, 3) like '%checklisten%')

wenn ich mysql_field_name($temp, 1) ausgebe: Fehlername

das ist meiner meinung nach alles korrekt... fehlername ist ein spaltenname... ich weiss nicht ganz wieso mir danach $num_news = mysql_num_rows($result); nicht funktioniert... resp $result immer leer ist... auch wenn ich genau einen fehlername eingebe der 100% existiert...

muss ich die mysql_field_names zuerst einer anderen variabel zuordnen ?
 
Zuletzt bearbeitet:
Zurück