MySQL,而Loop&与in_array比较

时间:2015-06-21 16:13:54

标签: php mysql while-loop

这是代码:

$sql = "SELECT * FROM example";
    $query = mysql_query($sql);

    while ($array = mysql_fetch_array($query)) { 

    if (in_array($array['ipsum'], $page1)) {echo "<h2>correct</h2>"; break;} 

    else {echo "<h2>not correct</h2>";} }

    echo "<div id=\"nucleo\"><h3>lorem ipsum</h3><h1>";
    echo $page1;
    echo "</h1>";

我在数据库中有一个包含2行的表:第一个是lorem,第二个是ipsum(都是INT)。 在需要时手动编译该表。 我想要做的是获取第二行(ipsum)并创建一个数组。我不需要回显数组的值,但我需要将它与变量进行比较($ page1。这个变量是一个整数,它会不断变化)。

我该如何解决?

3 个答案:

答案 0 :(得分:1)

我认为这应该是你所追求的。您应该考虑从mysql函数/驱动程序切换到mysqliPDO驱动程序。

<?php
$page1 = (int)$page1;//force $page1 to be an int to avoid SQL injections
$sql = "SELECT * FROM example where ipsum = " . $page1;
$query = mysql_query($sql);
if(mysql_num_rows($query) > 0) {
    echo "<h2>correct</h2>"; 
} else {
    echo "<h2>not correct</h2>";} 
}
echo '<div id="nucleo">
        <h3>lorem ipsum</h3>
        <h1>' . $page1 . '</h1>';

http://php.net/manual/en/faq.databases.php#faq.databases.mysql.deprecated
http://php.net/manual/en/function.mysql-num-rows.php

答案 1 :(得分:0)

您正在使用in_array()来比较两个整数值。您应该像这样使用===运算符:

$sql = "SELECT * FROM example";
$query = mysql_query($sql);

while ($array = mysql_fetch_array($query)) { 

  if ($array['ipsum'] === $page1) {
    echo "<h2>correct</h2>"; 
    break;
  } else {
    echo "<h2>not correct</h2>";
  } 
}

echo "<div id=\"nucleo\"><h3>lorem ipsum</h3><h1>";
echo $page1;
echo "</h1>";

答案 2 :(得分:-1)

我这样解决了:

@DbColumn

我通过使用print_r意识到数组并不是我真的如何。上面这种方式使用colums的所有行来组成数组... array([0] =&gt; row1 [1] =&gt; row2,依此类推。

感谢大家的帮助...我为不清楚我的问题而道歉。