2011-04-18 9 views
1

Comment mettre à jour plusieurs lignes avec une requête?mise à jour php plusieurs lignes

table 
id ref_no name 
------------------- 
1    a 
2    b 
3    c 
4    e 
5    f 
................... 

depuis que je viens de créer une nouvelle colonne ref_no et son vide. et j'attends la colonne id = ref_no

j'ai essayé ci-dessous, mais me donner même ids:

$q = $db->query("SELECT id_user FROM user"); 
while($r = $q->fetch_array(MYSQLI_ASSOC)) : 
    $db->query("UPDATE user SET user_no='".$r['id']."'"); 
endwhile; 

Répondre

3

Vous pouvez le faire avec MySQL ne

UPDATE table_name SET ref_no = id 
+0

que simples lol merci – tonoslfx

+0

@ boyee007 acceptent mon pote pour éviter dup ans lol – jimy

+0

est-il possible comme ajouter ref en face de lui? ie: ref1, ref2, etc. '$ db-> query (" UPDATE utilisateur SET ref_no = AE '". $ r [' id ']."' Où id = ". $ r ['id'])' pas sûr que ça marcherait? – tonoslfx

2

Voulez-vous chaque ligne d'avoir la même valeur dans le ref_no columan comme dans la colonne id? Dans ce cas, vous pouvez utiliser

UPDATE user SET ref_no = id 

mais je ne suis pas sûr que ce soit ce que vous cherchez ...

1
UPDATE user 
SET ref_no = id 
WHERE ref_no IS NULL 

Sachez que, dans le contexte SQL, blank est un concept spécial cela représenté par le mot clé NULL. Vous devez utiliser IS NULL ou IS NOT NULL pour tester contre NULL.

1

Je ne pense pas que les autres réponses est ce que vous voulez. Si vous avez besoin de l'identifiant de chaque ligne égale à l'arbitre:

$q = $db->query("SELECT id_user FROM user"); 
while($r = $q->fetch_array(MYSQLI_ASSOC)) : 
    $db->query("UPDATE user SET ref_no='".$r['id']."' where id=".$r['id']); 
endwhile; 
0

simplement:

UPDATE user SET ref_no = id 
Questions connexes