Могу ли я отображать разные данные в зависимости от того, какой номер строки возвращается, MYSQL? - PullRequest
0 голосов
/ 14 сентября 2011
$sqlCommand = "SELECT * FROM videos WHERE id='$pageid' ORDER BY id DESC LIMIT 4"; 
$query = mysqli_query($myConnection, $sqlCommand) or die (mysqli_error()); 
while ($row = mysqli_fetch_array($query)) { 

    $id = $row["id"];
    $titleCurVid = $row["title"];
    $keywords = $row["keywords"];

    $returnVariable = 'Hi, I am the first return in the MYSQL select';
    }

Я хочу, чтобы переменная $ returnVariable отображала разные вещи в зависимости от того, что # возвращает.например.Я хочу, чтобы,

$returnVariable = 'Hi, I am the SECOND return in MYSQL';

отображало это во второй возвращенной строке.Прошу прощения за мои ужасные объяснения, я новичок в php и не очень хорошо знаю терминологию.

Ответы [ 3 ]

1 голос
/ 16 сентября 2011

Неважно, проблема решена.Я только что сделал 4 разных этих извлечения.

  • 1-е возвращение (с уникальным дисплеем в специальном формате):

    $sql_storyPublisher1 = mysql_query("SELECT * FROM story ORDER BY id DESC LIMIT 1");
    while($row = mysql_fetch_array($sql_storyPublisher1))
    {
        $publisherID1 = $row["id"];
        $publishertitle1 = $row["title"];
        $returnVariable1 = '<li id="selected" class="firstSlide YellowSelected">' . $publisherID1 . '</li>';    
    }
    

Спасибо всем за помощь, я думаю,простое решение, что просто с помощью команды OFFSET.

  • 2-й, 3-й и 4-й возврат (очевидно, замена числа 2 на то, что # возвращает это):

    $sql_storyPublisher2 = mysql_query("SELECT * FROM story ORDER BY id DESC LIMIT 1 OFFSET 1");
    while($row = mysql_fetch_array($sql_storyPublisher2))
    {
        $publisherID2 = $row["id"];
        $publishertitle2 = $row["title"];
        $returnVariable2 = '<li id="" class="secondSlide">' . $publisherID2 . '</li>';  
    }
    
0 голосов
/ 17 сентября 2011

Вам не нужно делать четыре отдельных запроса к базе данных ... Я имел в виду что-то вроде этого:

///// 1st Return (the one with the unique, special format display) =

$sql_storyPublisher1 = mysql_query("SELECT * FROM story ORDER BY id DESC");

$row = mysql_fetch_array($sql_storyPublisher1);

$publisherID1 = $row["id"];
$publishertitle1 = $row["title"];

$returnVariable1 = '<li id="selected" class="firstSlide YellowSelected">' . $publisherID1 . '</li>';    

///// 2nd, 3rd & 4th Return (obviously replacing the number 2 with whatever # return it is) =

$row = mysql_fetch_array($sql_storyPublisher2);

$publisherID2 = $row["id"];
$publishertitle2 = $row["title"];

$returnVariable2 = '<li id="" class="secondSlide">' . $publisherID2 . '</li>';  

Конечно, возможно, есть лучшие способы сделать это, но это просто и легко читаемо. Возможно, вы захотите убедиться, что у вас будет 4 строки. Вы можете нас if, если вы не уверены:

if($row = mysql_fetch_array($sql_storyPublisher2)) {

    $publisherID2 = $row["id"];
    $publishertitle2 = $row["title"];

    $returnVariable2 = '<li id="" class="secondSlide">' . $publisherID2 . '</li>';  
}
0 голосов
/ 14 сентября 2011

Вы можете создать массив, в котором будут храниться числа (что-то вроде $arr = array(1 => "first", 2 => "second", 3 => "third", 4 => "fourth"); и т. Д. Затем используйте переменную счетчика для доступа к этому массиву в цикле. Вот что я думаю ...

    $sqlCommand = "SELECT * FROM videos WHERE id='$pageid' ORDER BY id DESC LIMIT 4";  
    $query = mysqli_query($myConnection, $sqlCommand) or die (mysqli_error());  

    $arr = array(1 => "first", 2 => "second", 3 => "third", 4 => "fourth", 5 => "fifth"); //and so on
    $counter = 1
    while ($row = mysqli_fetch_array($query)) {  

        $id = $row["id"]; 
        $titleCurVid = $row["title"]; 
        $keywords = $row["keywords"]; 

        $returnVariable = 'Hi, I am the '.$arr[$counter].' return in the MYSQL select'; 
$counter++;
        } 

Синтаксис может быть неправильным, но вы поняли идею. Обратите внимание, что приведенный выше пример показывает это только при наличии 5 или менее записей.

Надеюсь, что это имеет смысл.

...