Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074

    strana duplicazione di un dato

    Mi capita una cosa strana: richiamo dei dati da un db MySql, con questo codice:
    Codice PHP:
    $result mysql_query("SELECT * FROM `artdata` GROUP BY name");
    while (
    $row mysql_fetch_array($result)) {
    $name $row["name"];
    $name2 str_replace("§","'","$name");
    $nation $row["nation"];
    if (
    $nation !== "") {
    $nation2 $nation;
    } else {
    $nation2 "unknown";
    }
    echo 
    "Artist: [b]<font color=\"#FF6600\">" $name2 "</font>[/b] ([i]" $nation2 "[/i])
    "
    ;
            
    $result1 mysql_query("SELECT * FROM `artdata` WHERE name = '$name'");
            while (
    $row1 mysql_fetch_array($result1)) {
            
    $vid $row1["video"];
            if (
    $row1["edition"] == 1) {
            echo 
    "Video: [b]" $vid  "[/b] - [i]<font color=\"#666666\">(1st edition)</font>[/i]";
            } else if (
    $row1["edition"] == 2) {
            echo 
    "Video: [b]" .  $vid "[/b] - [i]<font color=\"#666666\">(2nd edition)</font>[/i]";
            }
            
    $winn $row1["winner"];
            if (
    $winn == "yes") {
                echo 
    " ([b]selected[/b])
    "
    ;
                } else {
                echo 
    "
    "
    ;
            }
        }
    echo 
    "
    "
    ;

    Funziona tutto bene, con una eccezione: un dato, uno solo!, viene duplicato. Ovvero, uno dei nominativi inseriti nel db viene presentato due volte di seguito nella pagina.
    Per la precisione, la pagina presenta questa sequenza:
    Artist: Giles Fabian (unknown)
    Video: Acapulco - (2nd edition)
    Video: Pemex night - (2nd edition)
    Video: Don Julio - (2nd edition)
    Video: Loonass - (2nd edition)

    Artist: Giles Fabian (unknown)
    Video: Acapulco - (2nd edition)
    Video: Pemex night - (2nd edition)
    Video: Don Julio - (2nd edition)
    Video: Loonass - (2nd edition)
    Nel database, non c'è niente di particolare, o che distingua questo dato da tanti altri. Per ciascuna riga, è presente il numero progressivo di id (rispettivamente, 21-22-23-24), il nome (campo name), la mail (campo mail), il riferimento all'edizione (campo edition). Niente di diverso da cento (oltre 400, per la precisione) altri dati.
    E allora perchè proprio questo viene duplicato?
    metatad
    graphic & web design

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    1,611
    tanto per cambiare c'è un errore alla sesta riga...

    il diverso è così !=

    no

    !==

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    al di la del fatto che, se non vado errato, != è diverso mentre !== è assolutamente diverso (e infatti, funziona), questo non spiegherebbe il problema segnalato...
    metatad
    graphic & web design

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    346
    Potrebbe non essere un problema di codice, ma semplicemente il problema potrebbe essere dato dal fatto che nel db ci sia proprio una ridondanza di quel dato.
    La chiava primaria è il nome o l'id? prova a fare la query nel mysql e vedi cosa ti restituisce.
    se le righe sono due...vuol dire che ci sono due righe identiche con id diversi.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    É quello che ho pensato anch'io, all'inizio...
    però, se faccio una query da PhpMyAdmin, dando come chiave sul name like % %, ed inserendo come valore Giles (il cognome), mi restituisce solo quei quattro result, senza alcuna duplicazione...
    É per questo che divento matto!...
    metatad
    graphic & web design

  6. #6
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da metatad
    É quello che ho pensato anch'io, all'inizio...
    però, se faccio una query da PhpMyAdmin, dando come chiave sul name like % %, ed inserendo come valore Giles (il cognome), mi restituisce solo quei quattro result, senza alcuna duplicazione...
    É per questo che divento matto!...
    E perché fai la query con like? Nel codice che hai postato non c'è...

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    infatti, ho scritto che la faccio direttamente nel db, attraverso l'interfaccia di PhpMyAdmin...
    metatad
    graphic & web design

  8. #8
    non capisco perchè fai due query... poi io le selezioni le farei per id....

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Forse non mi spego... quando ho visto che mi duplicava i dati relativi ad una persona, sono andato in PhpMyAdmin ed ho fatto un controllo, per vedere se per caso era stato duplicato nel db; per fare questo, ho fatto una ricerca con la funzione 'cerca', in base al nome. Ed è risultato che non c'è alcuna duplicazione. Sono stato più chiaro?
    Quindi non ho fatto due query...
    Nella pagina php, c'è una query (quella del primo post); per verificare la sussistenza di un eventuale duplicato, ne ho fatta un'altra in PhpMyAdmin (senza, quindi, dover fare una diversa codifica php - mi sembra più semplice e diretto).
    In ogni caso, magari il codice php non sarà il top, però funziona. Per tutti i 430 video contenuti, tranne che per quello...
    É solo questa anomalia, che vorrei capire e rimuovere...
    metatad
    graphic & web design

  10. #10
    Io dicevo questa query:

    Codice PHP:
    $result mysql_query("SELECT * FROM `artdata` GROUP BY name"); 
    e questa query qui:

    Codice PHP:
    $result1 mysql_query("SELECT * FROM `artdata` WHERE name = '$name'"); 
    io ne avrei usata una sola dato che i dati sn contenuti nella stessa tabella...
    Anche se avrei utilizzato due tabelle diverse per le associazioni...

    Per curiosità... il record che visualizza due volte è il primo che appare?

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.