PHP cannot proccess correct MySQL querry

Discussion in 'PHP' started by kecinko, Apr 24, 2009.

  1. #1
    I have problem with following querry:

    SELECT vyrobcovia.krajina AS "krajina",
    SUM( IF(tovar.ID_typu = 1 , faktura.mnozstvo * tovar.cena , 0)) AS "sprickobunda",
    SUM( IF(tovar.ID_typu = 2 , faktura.mnozstvo * tovar.cena , 0)) AS "vodacka_bunda",
    SUM( IF(tovar.ID_typu = 3 , faktura.mnozstvo * tovar.cena , 0)) AS "spricka",
    SUM( IF(tovar.ID_typu = 4 , faktura.mnozstvo * tovar.cena , 0)) AS "vesta",
    SUM( IF(tovar.ID_typu = 5 , faktura.mnozstvo * tovar.cena , 0)) AS "neprenove_oblecenie",
    SUM( IF(tovar.ID_typu = 6 , faktura.mnozstvo * tovar.cena , 0)) AS "termo_oblecenie",
    SUM( IF(tovar.ID_typu = 7 , faktura.mnozstvo * tovar.cena , 0)) AS "oblecenie_a_vybava_pre_deti",
    SUM( IF(tovar.ID_typu = 8 , faktura.mnozstvo * tovar.cena , 0)) AS "prilba",
    SUM( IF(tovar.ID_typu = 9 , faktura.mnozstvo * tovar.cena , 0)) AS "obuv",
    SUM( IF(tovar.ID_typu = 10 , faktura.mnozstvo * tovar.cena , 0)) AS "obal",
    SUM( IF(tovar.ID_typu = 11 , faktura.mnozstvo * tovar.cena , 0)) AS "ostatne",
    SUM( IF(tovar.ID_typu = 12 , faktura.mnozstvo * tovar.cena , 0)) AS "padlo",
    SUM( IF(tovar.ID_typu = 13 , faktura.mnozstvo * tovar.cena , 0)) AS "lod",
    SUM(faktura.mnozstvo * tovar.cena) AS "celkove prijmy"
    FROM faktura INNER JOIN tovar ON faktura.ID_tovaru = tovar.ID_tovaru INNER JOIN typ_tovaru ON typ_tovaru.ID_typu = tovar.ID_typu INNER JOIN vyrobcovia ON vyrobcovia.ID_vyrobcu = tovar.ID_vyrobcu
    GROUP BY vyrobcovia.krajina

    when I put it directly to MySQL through phpMyAdmin, everything is fine. Problem is when I put it in to variable $finalselect and use with this code:

    $result = @mysql_query($finalselect);
    if (!$result) {
    exit( mysql_error() . '</p>');
    }

    error message is:

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '
    SUM( IF(tovar.ID_typu = 1 , faktura.mnozstvo * tovar.cena , 0)) AS "sprick' at line 1
     
    kecinko, Apr 24, 2009 IP
  2. sliver

    sliver Peon

    Messages:
    29
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    0
    #2
    maybe you need to use some escape '\' in your query assignment.
    Paste your $finalselect = "QUERY STRING" code.
     
    sliver, Apr 24, 2009 IP
  3. kecinko

    kecinko Peon

    Messages:
    2
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    0
    #3
    $result = mysql_query("SELECT $stplecB FROM $tabulkaB");

    $sum = '';
    $i = 1;
    while ($row = mysql_fetch_array($result))
    {
    $sum .= 'SUM( IF(tovar.ID_typu = ';
    $sum .= $i ;
    $sum .= ' , faktura.mnozstvo * tovar.cena , 0)) AS `';
    $sum .= $row[$stplecB];
    $sum .= '`,<br />' ;
    $i++;
    }


    $sum .= 'SUM(faktura.mnozstvo * tovar.cena) AS `celkove prijmy` <br />';

    $from = ' FROM faktura INNER JOIN tovar ON faktura.ID_tovaru = tovar.ID_tovaru INNER JOIN typ_tovaru ON typ_tovaru.ID_typu = tovar.ID_typu INNER JOIN vyrobcovia ON vyrobcovia.ID_vyrobcu = tovar.ID_vyrobcu

    <br />';

    $group = 'GROUP BY ';
    $group .= $tabulkaA;
    $group .= '.';
    $group .= $stplecA;

    $finalselect = ' SELECT ';
    $finalselect .= $tabulkaA;
    $finalselect .= '.';
    $finalselect .= $stplecA;
    $finalselect .= ' AS `';
    $finalselect .= $stplecA;
    $finalselect .= '`, <br />';
    $finalselect .= $sum;
    $finalselect .= $from;
    $finalselect .= $group;
    $finalselect .= ';';

    echo $finalselect;
     
    kecinko, Apr 24, 2009 IP
  4. sliver

    sliver Peon

    Messages:
    29
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    0
    #4
    i don't understand this line:
    , i think <br /> can be removed...

    If you still get error post it if it's different.
     
    sliver, Apr 24, 2009 IP