2016-05-03 8 views
0

fint ich habe ein kleines Problem. Ich möchte Daten von MySQL in ein Array speichern und dann möchte ich ein bestimmtes Wort in diesem Array suchen und abrufen, wenn gefunden wurde oder nicht, habe ich auf viele verschiedene Arten versucht, und immer noch kein Erfolg. Es immer "Wort nicht abzurufen gefunden ". Ich habe es auch mit array_search und mit einer for-Schleife versucht. Was vermisse ich?Kann nicht bestimmte Elemente aus dem Array von mysql

<?php 

include("conn.php"); 
$keyword = "universidade"; 

$row = array(); 
$result = mysql_query("SELECT keywords FROM beta_universidades"); 

while ($data = mysql_fetch_assoc($result)) { 
    $row[] = $data; 
} 

echo "<br><br>"; 

$chave = in_array($keyword, $row); 

if ($chave !== false) { 
    echo "word found"; 
} else { 
    echo "word not found"; 
} 
+0

Warum nicht habe die DB nach dem Begriff gesucht? 'SELECT Schlüsselwörter FROM beta_universidades, wobei keywords = '$ escaped_var'', oder verwenden Sie ein' like'. Sie sollten auch Ihren Treiber aktualisieren, damit Sie parametrisierte Abfragen verwenden können. – chris85

Antwort

0

Sie Schlüssel 'keywords' mit Ihrem $data Array vergessen zu verwenden ..

while($data = mysql_fetch_assoc($result)) 
{ 
    $row[] = $data['keywords']; 
} 
+0

es funktionierte, aber warum ist es erforderlich, die 'Schlüsselwörter', wenn ich in die MySQL-Abfrage – eternaty

+0

, weil [in_array()] (http://php.net/manual/en/function.in-array.php) nicht funktioniert für multidimensionales Array, so dass wir '$ data ['keywords']' 'verwenden und nur den Wert keywords in' $ row' anstatt in das volle '$ data' Array schieben ... @eternaty –

+0

können Sie akzeptieren und abstimmen hilfreiche Antworten ... :) @eternaty –

1

In Ihrem Fall $row ist ein Array von Arrays, so dass Sie so etwas wie versuchen sollte:

foreach ($row as $myKeywords) { 
    $chave = in_array($keyword, $myKeywords['keywords']); 

    if ($chave !== false) { 
     echo "word found"; 
     break; 
    } 
} 
Verwandte Themen