Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074

    problema complesso di selezione da db

    Nella tabella del db, ho dieci campi:
    testo1, testo2, testo3, testo4, testo5, testo6, testo7, testo8, testo9, testo10
    ed altri dieci:
    ctrl1, ctrl2, ctrl3, ctrl4, ctrl5, ctrl6, ctrl7, ctrl8, ctrl9, ctrl10
    I campi 'testo' possono contenere tutti e dieci dei dati (come minimo, 5), mentre solo cinque campi 'ctrl' hanno un medesimo valore ('OK').
    In pratica, quello che devo fare, e selezionare i cinque campi 'testo' corrispondenti ai cinque campi 'ctrl' con valore 'OK'.
    Ad esempio:
    ctrl1 = OK -> testo1
    ctrl2 = OK -> testo2
    ctrl3 = ->
    ctrl4 = OK -> testo4
    ctrl5 = ->
    ctrl6 = OK -> testo6
    ctrl7 = ->
    ctrl8 = ->
    ctrl9 = OK -> testo9
    ctrl10 = ->
    Dato che le combinazioni possibili sono troppe, cosa mi suggerite?

  2. #2
    non ho capito bene come hai strutturato la tabella, ma così è un casino. usa 2 tabelle con e legale con vari id e le JOIN IMHO
    debian:~$ uname -r
    2.6.18-1-686
    debian:~$

    Il quiz manager è nato!!! visitate http://shenk.altervista.org !!

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    scusa, potresti essere più chiaro? quale sarebbe il vantaggio di avere i dati in due diverse tabelle, e - comunque - come dovrei gestire la comparazione dei dati?
    ripeto, il mio problema è:
    ho dieci diversi campi-dati, e devo far si che ciascun utente ne visualizzi solo 5; questi cinque, sono determinati dall'attribuzione di un valore-chiave, registrato in altri dieci campi. per cui, se i primi dieci sono a1, a2, a3, a4, a5, etc., avrò poi altrettanti b1, b2, b3, b4, b5... se - ad es. - b1 ha valore 'ok', allora a1 sarà uno dei cinque campi richiamati, e così via fino a cinque.
    spero d'esser stato più chiaro...

  4. #4
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Nella query leggi tutto, poi fai così:

    codice:
    $ok = 0;
    for ($i=1;$i<=10;$i++) {
       $ctrl = 'ctrl' . $i;
       if ($riga[$ctrl]) == 'OK') {
          $testo = 'testo' . $i;
          //...qui fai quello che vuoi con $riga[$testo]
          $ok++;
          if ($ok==5) break;
       }
    }
    Ovviamente $riga è la variabile che contiene la riga letta dal db.
    Comunque ha ragione Shenk, hai strutturato malissimo la tabella. Fai qualche ricerca sulla normalizzazione dei dati.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    dove posso fare questa ricerca, nel forum? o ti riferiva ad altre fonti?
    grazie comunque per il suggerimento...

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.