[MySQL] Sostituire valori campi con dati casuali

elpirata

Utente Attivo
18 Mar 2009
263
7
18
Buongiorno a tutti,
ho una tabella di un database strutturata in questo modo:

Codice:
CREATE TABLE `appuntamenti` (
  `id_app` int(11) NOT NULL,
  `cliente` varchar(50) DEFAULT NULL,
  `gestore` varchar(50) DEFAULT NULL,
  `veicolo` varchar(20) DEFAULT NULL,
  `data` date DEFAULT NULL,
  `ora` varchar(10) DEFAULT NULL,
  `tlav` int(11) NOT NULL,
  `stato_pren` varchar(50) DEFAULT NULL,
  `tipo_pren` varchar(50) NOT NULL,
  `tipo_lavorazione` varchar(30) NOT NULL,
  `telefono` varchar(50) DEFAULT NULL,
  `note` longtext,
  `email` varchar(50) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
la tabella contiene 2664 record, avrei la necessità di sostituire i valori contenuti nel campo `telefono` con valori casuali, in sostanza devo inserire dei numeri telefonici inventati, la stessa cosa dovrei fare per il campo `cliente` che contiene un nome e cognome

Spero anzitutto di aver scritto nella sezione corretta e se cosi non fosse mi scuso anticipatamente

Grazie
 

elpirata

Utente Attivo
18 Mar 2009
263
7
18
Ho provato in questo modo, ma non funziona, anche perchè a me immagino serva una query di update e non insert :(

PHP:
<?php

// BLOCCO CODICE CONNESSIONE DATABASE
$host = 'localhost';
$user = 'user';
$pass = 'password';
$db = 'database';

$mysqli = new mysqli("$host", "$user", "$pass", "$db");

$insert_rows = 2664; //il numero di righe che vogliamo inserire

$abc= array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"); // per generare nomi random
$num= array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9"); // per generare numeri random

// supponiamo che hai una tabella 'rubrica' coi campi 'id', 'nome', 'telefono'

for ($i=0; $i<$insert_rows; $i++)
{
   $cliente=''; // azzeriamo il nome
   $telefono=''; // azzeriamo il telefono

   $cliente_long1 = rand(5,10); // la lunghezza del nome in modo random, tra 5 e 10 lettere
   $cliente_long2 = rand(6,12); // la lunghezza del cognome in modo random, tra 6 e 12 lettere

   for($j=0;$j<$cliente_long1;$j++){ $cliente .= $abc[rand(0,count($abc)-1)]; } //genera il nome
   $cliente .= ' '; //aggiunge uno spazio
   for($j=0;$j<$cliente_long2;$j++){ $cliente .= $abc[rand(0,count($abc)-1)]; } //genera il cognome

   for($j=0;$j<10;$j++){ $telefono .= $num[rand(0,count($num)-1)]; } // genera il telefono di 10 cifre

   mysqli_query ("insert into appuntamenti ('id_app','cliente','gestore','veicolo','data','ora','tlav','stato_pren','tipo_pren','tipo_lavorazione','telefono','note','email') values ('','".ucwords($cliente)."','".$gestore."','".$veicolo."','".$data."','".$ora."','".$tlav."','".$stato_pren."','".$tipo_pren."','".tipo_lavorazione."','".$telefono."','".$note."','".$email."'"); // la query dell'insert
}

?>
 

elpirata

Utente Attivo
18 Mar 2009
263
7
18
Ciao Borgo Italia,
hai compreso perfettamente la mia esigenza. I dati esistono già in tabella, saresti cosi gentile da postarmi la parte da modificare per trasformare lo script da insert ad update ?

P.S
Un altra cosa, vorrei far in modo che i numeri di telefono di 10 caratteri inizino per 3

Grazie mille per la disponibilità
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
146
63
PR
www.borgo-italia.it
ciao
prova qualcosa del genere, comunque verifica i vari nomi campi e tabella che ho messo, devi mettere i tuoi, verifica anche la varie lunghezze nome e telefono se sono quelle che ti servono
PHP:
<?php
function nome(){//genera un nome cognome casuale
    $nome_lungo=rand(5,8);
    $conome_lungo=rand(6,10)-1;
    $tot=$nome_lungo+$conome_lungo;
    $nome_cognome="";
    for($k=0; $k<$tot;$k++){
        if($k!=$nome_lungo){
            $nome_cognome.=chr(rand(97,122));//genera casuale abc....xyz
        }else{
            $nome_cognome.=" ";//divide nome da cognome
        }
    }
    return ucwords($nome_cognome);// da aaaa bbbbb a Aaaa Bbbbb
}
function telefono(){//genera numero tel casuale che inizia per 3
    $telefono="";
    for($k=0;$k<9;$k++){ $telefono.=rand(0,9);}    //genera casuale 9 cifre
    return "3".$telefono;//inizia per 3
}

//dati di connessione

$query_1="SELECT id FROM utenti ORDER BY id";
$ris_1=mysqli_query($conn, $queryi);
while($riga=mysqli_fetch_assoc($ris_1)){
    $id=(int)$riga['id'];
    $query_2="UPDATE utenti SET nome='".nome()."', telefono='".telefono()."' WHERE id=".$id;
    $ris_2=mysqli_query($conn, $query_2);
}
//ecc quello che poi ti serve
?>