PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 10-02-2012 10:06:41

theavengers
Membre
Inscription : 13-10-2009
Messages : 81

Update de 100 entrée dans une base de façon aléatoire ?

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

#2 10-02-2012 10:47:11

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Update de 100 entrée dans une base de façon aléatoire ?

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

#3 10-02-2012 11:00:15

theavengers
Membre
Inscription : 13-10-2009
Messages : 81

Re : Update de 100 entrée dans une base de façon aléatoire ?

Roww, merci, j'avais pas du tout pensé à utiliser une autre table, je vais voir cela.

Hors ligne

#4 29-02-2012 22:12:54

demu73
Membre
Inscription : 06-01-2012
Messages : 14

Re : Update de 100 entrée dans une base de façon aléatoire ?

J'ai un souci avec un Update, celui-ci ne s'inscript pas dans la table

voici le script


session_start();

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

#5 01-03-2012 09:07:49

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Update de 100 entrée dans une base de façon aléatoire ?

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

#6 01-03-2012 16:41:13

demu73
Membre
Inscription : 06-01-2012
Messages : 14

Re : Update de 100 entrée dans une base de façon aléatoire ?

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

#7 01-03-2012 16:56:57

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Update de 100 entrée dans une base de façon aléatoire ?

Je préfèrerais voir la requête que reçoit le servuer MySQL, d'abord.

$sql="UPDATE users SET ville='$ville' WHERE $_SESSION 'pseudo'";
echo "<br/>$sql<br/>";

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

#8 01-03-2012 19:23:04

demu73
Membre
Inscription : 06-01-2012
Messages : 14

Re : Update de 100 entrée dans une base de façon aléatoire ?

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

#9 01-03-2012 22:52:02

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Update de 100 entrée dans une base de façon aléatoire ?

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

Pied de page des forums