Problem mit Array

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem mit Array

    Moin Leute,

    folgenden Code habe ich mir als kleines Suche-Script gebastelt:

    PHP-Code:
    <?php

        $search 
    $_POST['search'];
        
    $suchbegriff $_POST['suchbegriff'];

        if(isset(
    $search) && !empty($search))
           {


           
    $suche explode(" "$suchbegriff);
           
    $i count($suche);


           echo 
    $i;       $bla implode(","$suche);
           echo 
    "<br>";
           echo 
    $bla;
           echo 
    "<br>";


           foreach(
    $suche as $such_element)
             {

             
    $query "SELECT * FROM eintraege WHERE title LIKE '%$such_element%'";
             echo 
    $query;
             echo 
    "<br>";
             
    $res mysql_query($query);
             
    $count mysql_num_rows($res);

             echo 
    $count;



             
             
    $found = array(" ");

             while(
    $row mysql_fetch_object($res))
                {
                 
    $id $row->id;
                 
    $title $row->title;
                 if(!
    in_array("$title"$found_id))
                  {
                  echo 
    "<a href=\"index.php?site=Hausarbeiten&action=showentry&id=$id\">$row->title</a>";
                  
    $found array_push($found"$title");
                  }
                }

             }




           }


        echo 
    "<br><br><br><center>
            <font size=\"5pt\"><b>Eintrag Suchen</b></font>"
    ;

        echo 
    "<br><br>
             <form method=\"post\" action=\"index.php?site=suchen\">
             <input type=\"text\" name=\"suchbegriff\"></input>
              <input type=\"submit\" value=\"Suche starten\" name=\"search\"></input>
         </form>
              </center>"
    ;
    ?>
    Warning: in_array() [function.in-array]: Wrong datatype for second argument in C:\xampp\htdocs\SchreibDochAb\suchen.php on line 41

    Warning: array_push() [function.array-push]: First argument should be an array in C:\xampp\htdocs\SchreibDochAb\suchen.php on line 44
    Leider spuckt der mir dabei nun diese Fehler hier aus, und ich versteh ehrlich gesagt nich warum.

    In Zeile 41 ist das: if(!in_array("$title", $found_id))
    In Zeile 44 ist das: $found = array_push($found, "$title");

    Nach
    array_push();
    und
    in_array();
    habe ich meiner Ansicht nach alles richtig gemacht.

    Worin liegt nun also noch der Fehler ?

    Sinn des Array "$found" soll sein zu verhinderten, dass Beiträge doppelt aufgelistet werden, wenn mehr als ein Wort aus der Such-Eingabe in einem Eintrags-Title steht.

    Danke schonmals für die Hilfe!

    Greetz,
    Azadoras

  • #2
    also du machst
    $found = array_push($found, "$title");
    in einer schleife.
    da array_push eigentlich kein array sondern ein int zurückliefert, dann ist wenigstens bei dem zweitem schleifendurchlauf $found kein array sondern ein int.
    also einfach
    $found[]=$title;
    machen
    woher $tittle kommt sehe ich aus quellcode leider nicht.

    und warum $found_id kein array ist, weis ich nicht, da diese variable nirgendwo vorkommt und ich kenne sein herkunft nicht
    Zuletzt geändert von Slava; 03.11.2007, 20:37.
    Slava
    bituniverse.com

    Kommentar


    • #3
      Ah, vielen Dank Slava, das hat mir geholfen.

      Erläuterung: $title kommt aus dem MySQL-Datensatz des entsprechenden Eintrages, und $found_id war die erste Bezeichnung des Array, hatte ich vergessen an dere einen Stelle zu ändern.

      mit $found[] = $title klappt es auf jeden Fall gut, danke. Ich dachte eigentlich array_push(); würde dem Array ein weiteres Inhalts-Feld hinzufügen, aber mit $found[] = $title klappt das auch, ohne Error.

      Danke!

      Kommentar

      Lädt...
      X