Tell me more ×
Stack Overflow is a question and answer site for professional and enthusiast programmers. It's 100% free, no registration required.

I need to select ids from database with arrays. my english not good. I think the best way to show my codes

the form result print_r($malayalam); like this Array ( [0] => helo [1] => hi[2] => how)

I need to select its ids from table. my code is not correct. any way let me show you here

$results=mysql_query("SELECT ml_id FROM ml_table WHERE word = '$malayalam'"); 
$numrows=mysql_num_rows($results);
if($numrows!=0){
    $ml_row = mysql_fetch_array($results);
    $ml_id = $ml_row['ml_id'] ;
    echo "Malayalam ID " . $ml_id . "<br />";
}

I need to add all my result in to another array.

is that possible ? if u have any idea could you answer to me please

share|improve this question
What does the table data look like? What are the names of the columns? I don't think the $malayalam array is going to work in the SQL SELECT statement the way you want it to either. – Shaun Bohannon Mar 3 '12 at 17:04
@sbohan Hi table name is ml_table columns are ml_id, word the thing is that I need to select ml_id from thable which are equal to Array ( [0] => helo [1] => hi[2] => how) – Muhammed Athimannil Mar 3 '12 at 18:22
1  
possible duplicate of PHP/MYSQL using an array in WHERE clause – Michael Berkowski Mar 3 '12 at 18:39

4 Answers

If I understood properly, the following is what you need

$results=mysql_query("SELECT * FROM ml_table WHERE word = '$malayalam'"); 
if(mysql_num_rows($results)>0){

    $newArray = array(); //Create a new array

    while($ml_row = mysql_fetch_array($results)) {
        $ml_id = $ml_row['ml_id'] ;
        $newArray[$ml_id] = $ml_row;
        echo "Malayalam ID " . $ml_id . "<br />";
    }

    //$newArray is your new array accesible from id

}
share|improve this answer
print_r($newArray); doesn't show any thing :( – Muhammed Athimannil Mar 3 '12 at 18:41
Try to run the command, alone using phpmyadmin only and see if outputs anything. – Starx Mar 3 '12 at 18:46
I think the problem on $malayalam. bcos it is also array. – Muhammed Athimannil Mar 3 '12 at 18:48
@maanu, of course, thats a problem. It is not designed to read an array. – Starx Mar 3 '12 at 18:51
do u know how to select with array ? – Muhammed Athimannil Mar 3 '12 at 19:04
show 6 more comments

You should write something like this:

$ids = array();
$in = '"' . implode('","', array_map('mysql_real_escape_string', $malayalam)) . '"';
$result = mysql_query('SELECT id FROM ml_table WHERE word IN(' . $in . ')');
while($row = mysql_fetch_assoc($result)) {
    $ids[] = $row['id'];
}

$anotherArray = array_merge($ids, $anotherArray);
OR
$anotherArray += $ids;
share|improve this answer
$i=0;       
foreach($malayalam as $key=>$value)
{
    $results=mysql_query("SELECT * FROM ml_table WHERE word = '$value'"); 
    $numrows=mysql_num_rows($results);
    if($numrows!=0)
    {
         $ml_row = mysql_fetch_array($results);
         $ml_id = $ml_row['ml_id'] ;
         $ml_ad[$i]=$ml_id;
         echo "Malayalam ID " . $ml_id . "<br />";
         $i++;
     }
 }

Now when you printr($ml_ad); it will show all your id's in an array.

share|improve this answer
I need to all selected ml_id in to $ml_ad as a array – Muhammed Athimannil Mar 3 '12 at 18:36
up vote 0 down vote accepted

finally fainally found solution with the help of answers

$rArray = mysql_query("SELECT ml_id FROM ml_table WHERE word IN ('".implode("', '", $malayalam)."')"); 
if(mysql_num_rows($rArray)>0){
    $temp_rows = array();       
    while(($row = mysql_fetch_array($rArray))) {
        $temp_rows[] = $row['ml_id'];
    }
}

the result of print_r($temp_rows) coming like this Array ( [0] => 123 [1] => 234 [2] => 312)

thank to all

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.