2009-11-06 2 views
0

Я пытаюсь получить значение $ url для отображения из базы данных MySQL, но я могу получить только значение $ cat для отображения. Кто-то может помочь мне узнать, как отобразить значение $ url.Основная проблема PHP?

Теперь я делаю что-то неправильно.

Вот неполный код.

// Loop through each subarray: 
foreach ($parent as $id => $cat) { 

    // Display the item: 
    echo '<li><a href="http:' . $url . '" title="">' . $cat . '</a>'; 

Вот полный код.

<?php 
require_once ('./mysqli_connect.php'); // Connect to the db. 

// Receives one argument: an array. 
function make_list ($parent) { 

    // Need the main $link array: 
    global $link; 

    // Start an ordered list: 
    echo '<ol>'; 

    // Loop through each subarray: 
    foreach ($parent as $id => $cat) { 

     // Display the item: 
     echo '<li><a href="http://' . $url . '" title="">' . $cat . '</a>'; 

     // Check for sublink: 
     if (isset($link[$id])) { 

      // Call this function: 
      make_list($link[$id]); 

     } 

     // Complete the list item: 
     echo '</li>'; 

    } // End of FOREACH loop. 

    // Close the ordered list: 
    echo '</ol>'; 

} // End of make_list() function. 


// Connect to the database: 
    $mysqli = new mysqli("localhost", "root", "", "sitename"); 
    $dbc = mysqli_query($mysqli,"SELECT * FROM categories ORDER BY parent_id, category ASC"); 
if (!$dbc) { 
    // There was an error...do something about it here... 
    print mysqli_error(); 
} 


// Initialize the storage array: 
$link = array(); 

while (list($id, $parent_id, $category) = mysqli_fetch_array($dbc, MYSQLI_NUM)) { 

    // Add to the array: 
    $link[$parent_id][$id] = $category; 

} 

make_list($link[0]); 


mysqli_close($mysqli); // close the connection 

?> 
+0

Ваш код синтаксически корректный. Несколько вопросов: Что такое $ parent array? Где вы устанавливаете $ url? – jonthornton

+0

вам может потребоваться опубликовать еще какой-то код .. из того, что вы нам дали до сих пор, $ url даже не определен, чтобы иметь значение. – saleemshafi

+0

Полный код отправлен. – aBc

ответ

3

$ URL не на картинке, даже ... похоже, вы итерация массива отдельно от результата MySQL. Вам понадобится нечто большее:

foreach ($res as $row) { 
    echo '<li><a href="http:' . $row['url'] . '" title="">' . $row['cat'] . '</a>'; 
} 

Надеюсь, это поможет.

Edit:

Прежде всего, $ URL должен быть назначен вместе с другими переменными в списке() - так как вы делаете SELECT * в запросе может потребоваться указать столбцы так заказа правильно в вашем задании.

Тогда, нет никакого способа, чтобы включить другие переменный со структурой массива вы используете ...

$link[$parent_id][$id] = $category; 

должен бы быть что-то вроде:

$link[$parent_id][$id] = array('category' => $category, 'url' => $url); 

Затем итерации над массив необходимо будет изменить примерно на:

foreach ($parent as $id => $ary) { 

    // Display the item: 
    echo '<li><a href="http:' . $ary['url'] . '" title="">' . $ary['category'] . '</a>'; 

} 
1

Из кода, который вы предоставили, вы не объявляете $ url из $ parent. Есть ли вероятность, что вы можете предоставить то, что хранится в $ parent?


Итак, сначала сначала!

Вам нужно будет получить URL из вашего mysqli_fetch_array звонка что-то похожее на это (я предполагаю, что URL-адрес является имя столбца в таблице)

while ($row = mysqli_fetch_array($dbc, MYSQLI_NUM)) { 
    $id = $row['id']; 
    $parent_id = $row['parent_id']; 
    $cat = $row['category']; 
    $url = $row['url']; 

    // Add to the array: 
    $link[$parent_id][$id] = array('cat' => $cat, 'url' => $url); 
} 

Затем изменить свой цикл Еогеасп извлечь соответствующую категорию и URL

foreach ($parent as $id => $category_array) { 

// Display the item: 
echo '<li><a href="http://' . $category_array['url'] . '" title="">' . $category_array['cat'] . '</a>'; 
Смежные вопросы