Visualizzazione dei risultati da 1 a 9 su 9

Discussione: select

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    417

    select

    devo creare una select mysql complicata e non saprei da che parte cominciare, mi spiego:

    ho dei record di dieci campi ciascuno con inseriti in ogni campo dei numeri che vanno da 1 a 30 (tutti i record sono diversi).

    ho un form nel quale vengono inseriti 5 numeri che vanno da 1 a 30.

    adesso devo fare una select che mi trovi i record che contengono questi 5 numeri e mi comunichi l'id corrispondente.

    dopo questa estrapolazione di dati devo fare delle operazioni statistiche.

    mi potete aiutare?
    grazie.

  2. #2
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221

    Re: select

    Originariamente inviato da luigi45
    ho un form nel quale vengono inseriti 5 numeri che vanno da 1 a 30.

    adesso devo fare una select che mi trovi i record che contengono questi 5 numeri e mi comunichi l'id corrispondente.
    che c'è di complicato? è una query normalissima

    codice:
    SELECT id FROM tabella WHERE campo1='5' AND campo2='34' AND campo3='12' AND campo4='26' AND campo5='8'
    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    417
    es il campo1 puo essere da 1 a 30 cosi come il campo2 ecc,

    mel form inserisco es 1, 5, 8, 15, 30 e nel db mi deve trovare un record ( se esiste) che abbia i cinque numeri che siano presenti in cinque campi diversi
    es un record puo avere nei 10 campi 2, 8, 11, 15, 22, 24, 25, 27. 29, 30 e deve risultare errato altro record puo avere nei 10 campi 1, 4, 5, 7, 8, 10, 15, 17, 23, 30 ed è esatto.

    non importa in che campo si trovano i numeri importante che ci siano.

    mi sono spiegato meglio?
    grazie

  4. #4
    i dati come sono scritti nel database?

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    417
    il record e cosi scritto
    id, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10.

    vengono inseriti da un pannello di controllo e sono sempre diversi (diverse combinazioni).

    un utente mettendo 5 numeri deve trovare tutte le combinazioni che contengono quei determinati numeri..

    grazie

  6. #6
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    se ho capito bene quello che ti serve devi crearti un campo virtuale che contenga tutti e 10 i campi e poi fai il controllo su quello.

    codice:
    SELECT id,concat_ws("|","",a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,"") AS campo FROM tabella HAVING campo LIKE "%|30|%" AND campo LIKE "%|2|%" AND campo LIKE "%|4|%" AND campo LIKE "%|18|%" AND campo LIKE "%|9|%"
    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    417
    solo adesso riesco a riprendere il lavoro, ho cercato di fare come dice las ma non riesco a farlo funzionare, posto quanto ho fatto:
    <?php
    include "connect.php";
    $result = mysql_query("SELECT id,CONCAT_WS('|',uno,due,tre,quattro,cinque,sei,se tte,otto,nove,dieci,undici,dodici,tredici,quattord ici,quindici,sedici,diciassette,diciotto,dicianove ,venti) as campo FROM locale HAVING campo LIKE '%|5|%' AND campo LIKE '%|10|%' order by id desc limit 1");
    while($row = mysql_fetch_array($result)){
    echo $row['id'];
    }
    ?>
    poi vado a vedere se funziona e mi spunta:

    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in .......... on line 13
    mi dici dove sbaglio? grazie

  8. #8
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    sembra che non stia eseguendo la query, prova a mettere un mysql_error e vediamo cosa ti dice:

    Codice PHP:

    <?php
    include "connect.php";
    $result mysql_query("SELECT id,CONCAT_WS('|','',uno,due,tre,quattro,cinque,sei,sette,otto,nove,dieci,undici,dodici,tredici,quattordici,quindici,sedici,diciassette,diciotto,dicianove,venti) as campo FROM locale HAVING campo LIKE '%|5|%' AND campo LIKE '%|10|%' order by id desc limit 1") or die ("Errore: ".mysql_error());
    while(
    $row mysql_fetch_array($result)){
    echo 
    $row['id'];
    }
    ?>


    P.S. attenzione che in CONTACT_WS devi mettere come prima cosa dpo il "|" un campo vuoto, serve per fare in modo che metta il pipe davanti anche al primo campo
    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    417
    GRAZIE MILLE
    è perfetto funziona benissimo avevo sbagliato il nome di un campo mysql_error() me lo ha indicato.
    Luigi

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