array_search()
Martin33
- php
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
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
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!?
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.
wenn ich mit print_r() frag, erscheint eh ein array...
Ich hab keine Ahnung, ich hab ned viel vereinfacht...
thx
martin
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
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
Hi Martin33!
Was ergibt denn ein var_dump($links)?
MfG H☼psel
Den Inhalt des arrays, $links is ja eh ein array...
array(15) { [266]=> string(23) "..."
....
}