2014-11-13 3 views
-1

Мне нужно вставить определенные строки таблицы HTML в массив PHP, используя флажок. По какой-то причине в массив входит только первый столбец. код я написал это:Заполнение PHP-массива значениями из таблицы HTML

if(isset($_GET["key"])) { 
    $user_key = $_GET["key"]; 
    if ($stmt = $mysqli->prepare("SELECT sandwich.sname, description, size, price FROM sandwich  JOIN menu on sandwich.sname = menu.sname WHERE description like ?")) { 
     $stmt->bind_param("s", $search_string); 
     $search_string= "%".$user_key."%"; 
     $stmt->execute(); 
     $stmt->bind_result($sname, $description, $size, $price); 

     // Printing results in HTML 
     echo "The menu for the given key word is.<br>"; 
     echo "<table border = '1'>\n"; 
     while ($stmt->fetch()) { 
      echo "<tr>"; 
      echo "<td>$sname</td><td>$description</td><td>$size</td><td>$price</td><td><input type='checkbox' name='order[]' value='$sname'|'$size'|'$price'></td>"; 
      echo "</tr>\n"; 
     } 
     echo "</table>\n"; 
     $stmt->close(); 
    $mysqli->close(); 
    } 

Я nede всех значений по SNAME, размера и цены в порядке массива [], но только SNAME isgoing в него. Кто-то, пожалуйста, сообщите, что не так с кодом. Я совершенно не знаком с PHP.

+1

$ search_string = "%". $ User_key. "%"; Эта строка должна быть обязательной. Правильно? –

+0

@ Иndra, спасибо за комментарий, но это не имело значения. Я считаю, что проблема с синтаксисом в инструкции флажка. Не уверен, хотя! – kpks

ответ

0

Похоже, у вас есть несколько строк навыворот:

$stmt->bind_param("s", $search_string); 
$search_string= "%".$user_key."%"; 

должно быть:

$search_string= "%".$user_key."%"; 
$stmt->bind_param("s", $search_string); 

Кроме того, любые из имен полей общего между обоими вашим sandwich и вашим menu столы? Я бы порекомендовал изменить ваш запрос, чтобы указать, какие таблицы вы имеете в виду:

if ($stmt = $mysqli->prepare("SELECT sandwich.sname, <tablename>.description, <tablename>.size, <tablename>.price FROM sandwich JOIN menu on sandwich.sname = menu.sname WHERE <tablename>.description like ?")) { 
+0

Спасибо @danmullen, но это не сработало. Я изменил его сразу после получения комментария от Индры. – kpks

+0

ОК. Вы тоже видели мое редактирование? – danmullen

+0

работал с редактированием. Благодаря тонну. :) – kpks

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