2015-11-19 1 views
-1

У меня есть сеанс, содержащий массив с ключом и значением, назначенным каждому массиву. После того, как массив установлен и сохранен в сеансе, я хотел бы получить и отобразить всю информацию из таблицы mysql, где ключ $ массива равен = id в моей таблице.

Я использую цикл foreach для эхо каждого $ key и $ value каждого массива уже, но я хочу эхо-данные из таблицы mysql, которая равна каждому ключу.

Мой стол

id   |  name  |  animalheight  | 
------------------------------------------------------- 
2012dog    dog     1m    
2022cat    cat     0.3m 

Так что я хотел бы повторить имя и animalheight, если ключ сеанса установлен и равен идентификатору таблицы.

Часть кода, который выдает ошибку

///////////////DUMPING EVERYTHING FROM DATABASE//////////////////////////////////// 


$sql = "select * from products where $key =$id"; 
$myData = mysql_query($sql,$con); 

if($record = mysql_fetch_array($myData)) 
{ 
    echo "<br/>"; 
    echo "||||||||||||||||". $row['name']. "||||||||||||||||"; 
    echo "<br/>"; 
} 
/////////////////////DUMPING EVERYTHING FROM DATABASE///////////////////////////////////// 

Мой Полный код

//code 
<?php 
////////////////////////////////////////////// 
$con = mysql_connect("localhost","****",""); 
mysql_select_db("*********",$con); 
////////////////////////////////////////////// 
session_start(); 

// create an array 
$my_array=array('2012dog' => 1 , '2022cat' => 2); 


// put the array in a session variable 
if(!isset($_SESSION['animals'])) 
    $_SESSION['animals']=$my_array; 

// move submit code outside of foreach loop 
if (isset($_POST["submit"])) 
{ 
for ($i = 0; $i < count($_POST['aaa']); $i++) { 
    $aaa = $_POST['aaa'][$i]; 
    $key_var = $_POST['ke'][$i]; 

    // setting the session spesific session array value different for each  key 
    $_SESSION['animals'][$key_var] = $aaa; 
} 
} 
?> 



<form method="post" action=""> 
<?php 
// loop through the session array with foreach 
foreach($_SESSION['animals'] as $key=>$value) 
{ 

////////////////////////////DUMPING EVERYTHING FROM  DATABASE//////////////////////////////////////////////// 


$sql = "select * from products where $key =$id"; 
$myData = mysql_query($sql,$con); 

if($record = mysql_fetch_array($myData)) 
{ 
    echo "<br/>"; 
    echo "||||||||||||||||". $row['name']. "||||||||||||||||"; 
    echo "<br/>"; 
} 
////////////////////////////DUMPING EVERYTHING FROM  DATABASE//////////////////////////////////////////////// 

    // and print out the values 

    echo "Product ID is " .$key. " Quantity is "; 

    // getting the updated value from input box 
    ?> 
     <input type="text" name="aaa[]" value="<?php echo $value ; ?>"  size="2" /> 
     <!-- take a hidden input with value of key --> 
     <input type="hidden" name="ke[]" value="<?php echo $key; ?>"><br> 

    <?php 
} 
?> 

<input type="submit" value="Update value of key" name="submit"/> 
</form> 

СПАСИБО ЗАРАНЕЕ!

+0

Я устал делать $ ключ = «ключ»; ..... а затем выберите говоря, где ключ = $ идентификатор, но он не работал; s – Jakie

+0

Что Ошибка? –

+0

Неопределенная переменная: id, а также mysql_fetch_array() ожидает, что параметр 1 будет ресурсом, boolean задан в – Jakie

ответ

1

вы можете сделать что-то вроде этого,

// First get all the keys 
$key_array = array_keys($_SESSION['animals']); 

// Get all records 
$sql = "select * from products"; 
$myData = mysql_query($sql,$con); 

// Loop through each record and see if $row['id'] is present in the $key_array or not 
while($row = mysql_fetch_array($myData)){ 
    if(in_array($row['id'], $key_array)){ 
     // display records 
    } 
} 
+0

Спасибо f или ответ Rajdeep Paul, но проблема неопределенной переменной все еще стоит. $ sql = "select * from products, где '$ key' = $ id"; – Jakie

+0

Вы можете сделать только '$ sql = select * from products', а затем пропустить каждую запись, чтобы увидеть, присутствует ли' $ row ['id'] 'в' $ key_array' или нет. См. Обновленный ответ. –

+0

заключается в том, что с использованием того же кода выше? – Jakie

Смежные вопросы