Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439

    [php] trasporto dei nomi delle variabili fuori dal ciclo mysql_fetch_array

    Codice PHP:
        $row_add mysql_fetch_array ($sql_add);
        foreach (
    $row_add as $key => $val) {
            $
    $key stripslashes ($val);
        } 
    Salve a tutti,
    con questo script porto fuori dall'array i nomi delle variabili, ad esempio
    $row_add['ma_id]
    $row_add['ma_nome']
    $row_add['ma_cognome']
    diventano
    $ma_id
    $ma_nome
    $ma_cognome

    La domanda è posso in qualche modo escludere la desinenza iniziale che è inclusa in tutti i nomi?
    ossia far diventare quei nomi in $id, $nome e $cognome senza necessariamente usare AS nell'SQL?
    わさび

  2. #2
    Certamente.

    Usa l'indice numerico invece di quello associativo. L'ordine e' quello della posizione nel select oppure quello in tabella se fai select *

    Direi anche che se utilizzi un foreach e' meglio che non usi mysql_fetch_array perche' si porta entrambi gli indici. meglio _assoc oppure _row

    Anzi non userei proprio il foreach sulla tupla. C'erano pure dei bug che se in caso di campo NULL saltavano il campo a pie' pari.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da piero.mac
    Certamente.

    Usa l'indice numerico invece di quello associativo. L'ordine e' quello della posizione nel select oppure quello in tabella se fai select *

    Direi anche che se utilizzi un foreach e' meglio che non usi mysql_fetch_array perche' si porta entrambi gli indici. meglio _assoc oppure _row

    Anzi non userei proprio il foreach sulla tupla. C'erano pure dei bug che se in caso di campo NULL saltavano il campo a pie' pari.

    Grazie piero.mac x la risposta, ma credo di non avere capito.
    Ok sull'evitare il foreach, ma io intendevo dire se ho nel database tutti campi preceduti da una desinenza (in questo caso ma_), è possibile eliminarla quando associo i nomi alle variabili? Non riesco a capire come fare con l'_assoc e il _row...
    :master:
    わさび

  4. #4
    Originariamente inviato da Trinità76
    Grazie piero.mac x la risposta, ma credo di non avere capito.
    Ok sull'evitare il foreach, ma io intendevo dire se ho nel database tutti campi preceduti da una desinenza (in questo caso ma_), è possibile eliminarla quando associo i nomi alle variabili? Non riesco a capire come fare con l'_assoc e il _row...
    :master:
    Nell'array che prelevi dal result set con mysql_fetch_array() gli indici (e risultati) sono duplicati, cioe' sono presenti sia con indice associativo sia con indice numerico.
    Quindi scorrere l'array con foreach e' poco indicato.

    Questa era una delle cose.

    Per cambiare il nome del campo senza fare cose strane hai due modi:

    Uno e' l'alias che utilizzi gia' e l'altro e' quello di estrarre i valori dentro una tua variabile col nome che ti pare. Preferirei decisamente questo secondo modo.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da piero.mac
    Nell'array che prelevi dal result set con mysql_fetch_array() gli indici (e risultati) sono duplicati, cioe' sono presenti sia con indice associativo sia con indice numerico.
    Quindi scorrere l'array con foreach e' poco indicato.

    Questa era una delle cose.

    Per cambiare il nome del campo senza fare cose strane hai due modi:

    Uno e' l'alias che utilizzi gia' e l'altro e' quello di estrarre i valori dentro una tua variabile col nome che ti pare. Preferirei decisamente questo secondo modo.
    Come secondo modo tu faresti magari con un _row associando una ad una le variabili? Ci avevo pensato ma mi chiedevo se ci fosse una scorciatoia per formare automaticamente quei nomi eliminando la desinenza che è sempre uguale.

    cmq thanx
    わさび

  6. #6
    Originariamente inviato da Trinità76
    Come secondo modo tu faresti magari con un _row associando una ad una le variabili? Ci avevo pensato ma mi chiedevo se ci fosse una scorciatoia per formare automaticamente quei nomi eliminando la desinenza che è sempre uguale.

    cmq thanx
    userei mysql_fetch_assoc() oppure mysql_fetch_row() e passerei i valori in una variabile da me definita.

    Se i nomi di campo fossero stringhe, potresti usare le funzioni di manipolazione stringa. Ma sono nomi di campo/indice/variabile e non vedo altro modo se non rinominarli.
    codice:
    $row_add = mysql_fetch_row($sql_add); 
    
    $nome = $row_add[0];
    $cognome = $row_add[1];
    che c'e di piu' pulito di cosi'?


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da piero.mac
    codice:
    $row_add = mysql_fetch_row($sql_add); 
    
    $nome = $row_add[0];
    $cognome = $row_add[1];
    che c'e di piu' pulito di cosi'?

    C'hai raggio! Tanto escono nell'ordine in cui sono nella tabella e così mi risparmio pure il for each.
    Grazie 1000
    わさび

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.