Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Curiosità su query

  1. #1
    Utente di HTML.it L'avatar di Atrus
    Registrato dal
    May 2003
    Messaggi
    211

    Curiosità su query

    Ho una tabella di un DB mySQL.
    Nessun ID con chiave primaria, nessun campo auto_increment.

    Supponiamo che io abbia questi due campi:

    Id: 10
    Email: info@pippo.it
    Gruppo: 2

    Id: 10
    Email: info@pippo.it
    Gruppo: 3

    Se io faccio partire questa query:
    UPDATE tab SET Email = [miamail] WHERE id = 10
    mi si aggiornano tutti i campi che hanno 10 come id? O si impalla tutto...?
    Gia...a me si impalla tutto....
    Ora ricordo perchè ho visitato questi mondi...
    Quanto tempo ho atteso...
    Ricordo chi sono io e chi sono i miei nemici.

  2. #2

    Re: Curiosità su query

    Originariamente inviato da Atrus
    Ho una tabella di un DB mySQL.
    Nessun ID con chiave primaria, nessun campo auto_increment.

    Supponiamo che io abbia questi due campi:

    Id: 10
    Email: info@pippo.it
    Gruppo: 2

    Id: 10
    Email: info@pippo.it
    Gruppo: 3

    Se io faccio partire questa query:
    UPDATE tab SET Email = [miamail] WHERE id = 10
    mi si aggiornano tutti i campi che hanno 10 come id? O si impalla tutto...?
    Gia...a me si impalla tutto....
    non si dovrebbe impallare, semplicemente cambia la mail in [miamail] per tutte le tuple con id 10.
    Se vuoi cambiare la mail solo x un certo numero max di tuple, oppure solo per la prima occorrenza, puoi aggiungere LIMIT.

    es. UPDATE tab SET Email = [miamail] WHERE id = 10 LIMIT 1
    fa l'aggiornamento della mail di una sola riga

  3. #3
    Utente di HTML.it L'avatar di Atrus
    Registrato dal
    May 2003
    Messaggi
    211
    A me purtroppo si blocca, e non capisco il perchè. Il risultato è una pagina bianca su safari.
    Posto qui sotto il codice, sono poche righe elementari:

    Codice PHP:
    $stringa "SELECT * FROM UTENTI";
    $results mysql_query ($stringa$db) or die(mysql_error());

    while (
    $records mysql_fetch_array($results)) {
    $id $records ['ID'];
    $email $records ['EMAIL']; 

    $update mysql_query ("UPDATE INTERESSI SET email = '$email' WHERE id = '$id'"$db) or die(mysql_error()); 


    E' giusto?
    Ora ricordo perchè ho visitato questi mondi...
    Quanto tempo ho atteso...
    Ricordo chi sono io e chi sono i miei nemici.

  4. #4
    Originariamente inviato da Atrus
    A me purtroppo si blocca, e non capisco il perchè. Il risultato è una pagina bianca su safari.
    Posto qui sotto il codice, sono poche righe elementari:

    Codice PHP:
    $stringa "SELECT * FROM UTENTI";
    $results mysql_query ($stringa$db) or die(mysql_error());

    while (
    $records mysql_fetch_array($results)) {
    $id $records ['ID'];
    $email $records ['EMAIL']; 

    $update mysql_query ("UPDATE INTERESSI SET email = '$email' WHERE id = '$id'"$db) or die(mysql_error()); 


    E' giusto?

    mah, è strano, nn si dovrebbe bloccare :master:

    cmq potrebbe essere un problema di query annidate, non so perchè ma una volta ebbi un problema simile; prova a fare query in ordine lineare:

    Codice PHP:
    $stringa "SELECT * FROM UTENTI";
    $results mysql_query ($stringa$db) or die(mysql_error());

    while (
    $records mysql_fetch_array($results)) {
        
    $ids[] = $records ['ID'];
        
    $emails[] = $records ['EMAIL']; 
    }

    for (
    $i=0$i<count($ids); $i++) {
       
    $id $ids[$i];
       
    $email $emails[$i];
       
    $update mysql_query ("UPDATE INTERESSI SET email = '$email' WHERE id = '$id'"$db) or die(mysql_error()); 


    p.s. mettendo LIMIT 1 cosa succede?
    p.p.s. hai provato con un altro browser? (con altri browser potrebbe dare un errore invece di bloccarsi)

  5. #5
    Utente di HTML.it L'avatar di Atrus
    Registrato dal
    May 2003
    Messaggi
    211
    cicciox80 con il tuo codice mi da questo errore:

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'info@mail.com' WHERE id = '88'' at line 1

    Ideas?
    Ora ricordo perchè ho visitato questi mondi...
    Quanto tempo ho atteso...
    Ricordo chi sono io e chi sono i miei nemici.

  6. #6
    Utente di HTML.it L'avatar di Atrus
    Registrato dal
    May 2003
    Messaggi
    211
    Originariamente inviato da cicciox80
    p.s. mettendo LIMIT 1 cosa succede?
    Errore:
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'info@mail.com WHERE id = 1768 LIMIT 0,1' at line 1

    Ho provato anche inserendo LIMIT 1:
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'info@mail.com WHERE id = 1768 LIMIT 1' at line 1

    Ora ricordo perchè ho visitato questi mondi...
    Quanto tempo ho atteso...
    Ricordo chi sono io e chi sono i miei nemici.

  7. #7
    metteresti un echo('$query') prima di eseguire la query?
    Così vediamo bene la sintassi

  8. #8
    Utente di HTML.it L'avatar di Atrus
    Registrato dal
    May 2003
    Messaggi
    211
    lol trovato l'errore mannaggia...
    Non do la cosa sicura al 100%, ma siccome sto facendo questa operazione su 1600 record non ho avuto il tempo di verificare se le email erano valide.

    Mi ha dato errore nel campo prima di questa mail:
    milena.d'aria@dominio.com

    E' l'apostrofo vero che da fastidio?
    C'è un modo per far copiare ugualmente la mail così com'è?

    Grazie Cicciox80
    Ora ricordo perchè ho visitato questi mondi...
    Quanto tempo ho atteso...
    Ricordo chi sono io e chi sono i miei nemici.

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.