Martin33: array_search()

Hi!

Ich hab über ne mysql-Abfrage daten im $result
dann speicher ich die in die $links
$links = array();
while($link = mysql_fetch_object($result)) {
 $links[$link->id] = $link->link;
}
dann will ich im array nach einem link suchen

$link_id = array_search($_POST[Link], $links);

ich erhalte aber als Fehlermeldung:
Warning: array_search() [funktion.array-search]: Wrong datatype for second argument in [server-link] on line 30

line 30 is die obige array_search-abfrage

thx
Martin

  1. while($link = mysql_fetch_object($result)) {

    Du möchtest, vermute ich, mysql_fetch_assoc nutzten, da das obige ein Objekt filtert.

    $link_id = array_search($_POST[Link], $links);

    $_POST['link'] ist vermutlich angebrachter. Dass es trotzdem funktioniert hat liegt an einem sehr toleranten Interpreter.

    Warning: array_search() [funktion.array-search]: Wrong datatype for second argument in [server-link] on line 30

    Objekt !== Array

    1. while($link = mysql_fetch_object($result)) {

      Du möchtest, vermute ich, mysql_fetch_assoc nutzten, da das obige ein Objekt filtert.

      das stimmt schon, scahu mal genau!
      es is zwar ein Objekt, wird aber in ein array gespeichert => $links ist ein array!
      while($link = mysql_fetch_object($result)) {
       $links[$link->id] = $link->link;
      }

      $link_id = array_search($_POST[Link], $links);

      $_POST['link'] ist vermutlich angebrachter. Dass es trotzdem funktioniert hat liegt an einem sehr toleranten Interpreter.

      Das hab ich nicht so in meinem code drinnen stehn, ich wollte es nur vereinfachen, du hast recht da hab cih die Anführungszeichen vergessen.

      Warning: array_search() [funktion.array-search]: Wrong datatype for second argument in [server-link] on line 30

      Objekt !== Array

      aber $links is doch ein array!?

      1. Verzeihung, zu schnell gelesen. In diesem Fall ziehe ich meine Aussage zurück und nehme an, dass der Fehler außerhalb des hier vereinfachten Codes liegt. Im Grunde müsste bei einer gültigen SQL-Abfrage mit mehr als keinem Treffer $links ein Array sein.

        1. wenn ich mit print_r() frag, erscheint eh ein array...
          Ich hab keine Ahnung, ich hab ned viel vereinfacht...

          thx
          martin

          1. Hi Martin33!

            wenn ich mit print_r() frag, erscheint eh ein array...
            Ich hab keine Ahnung, ich hab ned viel vereinfacht...

            Dann poste den Code ohne Veränderungen. Ich sehe sonst keinen Fehler.

            MfG H☼psel

            --
            "It's amazing I won. I was running against peace, prosperity, and incumbency."
            George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
            Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
    2. Hi Rafael!

      while($link = mysql_fetch_object($result)) {
      Du möchtest, vermute ich, mysql_fetch_assoc nutzten, da das obige ein Objekt filtert.

      Ich glaube, er möchte mysql_fetch_object nutzen.

      $link_id = array_search($_POST[Link], $links);
      $_POST['link'] ist vermutlich angebrachter. Dass es trotzdem funktioniert hat liegt an einem sehr toleranten Interpreter.

      So? Wenn der Name des Formularelements aber "Link" lautet, was dann?

      Warning: array_search() [funktion.array-search]: Wrong datatype for second argument in [server-link] on line 30
      Objekt !== Array

      $links ist aber ein Array und kein Objekt.

      MfG H☼psel

      --
      "It's amazing I won. I was running against peace, prosperity, and incumbency."
      George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
      Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
  2. Hi Martin33!

    Was ergibt denn ein var_dump($links)?

    MfG H☼psel

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
    1. Den Inhalt des arrays, $links is ja eh ein array...

      array(15) { [266]=>  string(23) "..."
      ....
      }