Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Problema con array

  1. #1

    Problema con array

    Buona sera,
    è un giorno che cerco di costruire uno script che riceva tutta la colonna del campo "id" di una tabella e trovi il primo buco libero.
    Cioè se la colonna ha i numeri: 1,2,3,5,6,7 vorrei uscirne con una variabile "$i" che ha come valore "4" e non "8".
    Io ho sviluppato questo, però non riesco a capire perchè certe volte non funziona bene, forse sbaglio qualche cosa nell'uso degli array.
    ------------
    $sql = "SELECT `id` FROM `tabella` WHERE 1 ORDER BY `id_veicolo` ASC";
    include 'connessione.php';
    $lettura_risultati=mysql_query($sql); // carico tutti gli id già presenti nella tabella
    include 'chiudi_connessione.php';
    while( $riga_temporanea = mysql_fetch_array($lettura_risultati) ):
    $id = $riga_temporanea['id'];
    $array[] = $id; // carico tutti gli id nell'arrey
    endwhile;

    $i = 1;

    while( in_array($i, $array) ):
    $i++;
    endwhile;

    $id = $i; // assegno a "$id" il primo numero non presente in $array
    // fine decisione nuovo id da inserire in tabella
    -- utente Kubuntu --

  2. #2
    1. Scusa ma sono pignolo. All'inizio dello script inizializza l'array in questo modo$array = array();

    2. Ti potrebbe essere utile stampare a video il contenuto dell'array in modo da vedere se al suo interno c'è quello che ti aspetti.

    In ogni caso sono un po' perplesso. La caratteristica fondamentale di una chiave primaria è quella di essere univoca. Una delle caratteristiche dell'univocità è la non riassegnazione di una chiave anche se questa è teoricamente disponibile, dunque MySql di suo non lo fa. Mi domando che senso può avere forzare questa cosa. Sarebbe come comperare una birra senz'alcol e poi aggiungerci l'alcol a casa
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  3. #3
    Non so come stampare il contenuto di un array, ho seguito sul manuale, ma poi non ha funzionato.
    Forse perchè l'output del php io lo vedo tramite un browser e forse non era formattato per lui. Esiste un modo diverso per vederlo? Come si fa a stampare un array?

    In ultimo io cerco di riassegnare l' "id" per poter far si che non vada in overflov a furie di togliere e mettere righe all'interno della tabella.
    E' anche vero che in effetti un int(11) tiene un numero molto grande, ma quando arriva al numero massimo cosa succede?? Poi come riorganizzo le varie tabelle, visto che sono collegate tra di loro con delle foreign key?
    Ci sono dei metodi che io non conosco?
    -- utente Kubuntu --

  4. #4
    per visualizzare iul contenuto dell'array usa

    print_r($array)

    usalo solo per ild ebug in quanto consente di "capire" come è stato strutturato l'array

  5. #5
    Originariamente inviato da Geppo Hylar

    In ultimo io cerco di riassegnare l' "id" per poter far si che non vada in overflov a furie di togliere e mettere righe all'interno della tabella.
    E' anche vero che in effetti un int(11) tiene un numero molto grande
    In effetti sono cento miliardi di record.

    Con un record al secondo ne avresti per 3170 anni (giorno più giorno meno). Guarda un po' tu
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  6. #6
    E che se tra 3170 mi va in overflow e sfiga vuole che capita proprio di domenica, non mi va di rovinarmela per mettere a posto la tabella
    Ok Maurizio lascio perdere, ma ci vediamo tra 3170 che mi aiuti a mettere a posto la tabella se va in overflow

    PS Bello il tuo avatar, credevo che il mio era carino, ma dopo aver visto il tuo mi sono ricreduto
    -- utente Kubuntu --

  7. #7
    Originariamente inviato da Emulman
    per visualizzare iul contenuto dell'array usa

    print_r($array)

    usalo solo per ild ebug in quanto consente di "capire" come è stato strutturato l'array
    Grazie emulman così me lo ha stampato!! funziona
    Non mi ha dato risposte utili, anzi conferma il fatto inspiegabile, ma almeno vedo che appunto carica bene l'array
    ari
    -- utente Kubuntu --

  8. #8
    Originariamente inviato da Geppo Hylar
    E che se tra 3170 mi va in overflow e sfiga vuole che capita proprio di domenica
    Tra 3170 anni non ci sarà più la domenica non ci sarà più MySql ne PHP, probabilmente non ci saranno più i computer e magari non ci sarmo più nemmeno noi
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

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.