Visualizzazione dei risultati da 1 a 7 su 7

Discussione: risultato querydiversi

  1. #1

    modifica risultato utilizzando mysql_fetch_array

    Ciao,

    passando subito al dunque ecco il codice:

    Codice PHP:
    $query="SELECT * FROM tabella WHERE id='$id'";
    $result mysql_query($query,$db);
    $row mysql_fetch_array($result);

    for(
    $i=0;$row[$i]!=FALSE;++$i)
      
    $row[$i]=addslashes($row[$i]); 
    Con questo codice volevo far si che in tutti i campi di "tabella" venissero applicati i backslashes, affinche poi facendo una query di UPDATE i ' non mi dessero problemi.

    Il fatto e' che $row[0] <=> $row[pippo] non hanno lo stesso valore.
    $row[0] ha gli backslashes mentre $row[pippo] no, eppure sono lo stesso campo.

    Ora e' un "bug" di php oppure non si puo' fare il seguente giochetto pur avendo scelto mysql_fetch_array?

    Attendo delucidazioni

  2. #2
    mysql_fetch_array() ti fornisce il result set doppio, cioe' sia con l'indice associativo e sia con l'indice numerico.

    quindi:

    $row['pippo'] = indice associativo che indica il nome del campo
    $row[0] = indice numerico dove 0 indica il primo campo estratto

    Puoi usare mysql_fetch_row() per avere "solo" l'indice numerico, oppure mysql_fetch_assoc() per avere "solo" l'indice associativo.


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

  3. #3
    Infatti io nell'utilizzare array voglio proprio sfruttare i due.

    Non volendo scrivere tutta la "spatafiata" di:

    Codice PHP:
    $row[pippo]=addslashes($row[pippo]);
    $row[pippo2]=addslashes($row[pippo2]);
    $row[pippo3]=addslashes($row[pippo3]);
    ... 
    ho utilizzato mysql_fetch_array() per poter utilizzare un incremnto dell'indice. Ma volendo poi usare nel mio script $row[pippo] che, nel seguente esempio, sarebbe $row[0].

  4. #4
    Diciamo che non ho capito la domanda.

    Se estrai dal campo si suppone che gia' ci sia il carattere di escape, altrimenti avresti i dati troncati. Quindi per quale ragione aggiungerne un secondo?

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

  5. #5
    [supersaibal]Originariamente inviato da piero.mac
    Diciamo che non ho capito la domanda.

    Se estrai dal campo si suppone che gia' ci sia il carattere di escape, altrimenti avresti i dati troncati. Quindi per quale ragione aggiungerne un secondo? [/supersaibal]
    No, io dopo queste righe

    Codice PHP:
    $query="SELECT * FROM tabella WHERE id='$id'"
    $result mysql_query($query,$db); 
    $row mysql_fetch_array($result); 
    ho il seguente risultato (ad. es.)

    $row[pippo]=$row[0]="come e' bella la vita"

    dopo queste righe ho:

    Codice PHP:
    for($i=0;$row[$i]!=FALSE;++$i
      
    $row[$i]=addslashes($row[$i]); 
    $row[pippo]="come e' bella la vita"
    $row[0]="come e\\' bella la vita"

    io dopo dovrei fare il seguente codice:

    Codice PHP:
    $query="INSERT INTO tabella2 (campo) VALUES ('$row[pippo]')";
    ... 
    Spero di essere fatto capire ora

  6. #6
    Allora non mi sono spiegato io. Hai DUE indici uno numerico e l'altro associativo. Se modifichi il numerico devi inserire il numerico. Se l'orologio lo hai a sinistra ti sogneresti mai di guardare la mano destra?

    Doppio risultato significa due righe diverse con ognuna il propio indice e non una sola riga con due indici diversi....

    That's all....


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

  7. #7
    UHM oky, mo e' tutto chiaro

    Io pensavo che modificando $row[0] automaticamente php modificava anche $row[pippo], pensando che fossero legati tra loro (row)

    Thnks mille, e fa piacere trovare qualcuno disponibile anche a quest'ora

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.