Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [MySQL]Ciclo di query

  1. #1

    [MySQL]Ciclo di query

    Salve a tutti, ho una tabella X con la seguente struttura:

    id | nome | madre

    e compilata così:

    1 | Primo | NULL
    2 | Secondo | 1
    3 | Terzo | 2
    4 | Quarto | 3
    5 | Quinto | NULL
    6 | Sesto | 5

    Dovrei estrapolare da essa tutti i campi relativi al primo record (in questo caso), ovvero se notate il record con ID 2 è collegato a 1 (madre = ID), il 3 al 2, il 4 al 3, mentre il 6 al 5 e il 5 a nulla.

    Quindi, come detto sopra, dovrei ottenere tutti i campi relativi al primo record (ovviamente potrebbero esser anche in posizioni diverse) e il cui numero mi è sconosciuto.
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,509
    Vuoi i dati del primo record elencato nella tabella (qualunque esso sia) oppure del record con nome "Primo" (ovunque esso sia nella tabella)?

    E' un po' ambigua la tua spiegazione.

    Ad ogni modo è una domanda da sezione "Database" non PHP.

  3. #3
    Non mi sembrava complicata la spiegazione... Vorrei ottenere tutti i record collegati al primo tramite la colonna "madre".

    Una query per fare ciò restituirebbe gli ID 2,3,4, dato che 4 è collegato a 3 che è collegato a 2 che infine è collegato ad 1 (e qui c'è il collegamento che genera tutto)
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  4. #4
    Ciao,
    come hai indicato nell'oggetto del topic... dovresti fare un ciclo o con una procedure mysql o tramite il linguaggio di programmazione server/client che stai utilizzando.

    All'incirca, dopo le opportune modifiche/aggiunte/gestione degli errori, dovrebbe essere simile a questo.
    codice:
    V_ID= 4
    TROVATO_1 = FALSE 
    TROVATO_MADRE=TRUE
    
    while TROVATO_1 = FALSE and TROVATO_MADRE=TRUE -- AND clicli<10 
    
    	SELECT MADRE FROM TBX WHERE ID=V_ID--4
    	
    	IF MADRE=NULL THEN 
    		TROVATO_MADRE = FALSE
    	ELSE
    		IF MADRE=1 THEN 
    			TROVATO_1=TRUE
    		END IF
    		TROVATO_MADRE = TRUE
    		V_ID=MADRE
    	END IF
    
    LOOP
    lo stesso ciclo per tutti i record

    Ciao
    Mik

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.