Vous n'êtes pas identifié(e).
Bonjour à tous,
je viens de finir de gérer une base avec 9000 entrée, et je me pose une question technique.
Comment je peux faire pour transcrire cela :
UPDATE matable SET valid = 1 WHERE valid = 0 ;
De façon à ce que seulement une centaine d'entrée soit passé à 1 mais de façon aléatoire. Fonction RAND() ?
Merci d'avance.
Hors ligne
Saluton,
Je te conseillerais de passer par une table temporaire dans laquelle tu auras importé 100 identifiants au hasard de ta table cible correspondant au critère valid=0, puis de faire ton UPDATE en mettant ta table cible en INNER JOIN sur l'identifiant avec la table temporaire.
Bien sûr, il ne faut pas qu'entre l'export et l'UPDATE, la colonne valid des lignes sélectionnées ait été modifiée par un autre process.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Roww, merci, j'avais pas du tout pensé à utiliser une autre table, je vais voir cela.
Hors ligne
J'ai un souci avec un Update, celui-ci ne s'inscript pas dans la table
voici le script
require("config.php"); // Accès à la base de donnée.
if(isset($_SESSION['pseudo']))
{
$ville = htmlentities($_POST['ville']);
if(!empty($ville))
{
mysql_query["UPDATE users SET ville='$ville' WHERE $_SESSION 'pseudo'";
$reponse = 'Votre ville à été pris en compte !';
$redirection = 'home.php';
}
}
?>
Et pour vous aidez le script de la page pour se connecter à la bas
$sql_serveur = 'sql.hebergeur.com';
$sql_login = '000000_site';
$sql_pass = 'mdp';
$sql_bdd = '000000_site';
function connect_sql() //Connection à MySQL
{
global $sql_serveur, $sql_login, $sql_pass, $sql_bdd;
//connexion au serveur
$linkid = @mysql_connect($sql_serveur,$sql_login,$sql_pass) or die ("Erreur lors de la connection au serveur MySQL !");
//selection de la BD
@mysql_select_db($sql_bdd,$linkid) or die("Impossible de selectionner la base de données\n<br>\nVoici l'erreur renvoyée par le serveur MySQL :\n<br>\n".mysql_error());
return $linkid;
}
Si vous arrivez me trouver le problème pourquoi l'indication ville ne s'enregistre pas dans la table users, se sera sympa de votre part.
Hors ligne
Saluton,
Trois choses :
- évite de poster des questions différentes sur un même sujet du forum.
- évite d'utiliser les short-tags, les tags PHP c'est <?php...?>
- évite d'utiliser @ devant l'appel des fonctions, tu te prives, en phase de développement, de messages et d'avertissements souvent éclairants quant à l'origine des dysfonctionnements.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
J'ai suivi le conseil, mettre correctement les <?php et ?> ainsi que supprimer les @ malheureusement ça ne fonctionne toujours pas.
Est-ce que vous voulez un show create de la table "users" ?
Hors ligne
Je préfèrerais voir la requête que reçoit le servuer MySQL, d'abord.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
J'ai rajouté la requête dans ma page connecter à la base. J'ai comme réponse l'écho mais malheureusement aucune enregistrement se fait dans le champs ville.
Hors ligne
Bonjour,
Pour information $_SESSION est une variable serveur de type array et superglobale qui n'a rien à faire dans ta requête, du moins sous cette forme là (une forme plus correcte serait $_SESSION['monchamp']). Ensuite au niveau sécurité il est très vivement recommandé de passer par une variable locale qui te permets d'en vérifier la structure de contenu avant d'en passer la valeur à ta requête.
++
Dernière modification par Jc (01-03-2012 22:54:05)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne