Как вставить значения в MySQL

craz

Нестандартное звание
внутри строки переменные можно вставлять так

"Ах ты бл... у меня чето со скобками в {$query}"
 

vmnetwork

Новичок
$query = "insert into $catalog values (NULL, '".$memberid."', '".$catalogban."', $row, '".$idfirm."', '".$statusvip."', '0', '0')";

вы не видите ничего странного? именно там где у вас ошибка??
запрос исправлен на $query = "insert into $catalog values (NULL, '$memberid', '$catalogban', '$row', '$idfirm', '$statusvip', '$time', '$oldtime')";
признаю в том была ошибка...
но основную ошибку это не исправило
 

Ragazzo

TDD interested
vmnetwork
Короче ты код приведи нормальный и что это у тебя за переменные такие, иначе через полчаса шаманства и ты походу в корзину уедешь, ибо терпение у модеров не бесконечное...
 

DIG

Новичок
Партнер клуба
Ну теперь ты видишь, что у тебя после $row = implode(',',$row); в $row лежит строка '1,2,3' ?
После того как ты вставляешь её в запрос ты получаешь: insert into cat2_catalog values (NULL, '28', '1', '1,2,3', '8', '3', '0', '0'), это видно?
А ты хочешь получить: insert into cat2_catalog values (NULL, '28', '1', '1','2','3', '8', '3', '0', '0') ?

Я может уже сам запутался, но помоему ты этого хочешь ? Если я прав в своей догадке - то дальше я думаю проблем не будет.
 

vmnetwork

Новичок
Ragazzo - код вроде нормальный... давно привел к нормальному виду запрос... исправил также код в первом сообщение на тот который сейчас.
DIG - в том то и проблема что я даже
insert into cat2_catalog values (NULL, '28', '1', '1,2,3', '8', '3', '0', '0') не вижу... я вижу
insert into cat2_catalog values (NULL, '28', '1', '', '8', '3', '0', '0')
тоесть вообще пустота вместо $row ... отсюда и доводы с начала темы что я массив не создал или еще что то?!

а массив создается путем
$row[] = $data->sheets[0]['cells'][$i][$j];
$row = implode(',', $row);
(подправил тоже немного код).


это из Spreadsheet_Excel_Reader полученные данные
for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++)
{
echo('<tr>');
for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++)
{
echo ('<td>'.$data->sheets[0]['cells'][$i][$j].'</td>');

}

дело в том что в HTML данные полученные из Excel отображаются нормально... за них как я понял отвечает $data->sheets[0]['cells'][$i][$j] (тоесть это строка)...
 

Ragazzo

TDD interested
$row[] = $data->sheets[0]['cells'][$i][$j];
$row = implode(',', $row);
над этим подумай еще раз...
 

vmnetwork

Новичок
Ragazzo - подскажи пожалуйста как правильно, я просто уже никак не соображу
 

vmnetwork

Новичок
По примеру в интернете предлагается сделать так:

if(empty($data->sheets[0]['cells'][$j][$i]))
$row[] = "'empty'"; // Ликвидируем ошибку undefined offset

else
$row[] = "'".$data->sheets[0]['cells'][$j][$i]."'"; // Создаём массив из значений столбцов для каждой строки

$row = implode(",", $row); // Объединяем массив в строку, для запроса mysql

Но тоже результат тот же...
 

vmnetwork

Новичок
нашел всетаки в интернете как обойтись без массива... оказывается достаточно было вставить

$name = $data->sheets[0]["cells"][$i][1];
$extension = $data->sheets[0]["cells"][$i][2];
$email = $data->sheets[0]["cells"][$i][3];

вместо массива и добавить эти переменные в MySQL, спасибо всем... кстати очень все же хотелось бы узнать что было неправильно в массиве
$row[] = $data->sheets[0]['cells'][$i][$j];
$row = implode(',', $row);
 
Сверху