Ersätta MySQL med CSV och det blir fel
Då företagets server tydligen inte gillade min fina MySQL har jag nu tvingats söka alternativ. Det simplaste, tyckte jag, var att köra med en CSV-fil där sidan hämtar sin information. Jag började genast frankensteina mina includes för att ta emot data från CSV-filen istället, men någonstans i PHP'n tycks det bli fel. Jag kan inte se exakt vad det är, för felrapportssträngen som skickas tillbaka är bruten.
Detta är den nya koden, som hämtar bl.a. description (och där vet jag att det blir fel):
$$data_file = "../csv/backup.csv";
$max_line_length=10000;
$counter = 0;
if (($handle = fopen("$$data_file", "r")) !== FALSE) {
$columns = fgetcsv($handle, $max_line_length, ";");
foreach ($columns as &$column) {
$column = str_replace(".","",$column);
}
while (($data = fgetcsv($handle, $max_line_length, ";")) !== FALSE) {
while (count($data)>count($columns)){
array_push($data);
}
$art[$counter] = "" . $data[0];
$description[$counter] = "" . $data[1];
$prodGroupNumber[$counter] = $data[2];
$prodGroupName[$counter] = "" . $data[3];
$EAN[$counter] = $data[7];
$X[$counter] = $data[4];
$Y[$counter] = $data[5];
$Z[$counter] = $data[6];
$counter++;
$return = "";
$asked = $_POST['asked'];
$imgPath = "GPBM Nordic/Art.Grp." . $prodGroupNumber[$counter] . "/RGB/" . $art[$counter] . ".jpg";
if($art[$counter] == $asked)
{
$return = $imgPath . ":" . $X[$counter] . ":" . $Y[$counter] . ":" . $Z[$counter] . ":" . $description[$counter] . ":" . $prodGroupName[$counter];
}
echo $return;
}
}
Så här såg den ut innan jag började mixtra med den:
include "dbconnect.php";
$tb_name = "planographic";
$sql = "SELECT * FROM " . $tb_name . "";
$fetch = mysql_query($sql)or die(mysql_error());
$return = "";
$asked = $_POST['asked'];
while($row = mysql_fetch_assoc($fetch)){
$imgPath = "GPBM Nordic/Art.Grp." . $row['productGroupNumber'] . "/RGB/" . $row['art'] . ".jpg";
if($row['art'] == $asked)
{
$return = $imgPath . ":" . $row['X'] . ":" . $row['Y'] . ":" . $row['Z'] . ":" . $row['description'] . ":" . $row['productGroupName'];
}
}
echo $return;
och här är javascriptskoden som skall hämta informationen. article är ett artikelnummer:
function getImageSrc(article)
{
var src= new Array();
dataString = "asked=" + article;
$.ajax({
url:'ext/php/getImage.php',
type: "POST",
async: false,
data: dataString,
success: function (data) {
src = data.split(":"); //0 = imgPath, 1 = X, 2 = Y, 3 = Z, 4 = Description, 5 = productGroupName
}
});
return src;
}
src[0] blir här en halv PHP-error-sträng (den där fina HTML-koden med cellpadding, bakgrundsfärg och allt sådant, men slutar strax innan den faktiska felkoden). src[1] får nästa del av koden, src[2] får nästa och så vidare tills följande meddelande kan läsas ut någonstans kring source[7]: "Undefined offset 1 in [sökväg till includefilen]".
Från detta får jag fram att Description inte funkar som den skall...
Här är ett exempel på hur det ser ut i CSV'n:
1001;X 18AR-IL8 / LU6 / OA Ultra;151;Rand. Mess;119;14;84;2147483647
Edit: Jag använder samma kod på ett annat ställe, där jag listar alla tillgängliga "produkter" med all information utan problem.
Stationär: Processor: Intel i5 3.2GHz, RAM: 4Gb, Grafikkort: ATI Radeon HD 5850, OS: Windows 7 Proffessional x64
Laptop: ASUS K53E, Processor: Intel i5 2450M, RAM: 4Gb, Grafik: Integrerad Intel GMA HD, OS: Win7 Home Premium x64 och Xubuntu 10