Visualizzazione dei risultati da 1 a 7 su 7

Discussione: aiuto con query MySql

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    107

    aiuto con query MySql

    Ciao!
    ho un problema con una query SQL..vi spiego la situazione:
    ho una tabella tab con diverse colonne, una di queste è colX ed è di tipo enum('a','b','c')..devo fare un controllo se per una determinata riga, ad esempio quella per cui colY=pippo, il valore corrispondente su colX è 'a'..in caso positivo o negativo vorrei ricevere true o false (oppure un valore numerico da poter confrontare).
    Che istruzione SQL posso usare? Dando un'occhiata al manuale di MySQL 5 ho pensato all'IF, però non ci sono abbastanza esempi e le mie prove non sono andate a buon fine.
    Io mi sono basato su questo esempio del manuale:
    mysql> SELECT IF(1>2,2,3);
    -> 3

    Vi posto la mia query, (dà errore di sintassi):
    Codice PHP:
    $test mysql_query("SELECT FROM tab WHERE colY='pippo' IF(colX=='a', 'si', 'no')");
    if(
    $test=='si')...else... 
    Avevo pensato anche ad un semplice SELECT, salvo il risultato in una variabile $test eppoi la analizzo...così:
    Codice PHP:
    $test mysql_query("SELECT colX FROM tab WHERE colY='pippo'");     
    if(
    $test=='a') ... 
    però, ovviamente il risultato di mysql_query è una resource..infatti se faccio echo "" . $test; mi stampa "Resource id #1".
    Eventualmente, come si fa a convertire una resource in una stringa?

    Spero di essere stato abbastanza chiaro, anche con l'esempio...grazie per l'aiuto!

  2. #2
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    forse dovresti fare
    Codice PHP:
    $test mysql_query("SELECT colX FROM tab WHERE colY='pippo'");     
    if(
    $row['colX'] == 'a') { // eccetera 

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    107
    Originariamente inviato da telegio
    forse dovresti fare
    Codice PHP:
    $test mysql_query("SELECT colX FROM tab WHERE colY='pippo'");     
    if(
    $row['colX'] == 'a') { // eccetera 
    sicuro?? mi dà questo errore: Notice: Undefined variable: row
    eppoi la funzione row() non la trovo né sul manuale di php, né in quello di MySql.. :master:

    Ho provato anche con mysql_result, che vuole come primo parametro la resource della query, ma ho difficoltà nel secondo parametro da passargli.

  4. #4
    Codice PHP:
    $test ="SELECT colX FROM tab WHERE colY='pippo'"
      
    $result mysql_query($test$db);
      while (
    $row mysql_fetch_array($result)) {
       
    if(
    $row['colX'] == 'a') { 

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    select *,if(x = 'a' and y = 'pippo',1,0) as test from tab

  6. #6
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    si, certo.. avevo scritto al volo.. intendevo dire che devi valorizzare il campo nel DB..

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    107
    Originariamente inviato da nicola75ss
    select *,if(x = 'a' and y = 'pippo',1,0) as test from tab
    così però mi crea un'altra colonna nella mia tabella.. :master:

    Vabbè, per ora ho risolto in un altro modo, con un COUNT, ma l'ho presa molto alla larga e si può fare di meglio! Intanto funziona e lascerò così, nell'attesa che mi venga in mente qualcosa di meglio oppure che qualcuno mi illumini su come trasformare un dato di tipo resource come risultato della funzione mysql_query in una stringa.
    Alla fine, quello che mi serve è poter confrontare il risultato di una query (nel mio caso è una tabella a una riga e una colonna) con una stringa. Possibile che non ci sia un modo rapido per farlo senza passare attraverso array e quindi l'uso di cicli sulla funzione mysql_fetch_array??

    Intanto vi ringrazio tutti quanti!!

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.