Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [Versione php]Problema con uno script

    ciao,
    ho scritto questo script che mi elenca i prosotti in una categoria.provando al lavoro tutto funzionava correttamente, ma testandolo sul pc a casa ho un errore e non capisco come mai, penso sia dovuto alla versione del php

    script

    <?
    $db=mysql_connect($host,$user,$pass) or die ("Errore nel Database");
    //estraggo tutti i profotti in base alla categoria
    if(!$categoria)
    {categoria==1;}
    //Verifico l'ordinamento
    if(!$order)
    {
    $a[0]="`tb_prd`.`nome_prd`";
    $a[1]="`tb_valori`.`prezzo`";
    $a[2]="`tb_lingua`.`sigla`";

    $im[0]="order02.gif";
    $im[1]="order01.gif";
    $im[2]="order01.gif";
    }
    else
    {
    switch ($order)
    {
    case 0:
    $a[0]="`tb_prd`.`nome_prd`";
    $a[1]="`tb_valori`.`prezzo`";
    $a[2]="`tb_lingua`.`sigla`";

    $im[0]="order02.gif";
    $im[1]="order01.gif";
    $im[2]="order01.gif";
    break;
    case 1:
    $a[0]="`tb_lingua`.`sigla`";
    $a[1]="`tb_valori`.`prezzo`";
    $a[2]="`tb_prd`.`nome_prd`";

    $im[0]="order01.gif";
    $im[1]="order02.gif";
    $im[2]="order01.gif";
    break;
    case 2:
    $a[0]="`tb_valori`.`prezzo`";
    $a[1]="`tb_prd`.`nome_prd`";
    $a[2]="`tb_lingua`.`sigla`";

    $im[0]="order01.gif";
    $im[1]="order01.gif";
    $im[2]="order02.gif";
    break;
    }
    }
    $sql="
    SELECT
    `tb_prd`.`id_prd`,
    `tb_prd`.`nome_prd`,
    `tb_prd`.`cod_prd`,
    `tb_lingua`.`lingua`,
    `tb_valori`.`sconto_riv`,
    `tb_valori`.`sconto_cli`,
    `tb_valori`.`descrizione`,
    `tb_valori`.`peso`,
    `tb_valori`.`colori`,
    `tb_valori`.`materiale`,
    `tb_valori`.`prezzo`,
    `tb_copertine`.`filename_front`,
    `tb_copertine`.`id_copertina`,
    `tb_categoria`.`nome_cat`,
    `tb_copertine`.`filesize_front`,
    `tb_copertine`.`sizeimthumb`,
    `tb_lingua`.`sigla`,
    `tb_prd`.`id_categoria`,
    `tb_prd`.`id_lingua`,
    `tb_prd`.`id_user`,
    `tb_prd`.`id_valori`
    FROM
    `tb_prd`
    INNER JOIN `tb_valori` ON (`tb_prd`.`id_prd` = `tb_valori`.`id_prd`)
    INNER JOIN `tb_lingua` ON (`tb_prd`.`id_lingua` = `tb_lingua`.`id_lingua`)
    INNER JOIN `tb_copertine` ON (`tb_prd`.`id_prd` = `tb_copertine`.`id_prd`)
    INNER JOIN `tb_categoria` ON (`tb_prd`.`id_categoria` = `tb_categoria`.`id_categoria`)
    WHERE
    (`tb_lingua`.`id_lingua` = 1) AND
    (`tb_prd`.`id_categoria` = ".$categoria.")
    ORDER BY
    ".$a[0].",
    ".$a[1].",
    ".$a[2]."
    ";
    $val = mysql_db_query($database,$sql) or die (mysql_error());



    errore

    You have an error in your SQL syntax near ') ORDER BY `tb_prd`.`nome_prd`, `tb_valori`.`prezzo`, ' at line 32


    nel test $order non è definito, perchè sulla versione a casa non funziona?

    a casa ho PHP Version 4.3.10 (al lavoro è una versione precedente, ma non ricordo quale)

    con mysql 3.23.49

  2. #2
    dovrebbe essere causato dalle apici mancanti a $categoria
    codice:
    .....
    (`tb_prd`.`id_categoria` = '".$categoria."') 
    ORDER BY
    ....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    ok trovato l'errore

    if(!$categoria)
    {$categoria==1;}

    corretto con

    if(!$categoria)
    {$categoria=1;}

    il problema che pur arrivando con il link file.php?categoria=2 per lui categoria è sempre 1..perchè? con php 4.3.10 bisogna dirgli in modo diverso le variabili che arrivano dagli url?

  4. #4
    Originariamente inviato da lbottoni
    ok trovato l'errore

    if(!$categoria)
    {$categoria==1;}

    corretto con

    if(!$categoria)
    {$categoria=1;}

    il problema che pur arrivando con il link file.php?categoria=2 per lui categoria è sempre 1..perchè? con php 4.3.10 bisogna dirgli in modo diverso le variabili che arrivano dagli url?
    Devi utilizzare $_GET['categoria'] e poi mettilo come indicato tra virgolette. Arrivando da GET e' sempre una stringa.

    leggiti la pillola di chris...

    http://forum.html.it/forum/showthrea...hreadid=245215

    codice:
    .....
    (`tb_prd`.`id_categoria` = '".$_GET['categoria']."') 
    ORDER BY
    ....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    finalmente!!!funziona.

    grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.