Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    1

    errore Colonna sconosciuta 'xxxx' in 'where clause'

    Ciao a tutti sono nuovo del forum e vi parlo del mio problema:

    in sostanza è questo >> Colonna sconosciuta 'pc128354' in 'where clause' <<

    il codice php è questo:
    <html>
    <body>
    <div style="text-align: center;"><span style="font-family: Comic Sans MS; color:red;"><div style="text-align: center;">LETTURA DELLE INFORMAZIONI</div></span></DIV>







    <?php
    $host="localhost";
    $user="root";
    $pass="";
    $nomedb="Archivio";
    $conn=mysql_connect($host, $user, $pass) or die ("Non riesco a connettermi al DB");
    mysql_select_db($nomedb) or die("Non riesco a selezionare il DB");
    $query=$_POST["query"];
    $info=$_POST["info"];
    switch($query)
    {
    case 'all':
    {
    $dati=mysql_query("select * from archivio order by matricola desc");
    while($array=mysql_fetch_array($dati))
    {
    print"$array[matricola]";
    print"$array[nome]";
    print"$array[macadd]";
    print"$array[ip]";
    print"$array[iprupar]";
    print"$array[dhcp]";
    print"$array[sn]";
    print"$array[modello]";
    print"$array[so]";
    print"$array[hd]";
    print"$array[ram]";
    print"$array[proc]";
    print"$array[ass]";
    echo"

    ";
    }
    }break;

    case 'mat':
    {
    $dati=mysql_query("select * from archivio where archivio.matricola=$info");
    while($array=mysql_fetch_array($dati))
    {
    print"$array[matricola]";
    print"$array[nome]";
    print"$array[macadd]";
    print"$array[ip]";
    print"$array[iprupar]";
    print"$array[dhcp]";
    print"$array[sn]";
    print"$array[so]";
    print"$array[hd]";
    print"$array[ram]";
    print"$array[proc]";
    print"$array[ass]";
    echo"

    ";
    }
    }break;

    case "nome":
    {
    $dati=mysql_query("select * from archivio where nome=$info");
    while($array=mysql_real_escape_string(stripslashes ($dati))or die(mysql_error()))
    {
    print"$array[matricola]";
    print"$array[nome]";
    print"$array[macadd]";
    print"$array[ip]";
    print"$array[iprupar]";
    print"$array[dhcp]";
    print"$array[sn]";
    print"$array[modello]";
    print"$array[so]";
    print"$array[hd]";
    print"$array[ram]";
    print"$array[proc]";
    print"$array[ass]";
    echo"

    ";
    }
    }break;

    case "ip":
    {
    $dati=mysql_query("select * from archivio where archivio.ip=$info");
    while($array=mysql_fetch_array($dati)or die(mysql_error()))
    {
    print"$array[matricola]";
    print"$array[nome]";
    print"$array[macadd]";
    print"$array[ip]";
    print"$array[iprupar]";
    print"$array[dhcp]";
    print"$array[sn]";
    print"$array[modello]";
    print"$array[so]";
    print"$array[hd]";
    print"$array[ram]";
    print"$array[proc]";
    print"$array[ass]";
    echo"

    ";
    }
    }break;

    case "sn":
    {
    $dati=mysql_query("select * from archivio where archivio.sn=$info");
    while($array=mysql_fetch_array($dati)or die(mysql_error()))
    {
    print"$array[matricola]";
    print"$array[nome]";
    print"$array[macadd]";
    print"$array[ip]";
    print"$array[iprupar]";
    print"$array[dhcp]";
    print"$array[sn]";
    print"$array[modello]";
    print"$array[so]";
    print"$array[hd]";
    print"$array[ram]";
    print"$array[proc]";
    print"$array[ass]";
    echo"

    ";
    }
    }break;

    case "mod":
    {
    $dati=mysql_query("select * from archivio where archivio.modello=$info");
    while($array=mysql_fetch_array($dati)or die(mysql_error()))
    {
    print"$array[matricola]";
    print"$array[nome]";
    print"$array[macadd]";
    print"$array[ip]";
    print"$array[iprupar]";
    print"$array[dhcp]";
    print"$array[sn]";
    print"$array[modello]";
    print"$array[so]";
    print"$array[hd]";
    print"$array[ram]";
    print"$array[proc]";
    print"$array[ass]";
    echo"

    ";
    }
    }break;

    case "so":
    {
    $dati=mysql_query("select * from archivio where archivio.so=$info");
    while($array=mysql_fetch_array($dati)or die(mysql_error()))
    {
    print"$array[matricola]";
    echo"";
    print"$array[nome]";
    echo"";
    print"$array[macadd]";
    echo"";
    print"$array[ip]";
    echo"";
    print"$array[iprupar]";
    echo"";
    print"$array[dhcp]";
    echo"";
    print"$array[sn]";
    echo"";
    print"$array[modello]";
    echo"";
    print"$array[so]";
    echo"";
    print"$array[hd]";
    echo"";
    print"$array[ram]";
    echo"";
    print"$array[proc]";
    echo"";
    print"$array[ass]";
    echo"

    ";
    }

    }break;

    case "ass":
    {
    $dati=mysql_query("select * from archivio where archivio.ass=$info");
    while($array=mysql_fetch_array($dati)or die(mysql_error()))
    {
    print"$array[matricola]";
    echo"";
    print"$array[nome]";
    echo"";
    print"$array[macadd]";
    echo"";
    print"$array[ip]";
    echo"";
    print"$array[iprupar]";
    echo"";
    print"$array[dhcp]";
    echo"";
    print"$array[sn]";
    echo"";
    print"$array[modello]";
    echo"";
    print"$array[so]";
    echo"";
    print"$array[hd]";
    echo"";
    print"$array[ram]";
    echo"";
    print"$array[proc]";
    echo"";
    print"$array[ass]";
    echo"

    ";
    }

    } break;

    case "macadd":
    {
    $dati=mysql_query("select * from archivio where archivio.macadd=$info");
    while($array=mysql_fetch_array($dati)or die(mysql_error()))
    {
    print"$array[matricola]";
    echo"";
    print"$array[nome]";
    echo"";
    print"$array[macadd]";
    echo"";
    print"$array[ip]";
    echo"";
    print"$array[iprupar]";
    echo"";
    print"$array[dhcp]";
    echo"";
    print"$array[sn]";
    echo"";
    print"$array[modello]";
    echo"";
    print"$array[so]";
    echo"";
    print"$array[hd]";
    echo"";
    print"$array[ram]";
    echo"";
    print"$array[proc]";
    echo"";
    print"$array[ass]";
    echo"

    ";
    }
    }break;
    }
    mysql_close($conn);
    ?>
    </body>
    </html>

    il problema è il seguente:
    quando la variabile $query assume il valore di nome, ip, sn, mod, so, ass o macadd, a video mi viene visualizzato questo errore Colonna sconosciuta 'quello che cerco' in 'where clause'
    molto probabilmete l'errore è dato dalla funzione mysql_fetch_array() e cercando su svariati manuali ho scoperto che per il confronto tra stringhe s usa la funzione mysql_real_escape_string(stripslashes(xxx)), ho provato a cambiare la funzione ma il risultato non cambia l'errore è sempre quello:
    QUALCUNO MI SA AIUTARE ???

  2. #2
    Utente di HTML.it L'avatar di zeroh
    Registrato dal
    Feb 2002
    Messaggi
    138
    Ciao, scusami se ti faccio un piccolo rimprovero ma postare tutto il codice non serve a nulla, bastava postare solo la query che dava errore e il gioco è fatto.

    L'errore è semplicissimo, potevi trovarlo utilizzando phpmyadmin e provando direttamente la query nel database.

    Ti saresti subito accorto che non puoi scrivere

    select * from archivio where archivio.macadd=$info

    ma dovresti scrivere

    select * from archivio where archivio.macadd='$info'

    con i due apici, questo perchè solo in questo modo Mysql capirà che stai cercando di trovare i risultati che contengono al proprio interno la condizione contenuta tra apici e non stai invece (come erroneamente hai suggerito a mysql) di fare un confronto tra due valori in tabella.

    Spero di essere stato chiaro.

  3. #3
    Stai rischiando parecchio: in primis non usi mai i backticks per proteggere i nomi dei campi (e usi nomi campi abbastanza pericolosi, tipo "ip"), in secundis non racchiudi tra apici le stringhe, e questo è ciò che ti genera l'errore citato (non certo mysql_fetch_array). Ricapitolando (e ipotizzando che il campo "ip" sia stringa):

    codice:
    -- Questa non va bene:
    select * from archivio where archivio.ip=$info
    -- Questa va bene ed è sicura:
    select * from `archivio` where `archivio`.`ip`='$info'
    -- o, più semplicemente:
    select * from `archivio` where `ip`='$info'

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 © 2025 vBulletin Solutions, Inc. All rights reserved.